Support Board
Date/Time: Wed, 27 Nov 2024 07:51:44 +0000
Fills not matching old instance after moving algo to new instance of Sierra Chart.
View Count: 603
[2023-08-28 15:49:49] |
User414533 - Posts: 106 |
Hi, I've got an algo that I had developed, and it is working quite well. I've tested it in a million ways and the fills/trades are accurate. However, the platform I'm using is original and like 3 years old. I downloaded a new platform and copied my chartbook over, and the fills are off by a few ticks. I can't figure out why this is? Both are on Teton. I have verified that the tick data is the same. So on one specific candle where a trade is triggered, I get this on the original "old" instance of SC (and everything is correct): Entry: 11:00:42.147, Entry price: 3914.25 On the new instance of SC, I get the following: Entry 11:00:42.018, Entry price: 3913.50 So not only is the fill time different, but so is the filled LIMIT price. Again the candle is identical on both charts (high, low, open, close, etc.). Is there any parameter on SC that could affect this? --I'm running backtests btw (accurate trading system backtest mode). I get the same result every time. Date Time Of Last Edit: 2023-08-28 15:51:30
|
[2023-08-28 17:22:22] |
John - SC Support - Posts: 36309 |
It makes sense that if the entry time is different then the price would be different if your entry price is based on the Last trade price, or something else that changes with time within a bar. The main thing to check for why you are having a difference in the time of the order is the "Global Settings >> Data/Trade Service Settings >> Common Settings >> Intraday Data Storage Time Unit". Make sure this is set the same between the two systems, and you probably want it to be 1 tick. Otherwise, you would have to look through the various Chart Settings to see if there is something different between the two. For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing |
[2023-08-28 19:29:11] |
User414533 - Posts: 106 |
The main thing to check for why you are having a difference in the time of the order is the "Global Settings >> Data/Trade Service Settings >> Common Settings >> Intraday Data Storage Time Unit". Make sure this is set the same between the two systems, and you probably want it to be 1 tick.
Thanks for the suggestion. One was set at 1sec, the other 1tk. I changed them both to 1tk and ran the backtest again. Same problem. :( What's interesting is the algo is supposed to put a limit order down at an exact spot. Where the "new" instance is placing the limit is not correct at times and then at times it is. The EntryDateTime however is never matching. Anything else to check or do you think this might be an issue with the algo referencing something on the old instance that it isn't on the new? Thanks! |
[2023-08-28 21:00:18] |
User414533 - Posts: 106 |
Oh, and I'm using the same chartbook. So that eliminates the chart variable correct?
|
[2023-08-29 12:49:02] |
Sierra_Chart Engineering - Posts: 17191 |
Be sure to follow through all of the instructions here: Set Sierra Chart to a Tick by Tick Data Configuration. Follow the instructions here to do this: Tick by Tick Data Configuration Sierra Chart Support - Engineering Level Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy: https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing |
[2023-08-29 15:03:45] |
John - SC Support - Posts: 36309 |
The important thing in the link given above is that you need to delete the old data and redownload the tick by tick data. If you did not do this after making a change to the storage time unit, then your data would be the same.
For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing |
[2023-08-29 19:44:14] |
User414533 - Posts: 106 |
Okay, I've done all that's asked. Fills and exits are now matching! BUT... EntryDateTime is still different by some milliseconds. Any idea why? And the original (old instance) is slightly faster than the new instance. Old instance: 11:00:42.147 3914.25 3884.75 New instance: 11:00:42.193 3914.25 3884.75 I made sure the chart update interval is the same on each (10ms). But I'm running the backtest with the data feed disconnected. |
[2023-08-30 14:48:09] |
Sierra_Chart Engineering - Posts: 17191 |
Are there any differences with the starting time of the chart bars between the two charts where you are seeing a difference between them regarding the fill times?
Sierra Chart Support - Engineering Level Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy: https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation For the most reliable, advanced, and zero cost futures order routing, use the Teton service: Sierra Chart Teton Futures Order Routing |
[2023-08-30 17:14:49] |
User414533 - Posts: 106 |
Are there any differences with the starting time of the chart bars between the two charts where you are seeing a difference between them regarding the fill times?
Using the chart values tool, every chart bar starts on the hour, minute, etc, followed by a long string of zeros. Both charts from each instance match. Everything is matching on the session times screen as well. Is this what you wanted me to check? Date Time Of Last Edit: 2023-08-30 17:15:06
|
[2023-08-31 19:54:47] |
User414533 - Posts: 106 |
I figured it out!!! "Enable Estimated Position in Queue Tracking" I didn't have this on in the new instances. Of course it would cause the fill times to vary!! |
[2023-09-01 03:54:14] |
User414533 - Posts: 106 |
Okay... looks like I'm not out of the woods yet! But I have figured SOME stuff out. The Estimated Position in Queue Tracking helped. But when I went back to the Continuous Futures Contract - Date Rule Rollover Back Adjusted. The fills and times got screwy again. So to be clear, both instances (old and new) matched perfectly backtesting one quarterly futures contract. Well... almost perfect. There was ONE trade that had an exit price .25 higher than the newer instance. And I ran the entire backtest twice and the exact same exit price printed. One instance 4010.50, the other 4010.75. Every other transaction matched perfectly. Any idea how there's one mistake like that with both platforms downloading from the same data library? Back to the Continuous Contract issue... I noticed that on my old instance, under "Data Limiting", the date range in file FROM shows 9-9-2022. In the new instance it shows from 12-30-2022. I tried to change the dates so they match, but they just revert when I hit OK. I tried using the date range limiting method and set the dates the same, but got the exact same mismatching pricing and fills during backtest. Since one date range file is different from the other platform, is that what's causing the prices to not match? Because they are back adjusted from different starting dates? If so, how can I get the file dates to read the same? Right now I'm using "Number of Days to Load" as my limiting method. And like I mentioned above, it's allowing me to backtest ONE quarterly contract, with two instances, with almost perfectly matching results. But I need to be able to backtest more than 3 months at a time, and I'd like the backtest output to match between the two platforms. |
[2023-09-01 17:54:36] |
User414533 - Posts: 106 |
Any ideas?
|
[2023-09-04 03:08:02] |
User414533 - Posts: 106 |
An update on my situation: 1) I'm using two NEW instances now just in case there is some weird parameter I cannot find that is causing the problem. 2) I've deleted the chart data files and got all the "Date Range in File from" to match across all charts and both instances. 3) I've used the exact same chartbook file and global settings file (Sierra4.config). 4) I've "reload and recalculated" many times. 5) I've deleted and downloaded the chart data many times. 6) I've updated symbol settings, unchecked "Use Custom Symbol Settings Values". Still the unmatched fills and prices continue to persist when using "Continuous Futures Contract - Date Rule Rollover, Back Adjusted" setting. I also start from the current contract as directed in the instructions. IF I change the Continuous Contract List to "None" and test only one quarterly contract at a time, the backtest results match very closely. Maybe only one or two aberrations occur. It's only when I use continuous contracts do things go crazy. If you open two instance and run a backtest, you'll see for yourself. If you don't see any backtest mismatching data, PLEASE tell me what you did. I will PAY for the solution! Thanks! :) |
[2023-09-06 19:03:23] |
Sierra_Chart Engineering - Posts: 17191 |
Is this what you wanted me to check? Yes.Do the open high low and close values match among all the bars between the two charts you are comparing? Also refer to: Automated Trading Management: Troubleshooting Automated Trading System Behavior For a Continuous Futures Contract chart this is not going to be relevant: I noticed that on my old instance, under "Data Limiting", the date range in file FROM shows 9-9-2022. In the new instance it shows from 12-30-2022.
Also refer to the Chart Settings documentation for information about that setting.
Sierra Chart Support - Engineering Level Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy: https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation 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: 2023-09-06 19:05:16
|
[2023-09-11 04:15:49] |
User414533 - Posts: 106 |
I think I'm starting to get to the bottom of this. It appears that the limit orders (entry/profit target), are matching. It is the stop-loss (market) orders that are randomizing. Is this a setting that can be turned off? Can I just have the backtest fill the stop-losses at the level they are marked at? As far as the fill times are concerned, they still aren't matching between platforms. This isn't a big deal. I'll just have to live with this when using Continuous Futures Contracts. What I really need now, is to figure out how to keep the stop-losses consistent or at least have them match between platforms. |
[2023-09-11 18:54:31] |
User414533 - Posts: 106 |
Do the open high low and close values match among all the bars between the two charts you are comparing?
I forgot to answer this: They seem to be. I haven't found a bar that isn't matching and I've compared matching bars that produced differing trade results between platform with exact same settings. |
To post a message in this thread, you need to log in with your Sierra Chart account: