Support Board
Date/Time: Fri, 22 Nov 2024 15:51:21 +0000
[Programming Help] - Problems modifying an order has just caused a CPU exception
View Count: 764
[2019-04-01 23:00:33] |
User145885 - Posts: 15 |
Hi.I am new with ACSIL coding.I would like to place a manual MKT order or limit order and modify it using ACSIL or if possible attach child orders to it after the order has been accepted/executed .When the code execute the order there is no problem attaching or controlling. The warnings occurs when I try to modify it after either executed by me manually or when a limit order have been triggered. I am receiving the following message : From Message log: Chart: Replay 120X: YMM19 [M] 144 Volume #6 | Study: Trading CrossOver Example | ORDERID1 is 27726,FillPrice5 is 25853.000000 | 2019-04-01 16:49:57 Warning: The Custom DLL study "MEntry_64.scsf_SC_TradingCrossOverExample" has just caused a CPU exception. | 2019-04-01 16:49:57 * Warning: This Custom DLL study may cause Sierra Chart to be unstable until you remove the study from your chart and restart Sierra Chart. | 2019-04-01 16:49:57 * From Trade service log: Order modification failed | Unable to modify order because it is no longer working. Internal Order ID: 27726. Service Order ID: 27726. Symbol: YMM19 | 2019-04-01 16:49:49 * If there is a way to attach child orders to an existing order or a function That I could use to accomplish what I need,Please let me know.I really appreciate it.Thanks in advance. This is what I am using at the moment to modify the order. s_SCTradeOrder ExistingOrder1; while( sc.GetOrderByIndex(OrderIndex1, ExistingOrder1) != SCTRADING_ORDER_ERROR) { ++OrderIndex1; OrderID1 = ExistingOrder1.InternalOrderID; } if (ExistingOrder1.BuySell == BSE_BUY) NewLimit1 = FillPrice5 + sc.TickSize*30; NewLimit2 = FillPrice5 - sc.TickSize*30;} else if (ExistingOrder1.BuySell == BSE_SELL) { NewLimit1 = FillPrice5 - sc.TickSize*30; NewLimit2 = FillPrice5 + sc.TickSize*30; } s_SCNewOrder ModifyOrder; ModifyOrder.InternalOrderID = OrderID1; ModifyOrder.Price1 = NewLimit1; //ModifyOrder.OrderType = SCT_ORDERTYPE_LIMIT; sc.ModifyOrder(ModifyOrder); ModifyOrder.Price2 = NewLimit2; sc.ModifyOrder(ModifyOrder); SCString MessageText2; MessageText2.Format("NewLimit1 is %f",NewLimit1); sc.AddMessageToLog(MessageText2, 0); |
[2024-10-03 16:42:40] |
Marijntv - Posts: 3 |
I had the same issue. The CPU exception occurs when you pass the wrong InternalOrderID. My reply is probably not going to be useful to OP, but hopefully, it helps those who encounter this issue in the future. |
To post a message in this thread, you need to log in with your Sierra Chart account: