Ethereum Backtest

I'm backtesting Ethereum for the first time and I'm noticing an anomaly. I'm using a stop-and-reverse simple moving average cross system in my tests. Using the original prices, the backtester appears to miss a lot of trades. It doesn't bahave like a stop-and-reverse system either, giving multiple shorts or longs in a row. The only way to get correct results is to divide the prices by 1000, keeping everthing else the same. The following tables illustrate the point. Look at 019:16 and 11:18 hours.

To get an estimate of net profits, I multiply the volume or the pip value by 1000 (not sure if this is correct).

I'm still using 6.10 version (sorry). The newer versions may not be exhibiting the same behaviour.

Any ideas as to why?

Many Thanks

Simple Moving Average Cross
Original Prices
Trade Date Price Ex. date Ex. Price
Long 31/03/2024 07:12 3621.56 31/03/2024 07:13 3620.62
Short 31/03/2024 09:16 3612.48 31/03/2024 09:24 3610.83
Short 31/03/2024 11:18 3611.1 31/03/2024 11:36 3603.57
Long 31/03/2024 14:09 3619.86 31/03/2024 14:35 3632.13
Prices Divided by 1000
Trade Date Price Ex. date Ex. Price
Short 31/03/2024 09:16 3.61248 31/03/2024 09:24 3.61083
Long 31/03/2024 09:24 3.61083 31/03/2024 09:25 3.61024
Short 31/03/2024 09:25 3.61024 31/03/2024 09:31 3.60994
Long 31/03/2024 09:31 3.60994 31/03/2024 09:33 3.60946
Short 31/03/2024 09:33 3.60946 31/03/2024 09:43 3.60894
Long 31/03/2024 09:43 3.60894 31/03/2024 09:50 3.61121
Short 31/03/2024 09:50 3.61121 31/03/2024 10:03 3.60499
Long 31/03/2024 10:03 3.60499 31/03/2024 10:04 3.60554
Short 31/03/2024 10:04 3.60554 31/03/2024 10:14 3.60577
Long 31/03/2024 10:14 3.60577 31/03/2024 10:34 3.60725
Short 31/03/2024 10:34 3.60725 31/03/2024 10:42 3.60501
Long 31/03/2024 10:42 3.60501 31/03/2024 10:52 3.6069
Short 31/03/2024 10:52 3.6069 31/03/2024 11:03 3.60754
Long 31/03/2024 11:03 3.60754 31/03/2024 11:18 3.6111
Short 31/03/2024 11:18 3.6111 31/03/2024 11:36 3.60357

Check your data and the settings and run your backtest in "DETAILED LOG". It will reveal why trades are entered and why not. Typically the reason of not entering trade is lack of funds in the account (and/or too large requested position size and/or liquidity filter)

To get better understanding of what is happening in your code and how functions work, use advice given here: How do I debug my formula?

Thanks a lot... I shall follow your suggestions and delve into it more.

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.