Why there is a difference in Backtesting vs live Trade?

HI, I’d like to understand why there is a difference with the time (order execution) in backtest vs live market ?

There is a difference of few seconds between the actual signal occurs on chart and your order punch in live trade, no matter how fast your system is,
Also the market and limit order slippage is a factor too.

Simulated backtest or paper trade happen on chart signal point as they don’t have punch the actual order, instead just collect the data points to show the trade report.

Hi @karthik_subramani

It should be noted that there is no time difference in Entry/Exit when it comes to backtesting and deployment (except if you are using the Multi Timeframe function). Streak generates triggers only after the closing of the candle. In backtest, the opening time of the candle is displayed as the trigger time, and the open price of the next candle is considered as the trigger price. In deployment, the trigger will be generated after the closing of the candle and the entry price will depend on when you act on the alert and the volatility in the scrip, etc.

For example, if your conditions are matching on the 9:35 5min candle, then in backtest the open time of the candle will be shown as the entry trigger time i.e. 9:35 (to maintain consistency with the charts) and the open price of the next candle i.e. the open price of the 9:40 candle will be displayed as the entry trigger price. And in live deployment, entry will be triggered after the closing of the 9:35 candle i.e. at 9:40. You can refer to the below link to learn about the Candle formation and Backtest in Streak-

However, if you feel that there is a discrepancy where the conditions are not true on the charts and still an alert was generated then do write to [email protected] with the strategy link and the order log of the deployed strategy, and the team will look into it and assist you with it further.

If you are using the MTF function in your strategy then the triggers can be different. You can refer to the below links where we have explained this in detail -

https://help.streak.tech/create_advanced/#multi-timeframe-functions

@Vasu_patel Thank you for reply.

I have another question with respect to the difference.

So I am picking Dynamic Call Contracts (refer the screenshot 1). the contract picked on 12 may 10:09 AM is “NIFTY2351818250CE” (refer the screenshot 2) but when you check the price range in the chart it’s not near to the entry signal price. can you please tell me why is this happening.

image

@karthik_subramani

The current day dynamic contract data gets updated by 9 PM on the same day. Thus, just re-run the backtest after 9 PM today and you will see the updated and correct trigger price.

If the same prices are reflected after re-running the backtest after 9 PM, then do let me know and I’ll look into this and assist you further.

took this screenshot today "26-05-2023 09:59 AM "

I am testing out my strategies in paper trading.

couple of my strategies executed buy trade yesterday and those contracts expired yesterday itself (Market Close) but in my streak dashboard it’s still showing it in the “Entered” . can you please tell me why this is happening ?

@Vasu_patel Please help me out here

Sorry, just couldn’t resist injecting some humour based on the question “Why there is a difference in Backtesting vs live Trade?”

In theory, there is no difference between theory and practice,
Whereas in practice, there is.

:rofl:

I’ve replied to you here - Discrepancy in Trade Status - Request for Assistance