Crypto/stock backtester
See my other projects: turpin.dev.
Disclaimer
Don't invest what you can't afford to lose. Illustrations are for illustrative purposes only. History is not an indicator of future performance. That said...
Overview
Historic price data are fetched daily via the Marketstack and CryptoCompare APIs, and converted to CSV format using Python; each currency pair is then analysed in C++. Finally, the table below is generated using the trade summary.
Profiling
The C++ code is profiled using gprof
and visualised with gprof2dot
and graphviz
.
Built with ♥ on Fri Apr 19 14:31:16 UTC 2024 by a Ubuntu Noble Numbat (development branch).
Backtests
- 446 currency pairs (from Marketstack, Coinbase, Kraken, Binance)
- 3% take profit
- 6% stop loss
- 68 candles window size
- 0.5 minimum ATR (normalised)
- 4.3 minimum entry price
0.06% average profit over 78 trades.
Time | Token | Open | Close | Hours | Profit |
---|---|---|---|---|---|
2024-04-16 13:00:00 | Kraken-AXS-EUR | 6.50 | 6.71 | 66 | 3.2% |
2024-04-16 13:00:00 | Coinbase-ETC-GBP | 20.73 | 21.37 | 16 | 3.1% |
2024-04-16 13:00:00 | Coinbase-DOT-EUR | 6.17 | 6.38 | 56 | 3.3% |
2024-04-16 13:00:00 | Kraken-LTC-GBP | 62.81 | 64.72 | 34 | 3.0% |
2024-04-16 13:00:00 | Coinbase-AXS-EUR | 6.47 | 6.69 | 58 | 3.3% |
2024-04-16 13:00:00 | Kraken-KP3R-EUR | 74.13 | 75.40 | 67 | 1.7% |
2024-04-10 11:00:00 | Kraken-XMR-EUR | 123.20 | 114.31 | 56 | -7.2% |
2024-04-09 01:00:00 | Kraken-MLN-EUR | 23.48 | 24.57 | 16 | 4.6% |
2024-04-02 02:00:00 | Coinbase-AAVE-EUR | 116.80 | 109.13 | 6 | -6.6% |
2024-04-02 02:00:00 | Coinbase-MASK-EUR | 5.18 | 5.36 | 5 | 3.5% |
2024-04-02 02:00:00 | Coinbase-ICP-GBP | 14.18 | 14.66 | 28 | 3.4% |
2024-04-02 02:00:00 | Coinbase-FIL-GBP | 7.25 | 6.78 | 22 | -6.5% |
2024-04-02 02:00:00 | Coinbase-BCH-EUR | 586.65 | 548.92 | 38 | -6.4% |
2024-04-02 02:00:00 | Kraken-BCH-EUR | 585.44 | 548.66 | 38 | -6.3% |
2024-04-02 02:00:00 | Binance-BCH-EUR | 586.80 | 549.20 | 38 | -6.4% |
2024-04-01 14:00:00 | Binance-ICP-EUR | 16.78 | 15.77 | 15 | -6.0% |
2024-04-01 14:00:00 | Kraken-BADGER-EUR | 6.26 | 5.85 | 35 | -6.6% |
2024-04-01 14:00:00 | Coinbase-ICP-GBP | 14.35 | 13.37 | 19 | -6.8% |
2024-03-31 07:00:00 | Kraken-FIL-EUR | 8.90 | 9.31 | 17 | 4.5% |
2024-03-30 14:00:00 | Kraken-MASK-EUR | 5.21 | 5.41 | 42 | 3.7% |
2024-03-30 06:00:00 | Kraken-KP3R-EUR | 89.90 | 96.27 | 15 | 7.1% |
2024-03-29 18:00:00 | Coinbase-SOL-GBP | 147.33 | 152.23 | 5 | 3.3% |
2024-03-29 16:00:00 | Kraken-SOL-GBP | 146.98 | 152.30 | 7 | 3.6% |
2024-03-29 04:00:00 | Kraken-LTC-GBP | 74.28 | 76.96 | 5 | 3.6% |
2024-03-28 09:00:00 | Kraken-MLN-EUR | 25.51 | 23.87 | 23 | -6.4% |
2024-03-27 19:00:00 | Kraken-KP3R-EUR | 89.37 | 92.20 | 28 | 3.2% |
2024-03-26 08:00:00 | Kraken-XRT-EUR | 6.39 | 5.90 | 28 | -7.6% |
2024-03-23 21:00:00 | Kraken-MLN-EUR | 25.71 | 23.89 | 14 | -7.1% |
2024-03-22 22:00:00 | Kraken-ATOM-GBP | 8.91 | 9.20 | 17 | 3.4% |
2024-03-22 22:00:00 | Kraken-LTC-GBP | 65.49 | 68.18 | 12 | 4.1% |
2024-03-22 22:00:00 | Kraken-AAVE-GBP | 92.21 | 96.35 | 4 | 4.5% |
2024-03-22 22:00:00 | Coinbase-AAVE-EUR | 107.30 | 110.73 | 3 | 3.2% |
2024-03-22 22:00:00 | Coinbase-AAVE-GBP | 92.20 | 96.14 | 4 | 4.3% |
2024-03-22 22:00:00 | Coinbase-LTC-EUR | 76.28 | 79.53 | 12 | 4.3% |
2024-03-22 10:00:00 | Coinbase-SOL-GBP | 139.66 | 145.31 | 60 | 4.0% |
2024-03-18 23:00:00 | Binance-ICP-EUR | 11.35 | 10.58 | 6 | -6.8% |
2024-03-17 16:00:00 | Kraken-FORTH-EUR | 4.88 | 5.06 | 2 | 3.6% |
2024-03-17 15:00:00 | Coinbase-AVAX-EUR | 50.51 | 52.23 | 4 | 3.4% |
2024-03-17 07:00:00 | Coinbase-RNDR-EUR | 9.72 | 10.21 | 2 | 5.0% |
2024-03-17 07:00:00 | Binance-APT-EUR | 12.54 | 13.34 | 1 | 6.4% |
2024-03-17 07:00:00 | Kraken-APT-EUR | 12.47 | 13.31 | 1 | 6.8% |
2024-03-15 17:00:00 | Binance-LINK-EUR | 17.77 | 16.66 | 30 | -6.2% |
2024-03-15 17:00:00 | Kraken-MKR-EUR | 2520.07 | 2599.13 | 7 | 3.1% |
2024-03-15 17:00:00 | Kraken-DOT-EUR | 9.48 | 9.91 | 2 | 4.5% |
2024-03-15 03:00:00 | Binance-EGLD-EUR | 64.27 | 60.29 | 35 | -6.2% |
2024-03-15 03:00:00 | Kraken-AVAX-EUR | 48.91 | 45.83 | 6 | -6.3% |
2024-03-15 03:00:00 | Kraken-EGLD-EUR | 63.74 | 65.71 | 4 | 3.1% |
2024-03-15 03:00:00 | Binance-AVAX-EUR | 48.91 | 45.88 | 6 | -6.2% |
2024-03-15 03:00:00 | Coinbase-AVAX-EUR | 48.93 | 45.89 | 6 | -6.2% |
2024-03-14 13:00:00 | Coinbase-UNI-EUR | 12.87 | 12.06 | 14 | -6.3% |
2024-03-14 13:00:00 | Kraken-UNI-EUR | 12.86 | 12.07 | 14 | -6.1% |
2024-03-12 17:00:00 | Kraken-QTUM-EUR | 4.64 | 4.83 | 2 | 3.9% |
2024-03-10 22:00:00 | Binance-EGLD-EUR | 60.68 | 62.77 | 12 | 3.4% |
2024-03-10 22:00:00 | Kraken-MOVR-EUR | 20.93 | 21.57 | 16 | 3.0% |
2024-03-05 02:00:00 | Kraken-KSM-EUR | 48.51 | 50.28 | 6 | 3.6% |
2024-03-05 02:00:00 | Kraken-KP3R-EUR | 80.87 | 84.37 | 12 | 4.3% |
2024-03-04 12:00:00 | Kraken-MASK-EUR | 4.45 | 4.13 | 31 | -7.2% |
2024-03-04 07:00:00 | Kraken-BADGER-EUR | 5.25 | 5.49 | 6 | 4.5% |
2024-03-03 16:00:00 | Kraken-FARM-EUR | 45.96 | 47.64 | 45 | 3.7% |
2024-03-01 07:00:00 | Kraken-KSM-EUR | 45.87 | 47.46 | 18 | 3.5% |
2024-03-01 07:00:00 | Coinbase-ICP-EUR | 11.74 | 12.28 | 19 | 4.6% |
2024-02-29 04:00:00 | Binance-LINK-EUR | 17.94 | 18.62 | 5 | 3.8% |
2024-02-28 00:00:00 | Coinbase-RNDR-EUR | 6.62 | 6.86 | 5 | 3.7% |
2024-02-27 09:00:00 | Kraken-NMR-EUR | 29.35 | 30.39 | 30 | 3.5% |
2024-02-26 21:00:00 | Kraken-FIL-GBP | 6.37 | 5.97 | 23 | -6.3% |
2024-02-26 19:00:00 | Kraken-FIL-EUR | 7.32 | 7.58 | 10 | 3.5% |
2024-02-26 19:00:00 | Coinbase-FIL-EUR | 7.31 | 7.59 | 10 | 3.8% |
2024-02-15 14:00:00 | Coinbase-RNDR-EUR | 4.61 | 4.92 | 9 | 6.7% |
2024-02-14 01:00:00 | Binance-AVAX-EUR | 36.69 | 38.30 | 8 | 4.4% |
2024-02-09 04:00:00 | Binance-LINK-EUR | 16.91 | 17.64 | 44 | 4.3% |
2024-02-04 15:00:00 | Coinbase-ICP-GBP | 10.05 | 10.36 | 2 | 3.1% |
2024-01-31 19:00:00 | Binance-SOL-EUR | 93.30 | 87.01 | 7 | -6.7% |
2024-01-31 19:00:00 | Kraken-AVAX-EUR | 32.39 | 30.35 | 6 | -6.3% |
2024-01-31 19:00:00 | Coinbase-SOL-GBP | 79.44 | 74.17 | 7 | -6.6% |
2024-01-31 19:00:00 | Coinbase-SOL-EUR | 93.25 | 86.99 | 7 | -6.7% |
2024-01-31 09:00:00 | Binance-SOL-EUR | 92.85 | 87.01 | 17 | -6.3% |
2024-01-31 09:00:00 | Binance-EGLD-EUR | 51.36 | 48.23 | 16 | -6.1% |
2024-01-30 12:00:00 | Kraken-INJ-EUR | 34.16 | 32.11 | 21 | -6.0% |
Benchmarks
---------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------- BM_is_entry 55108 ns 55070 ns 12749 BM_is_entry2 41825 ns 41796 ns 16554 BM_to_exit 217 ns 216 ns 3252941 BM_to_exit2 238 ns 237 ns 2952019 BM_to_vwap 7559 ns 7553 ns 93291 BM_to_vwap2 7506 ns 7505 ns 92221 BM_is_recent_dip2 801 ns 801 ns 873944 BM_to_atr 64037 ns 63994 ns 10922 BM_to_atr2 2447 ns 2446 ns 284106 BM_to_atr3 2425 ns 2423 ns 292866 BM_to_average_func 0.339 ns 0.339 ns 1000000000 BM_to_average_func2 0.347 ns 0.347 ns 1000000000 BM_to_average_volume 59676 ns 59670 ns 11820 BM_to_average_volume2 1879 ns 1879 ns 370270 BM_to_size 0.631 ns 0.630 ns 1000000000 BM_to_first 0.346 ns 0.346 ns 1000000000 BM_to_last 0.648 ns 0.648 ns 1000000000 BM_to_sum 0.632 ns 0.631 ns 1000000000 BM_to_sum2 0.331 ns 0.331 ns 1000000000 BM_to_spot 0.335 ns 0.335 ns 1000000000 BM_identity 162 ns 161 ns 4343013 BM_identity2 160 ns 160 ns 4298078 BM_to_profit 0.341 ns 0.341 ns 1000000000 BM_to_time 0.632 ns 0.632 ns 1000000000 BM_to_open 0.332 ns 0.332 ns 1000000000 BM_to_high 0.340 ns 0.340 ns 1000000000 BM_to_low 0.333 ns 0.333 ns 1000000000 BM_to_close 0.330 ns 0.330 ns 1000000000 BM_to_volume 0.639 ns 0.638 ns 1000000000