At the start of each hourly bar, an expected minimum price (predLow) and expected maxiumum price (predHigh) are calculated for the that hour and, in this case, an order to open a long position was subsequently submitted using the instruction
entryOrder = EnterLongLimit(Convert.ToInt32(orderQuantity), predLow, longSignalName);
protected override void OnExecutionUpdate(Execution execution, string executionId, double price, int quantity,
MarketPosition marketPosition, string orderId, DateTime time)
{
if (execution.Order.Name == longSignalName)
{
ExitLongLimit(predHigh, longSignalName);
}
else if (execution.Order.Name == shortSignalName)
{
ExitShortLimit(predLow, shortSignalName);
}
}
2023-09-28 10:03:42.988 Order Order='88ea8cf512de4d71bc389ed344ffb215/XXXXXX' Name='Sell' New state='Submitted' Instrument='ES 12-23' Action='Sell' Limit price=4358 Stop price=0 Quantity=1 Type='Limit' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:03:42.989 Position Instrument='ES 12-23' Account='XXXXXX' Average price=4344.25 Quantity=1 Market position=Long Operation=Operation_Add
2023-09-28 10:03:43.025 Order Order='1293688293/XXXXXX' Name='Sell' New state='Accepted' Instrument='ES 12-23' Action='Sell' Limit price=4358 Stop price=0 Quantity=1 Type='Limit' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:03:43.025 Order Order='1293688293/XXXXXX' Name='Sell' New state='Working' Instrument='ES 12-23' Action='Sell' Limit price=4358 Stop price=0 Quantity=1 Type='Limit' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
if (PositionAccount.MarketPosition == MarketPosition.Long)
{
if (PositionAccount.GetUnrealizedProfitLoss(Performan ceUnit.Currency, GetCurrentBid()) <= stopLossCurrency * PositionAccount.Quantity ||
DateTime.Now > currentBarCloseDateTime.AddSeconds(barCloseImminen tSeconds))
{
ExitLong();
CancelOrder(entryOrder); // Cancel entry order if it exists
}
}
else if (PositionAccount.MarketPosition == MarketPosition.Short)
{
if (PositionAccount.GetUnrealizedProfitLoss(Performan ceUnit.Currency, GetCurrentAsk()) <= stopLossCurrency * PositionAccount.Quantity ||
DateTime.Now > currentBarCloseDateTime.AddSeconds(barCloseImminen tSeconds))
{
ExitShort();
CancelOrder(entryOrder); // Cancel entry order if it exists
}
}
2023-09-28 10:54:52.770 Order Order='68e7da7e73654381a9d42325ca3da018/XXXXXX' Name='Sell' New state='Submitted' Instrument='ES 12-23' Action='Sell' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:54:52.829 Order Order='1293846762/XXXXXX' Name='Sell' New state='Accepted' Instrument='ES 12-23' Action='Sell' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:54:52.830 Order Order='1293846762/XXXXXX' Name='Sell' New state='Working' Instrument='ES 12-23' Action='Sell' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:54:52.832 NinjaScript NinjaScript strategy 'HourlyLongWithTryES/301101426' submitting order
2023-09-28 10:54:52.871 Order Order='1293846762/XXXXXX' Name='Sell' New state='Filled' Instrument='ES 12-23' Action='Sell' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=1 Fill price=4340.5 Error='No error' Native error=''
2023-09-28 10:54:52.877 Execution Execution='978256471040' Instrument='ES 12-23' Account='XXXXXX' Exchange=Globex Price=4340.5 Quantity=1 Market position=Short Operation=Operation_Add Order='1293846762' Time='2023-09-28 10:54'
2023-09-28 10:54:52.932 Position Instrument='ES 12-23' Account='XXXXXX' Average price=0 Quantity=0 Market position=Flat Operation=Remove
2023-09-28 10:54:52.940 Order Order='1293688293/XXXXXX' Name='Sell' New state='Cancel submitted' Instrument='ES 12-23' Action='Sell' Limit price=4358 Stop price=0 Quantity=1 Type='Limit' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:54:52.963 Order Order='1293760154/XXXXXX' Name='Sell' New state='Accepted' Instrument='ES 12-23' Action='Sell' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:54:52.963 Order Order='1293760154/XXXXXX' Name='Sell' New state='Working' Instrument='ES 12-23' Action='Sell' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:54:52.964 Order Order='1293760154/XXXXXX' Name='Sell' New state='Cancel submitted' Instrument='ES 12-23' Action='Sell' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:54:53.010 Order Order='1293760154/XXXXXX' Name='Sell' New state='Filled' Instrument='ES 12-23' Action='Sell' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=1 Fill price=4340.5 Error='No error' Native error=''
2023-09-28 10:54:53.011 Execution Execution='978256504064' Instrument='ES 12-23' Account='XXXXXX' Exchange=Globex Price=4340.5 Quantity=1 Market position=Short Operation=Operation_Add Order='1293760154' Time='2023-09-28 10:54'
2023-09-28 10:54:53.069 Order Order='1293688293/XXXXXX' Name='Sell' New state='Cancelled' Instrument='ES 12-23' Action='Sell' Limit price=4358 Stop price=0 Quantity=1 Type='Limit' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:54:53.111 Position Instrument='ES 12-23' Account='XXXXXX' Average price=4340.5 Quantity=1 Market position=Short Operation=Operation_Add
2023-09-28 10:59:30.617 Order Order='1c670be211a14afba7f4653532c7abd2/XXXXXX' Name='Buy to cover' New state='Submitted' Instrument='ES 12-23' Action='Buy to cover' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:59:30.655 Order Order='1293813521/XXXXXX' Name='Buy to cover' New state='Accepted' Instrument='ES 12-23' Action='Buy to cover' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:59:30.655 Order Order='1293813521/XXXXXX' Name='Buy to cover' New state='Working' Instrument='ES 12-23' Action='Buy to cover' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=0 Fill price=0 Error='No error' Native error=''
2023-09-28 10:59:30.696 Order Order='1293813521/XXXXXX' Name='Buy to cover' New state='Filled' Instrument='ES 12-23' Action='Buy to cover' Limit price=0 Stop price=0 Quantity=1 Type='Market' Time in force=DAY Oco='' Filled=1 Fill price=4342.25 Error='No error' Native error=''
2023-09-28 10:59:30.697 Execution Execution='978265035776' Instrument='ES 12-23' Account='XXXXXX' Exchange=Globex Price=4342.25 Quantity=1 Market position=Long Operation=Operation_Add Order='1293813521' Time='2023-09-28 10:59'
2023-09-28 10:59:30.723 Position Instrument='ES 12-23' Account='XXXXXX' Average price=0 Quantity=0 Market position=Flat Operation=Remove

Comment