How To Debug Your Strategy

Watch our tutorial video below to see how to debug / fix your  trading strategy when it is not working as expected.  Login to your account to follow along with the video!

There are usually 2 reasons why your strategy may not be working as expected:
  • Your trading signal / entry signals may not have triggered properly.
  • If your trading signals were triggered but no transactions were “filled”, your strategy block / strategy filters may NOT match any available spreads at the time of order execution.
To debug your strategy, first check if your trading signals are being triggered:
  • Plot your trading signals visually, and inspect the chart to see if market conditions indeed match your trading signals

Screen Shot 2018-12-02 at 8.24.19 AM

Screen Shot 2018-12-02 at 8.26.10 AM

  • Attach a “Log” block entry to your trading signals / rules.  This will print out messages to the Log panel if your trading signals were actually triggered.

Screen Shot 2018-12-02 at 8.29.42 AM

  • Inspect the logs to see if your trading signals triggered.  If your trading signals triggered, you will see it in the Log entries.  If you do not see any such Log entries, your trading signals did not trigger and you should modify your trading rules / signals.

Screen Shot 2018-12-02 at 8.34.16 AM


  • If you see Log messages with “Order [XYZ] was executed, but no positions match order criteria at evaluation time“, there may be issues with your Strategy Block / Strategy Filters.
  • Preview your trade at the timestamps where your orders were executed but failed to match any positions.  You can preview your strategy but clicking on the Magnifying Icon on the Strategy block.

Screen Shot 2018-12-02 at 8.40.17 AM

    If you are using the SetVariable block with dynamic values as part of your strategy filters, please use the Log block to print of the values of the variables, and temporarily change the variable to use the values printed in the Logs.

  • Specify the date of evaluation to match the timestamps from the Log entries.

Screen Shot 2018-12-02 at 8.43.28 AM

Screen Shot 2018-12-02 at 8.43.10 AM


  • If no transactions match during the preview, you need to determine which strategy filters are causing problems.
  • To identify the problematic strategy filters, remove all your filters and manually add your filters back one-by-one, previewing your strategy each time you add a filter.

Screen Shot 2018-12-02 at 8.49.11 AM

Screen Shot 2018-12-02 at 8.50.35 AM

Screen Shot 2018-12-02 at 8.52.20 AM


  • If no positions match after adding a new filter / criteria, this new filter may be problematic.  In this case, remove the filter or modify the filter until at least one position matches your overall strategy.
  • Some strategies already have default filters defined to improve the speed of the backtest.  These default filters may conflict with your filters.  If this is the case, you can disable these default filters by using the “ignoreDefaultFilters” option.

Screen Shot 2018-12-02 at 8.57.55 AM

    • Check your filter inputs to match the appropriate scale / sign of the filter.  Some inputs may be percentages (i.e. 0.55, 0.75) while others may be numbers (i.e. 20, 45).  Inputs may be signed (positive versus negative) or un-signed. Make sure to use the correct scale / sign of the filters.
    • Check your strategy filters are consistent with the instruments that you are trading.
      •   For example, SPX strikes are generally 10 points apart, while SPY strikes are generally 1 point apart.


  • Check whether your filters conflict with each other.  One filter may be incompatible / inconsistent with another filter, resulting in no matching positions.
    • For example, lower strike put options have a lower delta than higher strike put options.  But if you specify a higher delta for your lower strike put options than your higher strike put options, the filters are inconsistent and will result in no matching positions.
    • Screen Shot 2018-12-21 at 7.49.28 PM

    • For example, a standard iron condor has equidistant strike width for the short put vertical (bull put spread) and the short call vertical (bear call spread).  But if you specify different distances / strike widths for the call vertical versus the put vertical, the filters are inconsistent and may result in no matching positions.
    • Inconsistent Filters