Build Status

History is no indicator of future performance. Don’t invest what you can’t afford to lose.

Have A Nice Day Trader is an algorithmic trading platform that uses patterns in historic prices to influence future trades. 80 days of prices are requested for hundreds of currency pairs, then a library of strategies is backtested and a summary is generated.

Run in Docker:

docker run deanturpin/handt

Prices are fetched using the CryptoCompare API. See the entry point in main.cpp and all exchanges. The strategies are defined in the low_frequency_trader.cpp, the permutations and thresholds are generated in strategy.cpp.

9683151 Merge branch 'master' of gitlab.com:deanturpin/handt

Generated Wed May 12 09:33:46 2021

Current prospects

Strategy Pair Exchange Perf Spot
Supine-Griffon-12 XLMUP-USDT Binance 25/1 13.74
Supine-Griffon-13 XLMUP-USDT Binance 25/1 13.74
Supine-Griffon-15 XLMUP-USDT Binance 21/0 13.74
Supine-Griffon-14 XLMUP-USDT Binance 22/1 13.74
Darting-Havanese-15 ETHUP-USDT Binance 19/0 521.11
Supine-Griffon-16 XLMUP-USDT Binance 19/0 13.74
Supine-Pekingese-9 XLMUP-USDT Binance 21/1 13.74
Indifferent-Pomeranian-16 UNIUP-USDT Binance 18/0 39.75
Darting-Axolotl-14 ETHUP-USDT Binance 18/0 521.11
Darting-Axolotl-15 ETHUP-USDT Binance 18/0 521.11
Leaping-Pomeranian-9 XLMDOWN-USDT Binance 19/1 0.000893

80-day backtest

Strategy Pair Exchange Perf Spot
Slouching-Cricket-8 LINKUP-USDT Binance 28/1 21.63
Darting-Munchkin-8 SUSHIDOWN-USDT Binance 25/0 0.04755
Indifferent-Munchkin-8 SUSHIDOWN-USDT Binance 25/0 0.04755
Indifferent-Capybara-7 XLMUP-USDT Binance 24/0 13.74
Slouching-Capybara-7 XLMUP-USDT Binance 24/0 13.74
Darting-Shiba Inu-10 EOSDOWN-USDT Binance 25/1 0.00095
Supine-Griffon-12 XLMUP-USDT Binance 25/1 13.74
Supine-Griffon-13 XLMUP-USDT Binance 25/1 13.74
Supine-Shiba Inu-14 XLMUP-USDT Binance 24/1 13.74
Supine-Sphynx-6 XLMUP-USDT Binance 24/1 13.74
Straddling-Griffon-16 TRXUP-USDT Binance 21/0 14.22
Straddling-Griffon-17 TRXUP-USDT Binance 21/0 14.22
Supine-Griffon-11 BAT-BUSD Binance 21/0 1.366
Supine-Griffon-15 XLMUP-USDT Binance 21/0 13.74
Supine-Norrbottenspets-12 XLMUP-USDT Binance 21/0 13.74
Supine-Norrbottenspets-13 XLMUP-USDT Binance 21/0 13.74
Straddling-Griffon-14 TRXUP-USDT Binance 23/1 14.22
Straddling-Griffon-15 TRXUP-USDT Binance 23/1 14.22
Supine-Shiba Inu-15 XLMUP-USDT Binance 23/1 13.74
Slouching-Xoloitzcuintli-7 SKL-USDT Binance 20/0 0.5606
Slouching-Shiba Inu-17 BNBUP-USDT Binance 20/0 2230.17

Overall strategy performance

150 strategies

Slouching-Bandicoot|357/173 Straddling-Badger|10637/6346 Slouching-Munchkin|3586/2661 Leaping-Badger|3066/2487 Slouching-Basenji|16146/13340 Darting-Sphynx|17043/14887 Darting-Norrbottenspets|15732/13875 Slouching-Jagdterrier|11951/10654 Slouching-Affenpinscher|15025/13599 Leaping-Xoloitzcuintli|12558/11783 Darting-Xoloitzcuintli|18620/17943 Straddling-Xoloitzcuintli|32400/31281 Straddling-Capybara|26885/26094 Darting-Bichon Frise|0/0 Darting-Lowchen|0/0 Darting-Mink|0/0 Darting-Narwahl|0/0 Darting-Ocelot|0/0 Darting-Papillon|0/0 Darting-Shih Tzu|0/0 Indifferent-Bichon Frise|0/0 Indifferent-Lowchen|0/0 Indifferent-Mink|0/0 Indifferent-Narwahl|0/0 Indifferent-Ocelot|0/0 Indifferent-Papillon|0/0 Indifferent-Shih Tzu|0/0 Leaping-Bichon Frise|0/0 Leaping-Lowchen|0/0 Leaping-Mink|0/0 Leaping-Narwahl|0/0 Leaping-Ocelot|0/0 Leaping-Papillon|0/0 Leaping-Shih Tzu|0/0 Slouching-Bichon Frise|0/0 Slouching-Lowchen|0/0 Slouching-Mink|0/0 Slouching-Narwahl|0/0 Slouching-Ocelot|0/0 Slouching-Papillon|0/0 Slouching-Shih Tzu|0/0 Straddling-Bichon Frise|0/0 Straddling-Lowchen|0/0 Straddling-Mink|0/0 Straddling-Narwahl|0/0 Straddling-Ocelot|0/0 Straddling-Papillon|0/0 Straddling-Shih Tzu|0/0 Supine-Bichon Frise|0/0 Supine-Lowchen|0/0 Supine-Mink|0/0 Supine-Narwahl|0/0 Supine-Ocelot|0/0 Supine-Papillon|0/0 Supine-Shih Tzu|0/0 Darting-Capybara|4304/4410 Darting-Badger|503/518 Straddling-Sphynx|28412/31223 Leaping-Capybara|12751/14023 Supine-Badger|33526/38598 Supine-Affenpinscher|18391/21483 Leaping-Sphynx|16328/20106 Leaping-Norrbottenspets|19521/24433 Supine-Bandicoot|5863/7528 Slouching-Badger|39855/53856 Indifferent-Badger|39886/54110 Straddling-Norrbottenspets|48086/70890 Supine-Munchkin|20927/32431 Leaping-Affenpinscher|89491/143796 Supine-Basenji|24994/40432 Supine-Jagdterrier|27781/46577 Supine-Axolotl|89600/151296 Straddling-Pekingese|51776/87817 Supine-Xoloitzcuintli|119372/203494 Straddling-Shiba Inu|55680/96081 Straddling-Griffon|58126/102657 Straddling-Pomeranian|50331/90045 Leaping-Shiba Inu|71121/127342 Leaping-Bandicoot|26882/49552 Supine-Sphynx|111309/206896 Indifferent-Affenpinscher|122345/228031 Leaping-Griffon|76001/142207 Slouching-Axolotl|113568/214098 Darting-Affenpinscher|119956/226167 Slouching-Xoloitzcuintli|144575/278384 Slouching-Cricket|116701/226918 Straddling-Affenpinscher|25053/48873 Indifferent-Xoloitzcuintli|146899/286574 Darting-Shiba Inu|108074/213071 Supine-Capybara|95464/189932 Supine-Cricket|97481/202469 Leaping-Basenji|87700/188204 Indifferent-Sphynx|140204/301663 Slouching-Sphynx|138298/298207 Straddling-Axolotl|48717/105542 Straddling-Basenji|24788/55584 Darting-Griffon|123288/280596 Supine-Pekingese|142951/329271 Slouching-Capybara|116785/277900 Indifferent-Capybara|117000/279587 Leaping-Pomeranian|110172/263893 Leaping-Munchkin|76576/184455 Indifferent-Bandicoot|38403/93166 Darting-Bandicoot|38382/93158 Straddling-Havanese|76719/186477 Straddling-Cricket|46078/114867 Leaping-Jagdterrier|140398/350680 Straddling-Jagdterrier|37479/93815 Indifferent-Basenji|119001/301728 Straddling-Munchkin|22686/57616 Darting-Basenji|117079/298989 Supine-Pomeranian|137135/353110 Leaping-Pekingese|104206/276328 Supine-Norrbottenspets|196786/522313 Straddling-Bandicoot|9256/24938 Leaping-Axolotl|161211/449354 Slouching-Pekingese|157710/449899 Darting-Munchkin|105750/302156 Darting-Jagdterrier|177197/506978 Indifferent-Munchkin|105921/303072 Indifferent-Jagdterrier|177943/509295 Leaping-Cricket|162875/483753 Supine-Shiba Inu|222441/677184 Indifferent-Norrbottenspets|236306/733419 Slouching-Norrbottenspets|234723/729275 Indifferent-Axolotl|238722/744035 Indifferent-Pekingese|221457/694314 Darting-Pomeranian|144763/464650 Slouching-Pomeranian|153548/493726 Supine-Griffon|227583/733892 Indifferent-Pomeranian|225825/747491 Darting-Axolotl|209512/718518 Darting-Pekingese|133704/460015 Leaping-Havanese|184716/635547 Indifferent-Cricket|244663/868320 Darting-Cricket|217682/814795 Supine-Havanese|248740/933383 Indifferent-Shiba Inu|285534/1080920 Slouching-Shiba Inu|266711/1021756 Slouching-Griffon|270237/1073019 Indifferent-Griffon|296870/1193644 Straddling-Lundehund|93345/387045 Darting-Havanese|238695/1102999 Slouching-Havanese|282794/1400683 Indifferent-Havanese|362644/1923176 Leaping-Lundehund|258405/1410045 Supine-Lundehund|351780/2185005 Slouching-Lundehund|420870/4005405 Indifferent-Lundehund|476655/20073180 Darting-Lundehund|349350/17202255

sloccount

Have a non-directory at the top, so creating directory top_dir
Adding /builds/deanturpin/handt/backtest.h to top_dir
Adding /builds/deanturpin/handt/detailed_report.h to top_dir
Adding /builds/deanturpin/handt/low_frequency_trader.h to top_dir
Adding /builds/deanturpin/handt/parallel.h to top_dir
Adding /builds/deanturpin/handt/report.h to top_dir
Adding /builds/deanturpin/handt/strategy.h to top_dir
Adding /builds/deanturpin/handt/strategy_report.h to top_dir
Adding /builds/deanturpin/handt/trade.h to top_dir
Adding /builds/deanturpin/handt/backtest.cpp to top_dir
Adding /builds/deanturpin/handt/detailed_report.cpp to top_dir
Adding /builds/deanturpin/handt/low_frequency_trader.cpp to top_dir
Adding /builds/deanturpin/handt/main.cpp to top_dir
Adding /builds/deanturpin/handt/report.cpp to top_dir
Adding /builds/deanturpin/handt/strategy.cpp to top_dir
Adding /builds/deanturpin/handt/strategy_report.cpp to top_dir
Adding /builds/deanturpin/handt/trade.cpp to top_dir
Adding /builds/deanturpin/handt/get_all_coins.py to top_dir
Adding /builds/deanturpin/handt/get_coins.py to top_dir
Adding /builds/deanturpin/handt/get_prices.py to top_dir
Categorizing files.
Finding a working MD5 command....
Found a working MD5 command.
Computing results.


SLOC    Directory   SLOC-by-Language (Sorted)
610     top_dir         cpp=541,python=69


Totals grouped by language (dominant language first):
cpp:            541 (88.69%)
python:          69 (11.31%)




Total Physical Source Lines of Code (SLOC)                = 610
Development Effort Estimate, Person-Years (Person-Months) = 0.12 (1.43)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 0.24 (2.86)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 0.50
Total Estimated Cost to Develop                           = $ 16,078
 (average salary = $56,286/year, overhead = 2.40).
SLOCCount, Copyright (C) 2001-2004 David A. Wheeler
SLOCCount is Open Source Software/Free Software, licensed under the GNU GPL.
SLOCCount comes with ABSOLUTELY NO WARRANTY, and you are welcome to
redistribute it under certain conditions as specified by the GNU GPL license;
see the documentation for details.
Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."