Login Page - Create Account

Support Board


Date/Time: Thu, 19 Sep 2024 01:15:54 +0000



Post From: Backtest results are radically different from live trading results

[2022-02-24 20:39:41]
1+1=10 - Posts: 270
Use the Simulated Futures Trading service where your orders actually get sent to a server close to the exchange with realistic fills based on Estimated Position in the Queue:
Simulated Futures Trading Service

If you don't understand what "Estimated Position in Queue" is talking about you need to research Limit Order Books, for example: https://www.5minutefinance.org/concepts/the-limit-order-book

Lastly, you definitely should not set the chart update interval to 500 ms. In general, you want the time between when your algorithm receives data and responds with an order to be as short as possible. The factors involved include:

Receive Market Data From Exhange:

1. +0 millis -- Trade / limit order update takes place at exchange

2. +1 millis -- Exchange actually sends aforementioned update to your market data provider's servers. (NOTE: while typically this happens in < 1 millisecond Rithmic support staff said this delay can be as much as 15 milliseconds during very high volume news events.)

3. +0.250 millis - ~10 millis -- Data provider receives market data update. The duration here is simply related to where the data provider's servers are. If they're in the same building as the exchange, like SC's Teton or Rithmic then it is near the low end. If the data provider's servers are outside the building, like CQG's retail web api that SC uses, then you can get near the higher end.

4. +??? millis -- Time to send data from provider to your algo?
NOTE: SC has two aspects which contribute to this duration. First, is the "SC Remote Buffer Delay". In short, SC's own data feed, Denali, only sends updates every 10 millis -- link below. Secondly, the global/chart "update interval" dictates how frequently your ACSIL algo runs (provided you have sc.AlwaysUpdate = true) -- the minimum setting is 10 millis. Thus, the combination of these two factors delays data getting to your algo by 20 millis in the worst-case and 10 millis in the average-case.

4's Standard-case :: +30.0 millis - 270.0 millis -- ACSIL trading algo on home computer. Factoring in SC's aforementioned delays, and assuming your home computer is outside of the exchange's metro area between 10 - 250 millis away gives you this range for step 5.
4's Improved-case :: +20.0 millis - 25.0 millis -- your ACSIL trading algo is on a server in the same metro as the exchange. For instance, if trading on the CME search "Chicago trading/vps/dedicated server".
4's Better-case :: +1 millis - 5 millis -- here we switch to only using SC for research/idea generation. For our algo we switch to Rithmic's API ($100 month) with the trading server as close as possible to the exchange. For the 1 millisecond case we'd need to be in the same building. For CME see https://www.theomne.net/ OR https://www.beeksfinancialcloud.com/catalogue/DS-EMERALD_5/.
4's Best-case :: +0.250 millis -- Here our algo is actually on the data provider's servers; typically $400 - $1000. I can provide links if you'd like.

------------------------
Send Order to Exchange

5. ACSIL Algo Processing Time -- this is likely under 100 microseconds.

6. Algo's computer/server -> Data Provider/Order Routing's Computer -- 0.250 - 250 millis: NOTE: this is the same as step 4 above although you have to add 1 milli for the risk check unless on 4's best-case. See Rithmic link below for explanation of risk checks.
7. Data Provider/Order Routing -> Exchange -- 0.250 - 10 millis: NOTE: same as step 3 above.

8. Exchange Matching Time -> 0.5 - 5 millis

---------------------------------
To conclude, if you use SC and you get a server in Chicago you can get your worst-case round trip (new data to order) time down to ~30 millis. If you get to some of the more esoteric choices I've mentioned you can get down to ~1-5 millis.

Let me know if you have questions.

----------------------------------------
Rithmic support explains why there can be delay between when a trade/limit order update occurs at the exchange and when the exchange actually sends the notification of the update to the data providers: https://community.optimusfutures.com/t/how-fast-are-the-various-rithmic-configuration-options/2342

Prices / Data Falling Behind: 4.12 - Sierra Chart Exchange Data Feeds