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 26 14:31:16 UTC 2024 by a Ubuntu 24.04 LTS.
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.21% average profit over 78 trades.
Time | Token | Open | Close | Hours | Profit |
---|---|---|---|---|---|
2024-04-24 14:00:00 | Kraken-NEAR-EUR | 6.43 | 6.69 | 3 | 4.0% |
2024-04-24 14:00:00 | Binance-NEAR-EUR | 6.44 | 6.69 | 3 | 3.9% |
2024-04-24 08:00:00 | Kraken-LPT-EUR | 14.34 | 13.45 | 8 | -6.2% |
2024-04-24 02:00:00 | Kraken-AKT-EUR | 5.11 | 4.78 | 4 | -6.5% |
2024-04-23 20:00:00 | Kraken-AVAX-EUR | 35.96 | 33.78 | 30 | -6.1% |
2024-04-23 20:00:00 | Binance-AVAX-EUR | 36.01 | 33.66 | 30 | -6.5% |
2024-04-23 20:00:00 | Coinbase-AVAX-EUR | 35.98 | 33.61 | 30 | -6.6% |
2024-04-23 16:00:00 | Kraken-RNDR-EUR | 8.57 | 8.06 | 28 | -6.0% |
2024-04-16 13:00:00 | Coinbase-AXS-EUR | 6.47 | 6.69 | 58 | 3.3% |
2024-04-16 13:00:00 | Kraken-AXS-EUR | 6.50 | 6.71 | 66 | 3.2% |
2024-04-16 13:00:00 | Kraken-KP3R-EUR | 74.13 | 75.40 | 67 | 1.7% |
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-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 | Binance-BCH-EUR | 586.80 | 549.20 | 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 | Coinbase-BCH-EUR | 586.65 | 548.92 | 38 | -6.4% |
2024-04-02 02:00:00 | Coinbase-FIL-GBP | 7.25 | 6.78 | 22 | -6.5% |
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-01 14:00:00 | Kraken-BADGER-EUR | 6.26 | 5.85 | 35 | -6.6% |
2024-04-01 14:00:00 | Binance-ICP-EUR | 16.78 | 15.77 | 15 | -6.0% |
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 | Coinbase-AAVE-GBP | 92.20 | 96.14 | 4 | 4.3% |
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-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 | 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-17 07:00:00 | Coinbase-RNDR-EUR | 9.72 | 10.21 | 2 | 5.0% |
2024-03-15 17:00:00 | Kraken-DOT-EUR | 9.48 | 9.91 | 2 | 4.5% |
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 03:00:00 | Binance-EGLD-EUR | 64.27 | 60.29 | 35 | -6.2% |
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 | Kraken-AVAX-EUR | 48.91 | 45.83 | 6 | -6.3% |
2024-03-15 03:00:00 | Coinbase-AVAX-EUR | 48.93 | 45.89 | 6 | -6.2% |
2024-03-14 13:00:00 | Kraken-UNI-EUR | 12.86 | 12.07 | 14 | -6.1% |
2024-03-14 13:00:00 | Coinbase-UNI-EUR | 12.87 | 12.06 | 14 | -6.3% |
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 | Coinbase-FIL-EUR | 7.31 | 7.59 | 10 | 3.8% |
2024-02-26 19:00:00 | Kraken-FIL-EUR | 7.32 | 7.58 | 10 | 3.5% |
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% |
Benchmarks
---------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------- BM_is_entry 54913 ns 54904 ns 12838 BM_is_entry2 41906 ns 41878 ns 16823 BM_to_exit 216 ns 216 ns 3211014 BM_to_exit2 237 ns 237 ns 2924075 BM_to_vwap 7644 ns 7637 ns 92219 BM_to_vwap2 7612 ns 7606 ns 91217 BM_is_recent_dip2 802 ns 802 ns 874321 BM_to_atr 62977 ns 62968 ns 11129 BM_to_atr2 2421 ns 2421 ns 290774 BM_to_atr3 2430 ns 2428 ns 286702 BM_to_average_func 0.340 ns 0.340 ns 1000000000 BM_to_average_func2 0.339 ns 0.339 ns 1000000000 BM_to_average_volume 58827 ns 58827 ns 11937 BM_to_average_volume2 1878 ns 1878 ns 373243 BM_to_size 0.628 ns 0.628 ns 1000000000 BM_to_first 0.334 ns 0.334 ns 1000000000 BM_to_last 0.630 ns 0.630 ns 1000000000 BM_to_sum 0.629 ns 0.629 ns 1000000000 BM_to_sum2 0.331 ns 0.331 ns 1000000000 BM_to_spot 0.331 ns 0.331 ns 1000000000 BM_identity 172 ns 172 ns 4088448 BM_identity2 172 ns 172 ns 4028144 BM_to_profit 0.331 ns 0.331 ns 1000000000 BM_to_time 0.635 ns 0.635 ns 1000000000 BM_to_open 0.344 ns 0.344 ns 1000000000 BM_to_high 0.331 ns 0.331 ns 1000000000 BM_to_low 0.340 ns 0.340 ns 1000000000 BM_to_close 0.341 ns 0.341 ns 1000000000 BM_to_volume 0.630 ns 0.630 ns 1000000000