Support Board
Date/Time: Tue, 02 Dec 2025 17:18:06 +0000
Stop Order Price Rounding with Partially Filled Limit Orders (ACSIL)
View Count: 33
| [2025-12-02 12:17:07] |
| User805804 - Posts: 2 |
|
Hello, I am currently testing Sierra Chart (free trial) and developing a new ACSIL-based custom trading study. Since I cannot fully simulate real partial fills with different fill prices, I need clarification on how Sierra Chart handles stop order prices when the parent entry order is filled at an average price that is not an exact tick increment. Scenario: Let’s assume a buy limit order is filled in two parts: 3 contracts at 6801.25 2 contracts at 6801.50 This produces an average fill price of 6801.35 for 5 contracts. I am using an OCO stop order with an offset of 4 ticks (0.25 per tick). Questions: 1. What is the actual stop price Sierra Chart will use when the average fill price is not aligned with a tick? For the example above, would the stop be placed at 6800.35, 6800.25, or 6800.50? In other words, how exactly does Sierra Chart round the internally calculated stop price to the nearest valid tick? 2. If I later modify the stop order programmatically to be 2 ticks away from the average fill price, what price should my ACSIL code send? Should it be 6800.85, 6800.75, or 6801.00, based on Sierra Chart’s rounding rules? I want to match Sierra Chart’s internal logic so that my ACSIL study updates stop orders using the same rounding behavior as the Trade Service. Any clarification on the exact rounding method would be greatly appreciated. Thank you! |
| [2025-12-02 16:36:05] |
| John - SC Support - Posts: 43238 |
|
1. It depends on whether you are using "Scale In" or not. If not, then you have separate Stop orders, each associated with the actual fill price of their respective parent orders - we assume this is not your case. With Scale In enabled, the second order will update the existing Stop, so it will not change the price at which it is currently located. So the Average Fill Price has no impact on this. 2. It needs to be set at an actual tick size value - so it would need to be one of 6800.75 or 6801.00. It can not be 6800.85 (assuming a tick size of 0.25). Without delving into the code, we can not say exactly how Sierra Chart is doing the rounding, but most likely it is a simple rounding method to the nearest Tick increment. For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing Date Time Of Last Edit: 2025-12-02 16:36:14
|
| [2025-12-02 17:03:37] |
| User805804 - Posts: 2 |
|
Thank you for the answer! I have just one parent buy limit order, and one attached OCO stop. No multiple parent orders entering additional quantities, and no "Scale In". What I believe is that Sierra Chart does not use the average fill price internally for the attached orders. The attached stop order price is determined once, based on the first fill price (parent order’s first partial fill), the tick offset I specified, and tick-size rounding. After that, the stop order price does not continually update as new partial fills come in. I assume that with Scale In off, the stop price is based on the parent order’s first fill price, not the average fill price. Then, if I modify the price of the stop order: I have to round it to the nearest tick. Is that correct? Thanks for your time and support! |
To post a message in this thread, you need to log in with your Sierra Chart account:
