The screenshots below were obtained using the following parameters:
- start: 03-Jan-2021 23:00
- end: 17-Apr-2022 23:00
- initial capital: 10,000
- spread: 1.5
- Tick by tick mode: True
- nbContracts = 1
- flatOverWeekend = 1
Keeping the same parameters as above, the historical performance going back 10 years (starting Jan 2012):
The change-point, where the strategy starts to generate profit, occurs in 2018:
Next is the backtest result of a riskier variant where trade is allowed to be open over the weekend (by setting flatOverWeekend to 0). This is a higher risk due to potential price gaps in the open.
2 months’ worth of trading:
- start: 17-Apr-2022 23:00
- end: 19-Jun-2022 23:00
The expected profit, based on historical data, is 45 trades x £31.89 (avg trade from the first screenshot above) = £1,435.05
£1,380.80 is not too far off, considering that May and June were pretty tough to trade with a choppy, ranging market.
The maximum drawdown is higher than in the backtest during the development phase. Assuming the drawdown will be higher when the system is traded live is reasonable. Even though the drawdown is low compared to the profit potential, based on my live trading results, it’s not uncommon to see 2-5 consecutive losing trades, so what you see as the maximum drawdown may appear fairly often.
I’ve run this bot on my own account since Feb. Below is the live performance (3 weeks) of the version of the bot that is available on MarketPlace.
The backtest for the configuration above. I use these stats for bot monitoring to know when the bot starts to lose its edge.
How to get started?
Set the following parameters:
- nbContracts –> it’s the position size. Note, since the bot opens 2 pending orders, the margin requirement will be twice the position size. For example, if, hypothetically, the margin is £1,000 for a £1/point bet, then this bot will require a £2,000 margin for nbContracts = 1.
- flatOverWeekend –> 1 allows holding open positions over the weekend, and 0 closes any open positions at endOfPlayHH hour on Friday.
- endOfPlayHH –> if flatOverWeekend = 1, then this is the Hour on Friday at which the system will close the open position. I’m based in the UK, so the current value is set to 20 (8 pm BST). Please adjust according to your timezone (you can use the backtest results above to ensure you found the right value).
NOTE I do not recommend adjusting the stoplo value unless you know what you are doing.