It makes a trade once and then doesn't make any more when the conditions are met.
needs re-enabling to makes another trade, then makes one trade and so forth.
Script is as follows: Compiles OK
IsInstantiatedOnEachOptimizationIteration = true;
}
else if (State == State.Historical)
{
SetProfitTarget(CalculationMode.Ticks, 60);
SetStopLoss(CalculationMode.Ticks, 60);
}
else if (State == State.DataLoaded)
{
QuantumDynamicPricePivots1 = QuantumDynamicPricePivots(Close, 10);
VolumeOscillator1 = VolumeOscillator(Close, 3, 50);
}
}
protected override void OnBarUpdate()
{
if (CurrentBar < 5)
return;
if(State == State.Historical) return;
if ((entryOrder == null && Close[0] > 0)
&& (VolumeOscillator1[0] > 0)
&&(QuantumDynamicPricePivots1.MarketAnalyzerPlo t[0] == -1))
EnterLong("myEntryOrder");
if (BarsSinceEntryExecution() >3)
{
ExitLong();
}
}
protected override void OnExecutionUpdate(Execution execution, string executionId, double price, int quantity, MarketPosition marketPosition, string orderId, DateTime time)
{
// Assign entryOrder in OnOrderUpdate() to ensure the assignment occurs when expected.
// This is more reliable than assigning Order objects in OnBarUpdate, as the assignment is not gauranteed to be complete if it is referenced immediately after submitting
if (execution.Order.Name == "myEntryOrder" && execution.Order.OrderState == OrderState.Filled)
entryOrder = execution.Order;
if (entryOrder != null && entryOrder == execution.Order)
Print(execution.ToString());
}
}
}
Many thanks
Comment