Crypto/stock backtester pipeline

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.

gprof profile

Built with ♥ on Thu May 8 17:36:06 UTC 2025 by a Ubuntu 25.04.

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.46% average profit over 66 trades.

Time Token Open Close Hours Profit
2025-05-05 21:00:00 Kraken-AAVE-EUR 155.94 146.11 15 -6.3%
2025-05-05 01:00:00 Coinbase-AAVE-GBP 129.99 134.05 5 3.1%
2025-04-30 07:00:00 Kraken-LINK-GBP 10.88 11.22 28 3.2%
2025-04-28 10:00:00 Coinbase-ENS-EUR 16.21 16.77 64 3.5%
2025-04-28 00:00:00 Coinbase-AAVE-GBP 125.03 128.80 6 3.0%
2025-04-26 21:00:00 Kraken-AVAX-EUR 19.55 19.36 67 -1.0%
2025-04-15 06:00:00 Kraken-ETH-GBP 1241.41 1191.77 67 -4.0%
2025-04-14 07:00:00 Binance-LINK-EUR 11.09 11.54 4 4.0%
2025-04-14 07:00:00 Kraken-INJ-EUR 7.22 6.74 49 -6.6%
2025-04-13 22:00:00 Coinbase-ETH-GBP 1217.03 1255.68 12 3.2%
2025-04-12 11:00:00 Kraken-LTC-EUR 66.93 69.73 4 4.2%
2025-04-11 09:00:00 Kraken-ETH-EUR 1362.84 1404.42 24 3.1%
2025-04-11 00:00:00 Coinbase-ETH-EUR 1346.34 1390.57 17 3.3%
2025-04-11 00:00:00 Coinbase-ETC-EUR 13.16 13.70 38 4.1%
2025-04-11 00:00:00 Kraken-AAVE-EUR 117.25 120.78 17 3.0%
2025-04-11 00:00:00 Coinbase-ETH-GBP 1167.87 1204.21 17 3.1%
2025-04-11 00:00:00 Coinbase-LTC-EUR 65.56 67.76 10 3.4%
2025-04-11 00:00:00 Kraken-BCH-EUR 258.16 266.59 10 3.3%
2025-04-11 00:00:00 Kraken-ETH-EUR 1346.71 1391.29 17 3.3%
2025-04-11 00:00:00 Kraken-KSM-EUR 11.66 12.01 18 3.1%
2025-04-11 00:00:00 Binance-LTC-EUR 65.56 67.75 10 3.4%
2025-04-11 00:00:00 Kraken-LTC-EUR 65.56 67.73 10 3.3%
2025-04-11 00:00:00 Binance-ETH-EUR 1346.82 1390.92 17 3.3%
2025-04-11 00:00:00 Kraken-UNI-EUR 4.47 4.62 16 3.3%
2025-04-11 00:00:00 Binance-BNB-EUR 512.19 527.77 39 3.0%
2025-04-09 11:00:00 Coinbase-SOL-EUR 95.51 101.52 6 6.3%
2025-04-09 11:00:00 Coinbase-SOL-GBP 82.27 87.60 6 6.5%
2025-04-09 11:00:00 Binance-SOL-EUR 95.58 101.49 6 6.2%
2025-04-09 11:00:00 Coinbase-BTC-GBP 59839.73 62145.68 6 3.9%
2025-04-09 09:00:00 Coinbase-BCH-EUR 247.58 258.16 8 4.3%
2025-04-06 17:00:00 Kraken-MLN-EUR 9.05 8.31 9 -8.2%
2025-04-03 07:00:00 Kraken-ETH-GBP 1384.06 1397.68 67 1.0%
2025-04-03 07:00:00 Coinbase-ETH-GBP 1383.85 1397.96 67 1.0%
2025-04-02 21:00:00 Kraken-AAVE-EUR 147.01 137.86 13 -6.2%
2025-04-02 14:00:00 Kraken-LTC-GBP 64.33 66.77 5 3.8%
2025-04-02 14:00:00 Kraken-INJ-EUR 8.08 7.51 20 -7.0%
2025-04-02 14:00:00 Coinbase-AVAX-EUR 17.73 16.52 9 -6.9%
2025-04-02 14:00:00 Kraken-LTC-EUR 76.90 79.79 5 3.8%
2025-04-02 14:00:00 Coinbase-UNI-EUR 5.62 5.25 22 -6.5%
2025-04-02 14:00:00 Binance-LTC-EUR 76.89 79.79 5 3.8%
2025-04-02 14:00:00 Coinbase-LTC-GBP 64.27 66.72 5 3.8%
2025-03-18 16:00:00 Kraken-NMR-EUR 9.60 8.98 41 -6.4%
2025-03-17 07:00:00 Kraken-AVAX-EUR 16.98 17.53 45 3.2%
2025-03-16 22:00:00 Kraken-LTC-GBP 70.04 72.34 4 3.3%
2025-03-13 14:00:00 Coinbase-ETH-EUR 1730.40 1783.73 50 3.1%
2025-03-12 12:00:00 Kraken-APT-EUR 4.78 4.91 67 2.6%
2025-03-08 01:00:00 Binance-BCH-EUR 358.77 336.23 40 -6.3%
2025-03-07 09:00:00 Binance-SOL-EUR 133.08 137.26 10 3.1%
2025-03-07 09:00:00 Binance-LTC-EUR 95.23 98.54 19 3.5%
2025-03-07 09:00:00 Kraken-BTC-EUR 81861.87 76934.43 54 -6.0%
2025-03-07 09:00:00 Kraken-SOL-EUR 133.14 137.26 10 3.1%
2025-03-07 09:00:00 Coinbase-BTC-EUR 81858.32 76942.67 54 -6.0%
2025-03-07 09:00:00 Kraken-BTC-GBP 68738.90 64478.67 53 -6.2%
2025-03-07 09:00:00 Coinbase-BTC-GBP 68746.51 64617.68 53 -6.0%
2025-03-07 09:00:00 Coinbase-SOL-GBP 111.77 115.25 10 3.1%
2025-03-07 09:00:00 Binance-BTC-EUR 81888.56 76962.80 54 -6.0%
2025-03-07 09:00:00 Coinbase-SOL-EUR 133.13 137.27 10 3.1%
2025-03-07 09:00:00 Coinbase-LTC-EUR 95.21 98.49 19 3.4%
2025-03-04 11:00:00 Kraken-BCH-GBP 243.61 251.19 12 3.1%
2025-03-03 17:00:00 Coinbase-LINK-GBP 12.76 11.97 2 -6.2%
2025-03-03 17:00:00 Kraken-LINK-EUR 15.46 14.52 2 -6.1%
2025-02-28 16:00:00 Kraken-WBTC-EUR 81124.67 85530.23 48 5.4%
2025-02-28 14:00:00 Coinbase-AVAX-EUR 20.49 21.12 4 3.1%
2025-02-24 15:00:00 Kraken-MKR-EUR 1439.40 1347.93 6 -6.4%
2025-02-22 05:00:00 Kraken-LINK-EUR 16.79 15.73 57 -6.3%
2025-02-18 03:00:00 Coinbase-LINK-EUR 18.01 16.83 13 -6.5%

Benchmarks


----------------------------------------------------------------
Benchmark                      Time             CPU   Iterations
----------------------------------------------------------------
BM_is_entry                52424 ns        52424 ns        12669
BM_is_entry2               40388 ns        40324 ns        17292
BM_to_exit                   231 ns          231 ns      3070294
BM_to_exit2                  226 ns          226 ns      3115906
BM_to_vwap                  7530 ns         7530 ns        93040
BM_to_vwap2                 7566 ns         7566 ns        93396
BM_is_recent_dip2            889 ns          889 ns       787825
BM_to_atr                  60604 ns        60511 ns        11609
BM_to_atr2                  2402 ns         2401 ns       292028
BM_to_atr3                  2542 ns         2542 ns       272832
BM_to_average_func         0.336 ns        0.336 ns   2071183230
BM_to_average_func2        0.340 ns        0.340 ns   2131529103
BM_to_average_volume       61135 ns        61135 ns        11290
BM_to_average_volume2       1902 ns         1902 ns       371110
BM_to_size                 0.510 ns        0.510 ns   1356459705
BM_to_first                0.329 ns        0.329 ns   2122837224
BM_to_last                 0.335 ns        0.335 ns   2096344093
BM_to_sum                  0.337 ns        0.337 ns   2075193793
BM_to_sum2                 0.332 ns        0.332 ns   2144417841
BM_to_spot                 0.339 ns        0.339 ns   2095665966
BM_identity                  163 ns          163 ns      4318294
BM_identity2                 162 ns          162 ns      4314270
BM_to_profit               0.334 ns        0.334 ns   2091409410
BM_to_time                 0.332 ns        0.332 ns   2136603298
BM_to_open                 0.333 ns        0.333 ns   2092043638
BM_to_high                 0.331 ns        0.331 ns   2101248686
BM_to_low                  0.340 ns        0.340 ns   2082837469
BM_to_close                0.333 ns        0.332 ns   2089993196
BM_to_volume               0.332 ns        0.332 ns   2050927477