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 Thu Feb 20 18:36:08 UTC 2025 by a Ubuntu Plucky Puffin (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.01% average profit over 64 trades.
Time | Token | Open | Close | Hours | Profit |
---|---|---|---|---|---|
2025-02-18 03:00:00 | Coinbase-LINK-EUR | 18.01 | 16.83 | 13 | -6.5% |
2025-02-14 21:00:00 | Kraken-ATOM-EUR | 4.72 | 4.61 | 67 | -2.3% |
2025-02-12 13:00:00 | Kraken-AAVE-GBP | 195.02 | 203.29 | 9 | 4.2% |
2025-02-12 12:00:00 | Kraken-ZEC-EUR | 30.88 | 32.17 | 13 | 4.2% |
2025-02-12 12:00:00 | Coinbase-AAVE-EUR | 235.43 | 244.12 | 10 | 3.7% |
2025-02-12 04:00:00 | Kraken-APT-EUR | 5.69 | 5.88 | 19 | 3.3% |
2025-02-12 03:00:00 | Coinbase-LINK-GBP | 14.90 | 15.44 | 20 | 3.6% |
2025-02-04 17:00:00 | Kraken-EGLD-EUR | 22.18 | 20.75 | 30 | -6.4% |
2025-01-25 18:00:00 | Kraken-NEAR-EUR | 4.70 | 4.85 | 14 | 3.3% |
2025-01-25 18:00:00 | Kraken-LINK-EUR | 23.81 | 24.56 | 23 | 3.1% |
2025-01-25 18:00:00 | Coinbase-DOT-EUR | 6.07 | 5.69 | 33 | -6.3% |
2025-01-25 18:00:00 | Kraken-AVAX-EUR | 34.13 | 35.31 | 2 | 3.5% |
2025-01-25 18:00:00 | Binance-NEAR-EUR | 4.72 | 4.43 | 33 | -6.2% |
2025-01-23 21:00:00 | Coinbase-RNDR-EUR | 6.66 | 6.88 | 14 | 3.3% |
2025-01-20 11:00:00 | Kraken-SOL-EUR | 250.53 | 231.32 | 13 | -7.7% |
2025-01-18 18:00:00 | Binance-ETH-EUR | 3162.63 | 3303.91 | 21 | 4.5% |
2025-01-18 16:00:00 | Kraken-NEAR-EUR | 5.26 | 5.43 | 10 | 3.2% |
2025-01-18 16:00:00 | Kraken-LTC-GBP | 103.06 | 95.88 | 17 | -7.0% |
2025-01-18 16:00:00 | Kraken-QNT-EUR | 111.98 | 103.70 | 17 | -7.4% |
2025-01-18 16:00:00 | Binance-EGLD-EUR | 34.21 | 31.95 | 20 | -6.6% |
2025-01-18 16:00:00 | Coinbase-ICP-EUR | 10.29 | 9.48 | 32 | -7.8% |
2025-01-18 14:00:00 | Kraken-FIL-EUR | 5.37 | 5.01 | 19 | -6.7% |
2025-01-18 14:00:00 | Kraken-ZEC-EUR | 51.45 | 47.96 | 18 | -6.8% |
2025-01-11 17:00:00 | Kraken-ICP-EUR | 9.93 | 10.25 | 4 | 3.2% |
2025-01-11 17:00:00 | Binance-ICP-EUR | 9.93 | 10.23 | 4 | 3.1% |
2025-01-07 11:00:00 | Coinbase-DOT-EUR | 7.44 | 6.94 | 7 | -6.7% |
2025-01-05 11:00:00 | Kraken-EUL-EUR | 5.20 | 4.89 | 15 | -6.0% |
2025-01-01 18:00:00 | Kraken-RUNE-EUR | 4.37 | 4.51 | 9 | 3.1% |
2025-01-01 17:00:00 | Coinbase-SOL-EUR | 183.42 | 189.88 | 8 | 3.5% |
2025-01-01 17:00:00 | Kraken-SOL-GBP | 151.56 | 156.84 | 8 | 3.5% |
2025-01-01 17:00:00 | Kraken-SOL-EUR | 183.48 | 189.61 | 8 | 3.3% |
2024-12-28 16:00:00 | Kraken-RAY-EUR | 4.75 | 4.91 | 2 | 3.3% |
2024-12-28 15:00:00 | Coinbase-UNI-EUR | 12.78 | 12.97 | 67 | 1.4% |
2024-12-22 23:00:00 | Coinbase-ICP-GBP | 7.91 | 8.29 | 21 | 4.8% |
2024-12-22 23:00:00 | Coinbase-ICP-EUR | 9.55 | 10.01 | 21 | 4.8% |
2024-12-22 14:00:00 | Coinbase-ICP-GBP | 7.97 | 8.29 | 30 | 4.1% |
2024-12-22 14:00:00 | Kraken-ENS-EUR | 33.11 | 34.24 | 30 | 3.4% |
2024-12-22 13:00:00 | Kraken-AVAX-EUR | 36.46 | 37.79 | 34 | 3.6% |
2024-12-22 13:00:00 | Coinbase-ETC-EUR | 25.37 | 26.46 | 32 | 4.3% |
2024-12-22 03:00:00 | Binance-DOT-EUR | 6.68 | 6.90 | 7 | 3.4% |
2024-12-18 14:00:00 | Binance-SOL-EUR | 205.96 | 188.04 | 28 | -8.7% |
2024-12-18 14:00:00 | Kraken-SOL-GBP | 170.14 | 155.66 | 28 | -8.5% |
2024-12-18 14:00:00 | Coinbase-SOL-GBP | 170.17 | 155.77 | 28 | -8.5% |
2024-12-17 09:00:00 | Binance-LTC-EUR | 112.29 | 116.16 | 8 | 3.4% |
2024-12-17 09:00:00 | Coinbase-LTC-EUR | 112.62 | 116.16 | 8 | 3.1% |
2024-12-17 09:00:00 | Kraken-LTC-EUR | 112.08 | 116.06 | 8 | 3.5% |
2024-12-17 09:00:00 | Coinbase-LTC-GBP | 92.82 | 96.01 | 8 | 3.4% |
2024-12-15 05:00:00 | Kraken-ATOM-GBP | 7.05 | 7.52 | 5 | 6.6% |
2024-12-14 07:00:00 | Kraken-ETC-EUR | 32.11 | 31.44 | 67 | -2.1% |
2024-12-13 18:00:00 | Kraken-BCH-EUR | 507.13 | 500.66 | 67 | -1.3% |
2024-12-13 18:00:00 | Coinbase-BCH-GBP | 421.80 | 436.51 | 55 | 3.5% |
2024-12-08 18:00:00 | Kraken-ENS-EUR | 38.65 | 36.27 | 15 | -6.1% |
2024-12-08 18:00:00 | Kraken-APT-EUR | 13.56 | 12.71 | 15 | -6.3% |
2024-12-08 17:00:00 | Coinbase-ATOM-EUR | 9.48 | 8.84 | 16 | -6.7% |
2024-12-08 17:00:00 | Kraken-RAY-EUR | 4.72 | 4.43 | 19 | -6.2% |
2024-12-08 17:00:00 | Coinbase-LTC-GBP | 104.59 | 97.24 | 16 | -7.0% |
2024-12-05 10:00:00 | Kraken-AXS-EUR | 8.83 | 9.10 | 36 | 3.1% |
2024-12-05 09:00:00 | Kraken-ZEC-EUR | 66.57 | 69.28 | 9 | 4.1% |
2024-12-05 01:00:00 | Coinbase-LTC-EUR | 122.45 | 126.37 | 10 | 3.2% |
2024-12-03 11:00:00 | Kraken-FARM-EUR | 53.90 | 58.41 | 1 | 8.4% |
2024-12-03 09:00:00 | Kraken-ENS-EUR | 38.92 | 41.48 | 16 | 6.6% |
2024-12-02 19:00:00 | Coinbase-BCH-EUR | 487.13 | 506.31 | 2 | 3.9% |
2024-12-02 19:00:00 | Kraken-BCH-EUR | 490.21 | 505.96 | 2 | 3.2% |
2024-12-02 19:00:00 | Kraken-ETC-EUR | 31.24 | 32.27 | 2 | 3.3% |
Benchmarks
---------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------- BM_is_entry 55576 ns 55574 ns 12709 BM_is_entry2 42703 ns 42702 ns 16192 BM_to_exit 238 ns 238 ns 2926976 BM_to_exit2 242 ns 242 ns 2953114 BM_to_vwap 7537 ns 7537 ns 93321 BM_to_vwap2 7518 ns 7517 ns 92904 BM_is_recent_dip2 802 ns 802 ns 873288 BM_to_atr 65139 ns 65138 ns 10790 BM_to_atr2 2393 ns 2393 ns 293517 BM_to_atr3 2567 ns 2563 ns 275493 BM_to_average_func 0.329 ns 0.329 ns 1000000000 BM_to_average_func2 0.334 ns 0.334 ns 1000000000 BM_to_average_volume 59317 ns 59317 ns 11822 BM_to_average_volume2 1882 ns 1882 ns 372939 BM_to_size 0.507 ns 0.507 ns 1000000000 BM_to_first 0.331 ns 0.331 ns 1000000000 BM_to_last 0.340 ns 0.340 ns 1000000000 BM_to_sum 0.327 ns 0.327 ns 1000000000 BM_to_sum2 0.330 ns 0.330 ns 1000000000 BM_to_spot 0.338 ns 0.338 ns 1000000000 BM_identity 162 ns 162 ns 4274828 BM_identity2 162 ns 162 ns 4338260 BM_to_profit 0.331 ns 0.331 ns 1000000000 BM_to_time 0.333 ns 0.333 ns 1000000000 BM_to_open 0.328 ns 0.328 ns 1000000000 BM_to_high 0.336 ns 0.336 ns 1000000000 BM_to_low 0.331 ns 0.331 ns 1000000000 BM_to_close 0.328 ns 0.327 ns 1000000000 BM_to_volume 0.331 ns 0.331 ns 1000000000