Difference between revisions of "Why is Data Playback strategy performance different from Backtesting results?"

From MultiCharts
Jump to navigation Jump to search
Line 11: Line 11:
 
* In Backtesting the signal is calculated on OHCL prices and Multicharts "thinks" that prices between OHLC exist. The exact number of calculations = 4.
 
* In Backtesting the signal is calculated on OHCL prices and Multicharts "thinks" that prices between OHLC exist. The exact number of calculations = 4.
  
* In Data Playback mode (as well as in real-time calculation) MultiCharts tries to execute orders on every tick that is received, on Close price. I.e. if the Bar Magnifier is set to 1 minute on a 5 minute chart, the signal will be calculated only 5 times per bar.
+
* In Data Playback mode the signal is calculated on every tick that is received, but MultiCharts tries to execute orders on Close price of the detailed data series (how detailed your data series is depends on the selected data playback resolution).  
  
 
==[http://www.multicharts.com/trading-software/index.php/Signal_Settings| Intra-Bar Order Generation] mode disabled==
 
==[http://www.multicharts.com/trading-software/index.php/Signal_Settings| Intra-Bar Order Generation] mode disabled==
Line 17: Line 17:
 
=== Bar Magnifier enabled ===
 
=== Bar Magnifier enabled ===
  
* In backtesting the signal is calculated on Close price of the main series, but MultiCcharts tries to execute orders on OHLC price of the detailed data series and Multicharts "thinks" that prices between OHLC of the detailed data series do not exist.  
+
* In backtesting the signal is calculated on Close price of the main series, but MultiCcharts tries to execute orders on OHLC price of the detailed data series and Multicharts "thinks" that prices between OHLC of the detailed data series exist.  
  
 
=== Bar Magnifier disabled ===
 
=== Bar Magnifier disabled ===
  
 
* In backtesting the signal is calculated on Close price of the main series and Multicharts "thinks" that prices between OHLC exist.
 
* In backtesting the signal is calculated on Close price of the main series and Multicharts "thinks" that prices between OHLC exist.
 +
 +
* In Data Playback mode the signal is calculated on Close of the main series and MC tries to execute orders on OHLC prices of the detailed data series and MC "thinks" that prices between OHLC do not exist (how detailed your data series is depends on the selected data playback resolution).
 +
  
 
Thus, the number of calculations and available prices differ significantly. This leads to different results.
 
Thus, the number of calculations and available prices differ significantly. This leads to different results.
  
  
When BarMagnifier is enabled, Data Playback calculation does not take into account local extremums and additional Open and Close prices of the main series bar.
+
<div style="background-color: #E3FBE5;">Note: Bar Magnifier mode cannot be used during Data Playback. When Data Playback is turned on, Bar Magnifier gets turned off if it was enabled previously.</div>

Revision as of 17:23, 6 September 2016

Data Playback strategy performance and backtesting results will never be exactly the same due to a number of differences between playback and backtesting calculation.

Intra-Bar Order Generation mode enabled

Bar Magnifier enabled

  • Backtesting attempts to execute orders only on OHLC prices of the detailed data series. MultiCharts acts as if there were no other prices in-between (between O and H, between H and L etc.). Therefore the signal is calculated at least 4 times on one bar (4 * number of details series bars + Open and Close of the main series). I.e. if the Bar Magnifier is set to 1 minute on a 5 minute chart, the signal will be calculated up to 22 times (4 * 5 +2) per bar.

Bar Magnifier disabled

  • In Backtesting the signal is calculated on OHCL prices and Multicharts "thinks" that prices between OHLC exist. The exact number of calculations = 4.
  • In Data Playback mode the signal is calculated on every tick that is received, but MultiCharts tries to execute orders on Close price of the detailed data series (how detailed your data series is depends on the selected data playback resolution).

Intra-Bar Order Generation mode disabled

Bar Magnifier enabled

  • In backtesting the signal is calculated on Close price of the main series, but MultiCcharts tries to execute orders on OHLC price of the detailed data series and Multicharts "thinks" that prices between OHLC of the detailed data series exist.

Bar Magnifier disabled

  • In backtesting the signal is calculated on Close price of the main series and Multicharts "thinks" that prices between OHLC exist.
  • In Data Playback mode the signal is calculated on Close of the main series and MC tries to execute orders on OHLC prices of the detailed data series and MC "thinks" that prices between OHLC do not exist (how detailed your data series is depends on the selected data playback resolution).


Thus, the number of calculations and available prices differ significantly. This leads to different results.


Note: Bar Magnifier mode cannot be used during Data Playback. When Data Playback is turned on, Bar Magnifier gets turned off if it was enabled previously.