DEV Community

rocketsquirreldev
rocketsquirreldev

Posted on

[CryptoTradingBot] Analyzing 70 Live Trades of My Python Crypto Bot (v8.04 Post-Mortem)

I’ve been running version 8.04 of my Python-based crypto trading bot live for about a month. Instead of just looking at the final PnL, I built a dashboard to analyze the exact entry/exit logs of all 70 trades.

Here is what the raw data taught me about the gap between theoretical algorithms and live markets.

The Stats: A Tale of Two Months

  • Total Trades: 70
  • Win Rate: 48.6%
  • April (35 trades): 43% win rate, net negative.
  • May (35 trades): 54% win rate, net positive.

The bot clearly improved in May. In April, my logging showed two fatal flaws:

  1. The Sideways Trap: The bot entered BTC 4 times in a single day during a chop zone, getting stopped out repeatedly. My 1-hour cooldown logic was simply too short.
  2. Simultaneous Liquidations: The bot held LONG positions in LINK and ETH simultaneously. When the market dipped, both hit their stop-losses at the exact same minute, doubling my daily drawdown.

The Risk/Reward Illusion

This was the most humbling discovery. My algorithm is strictly coded to aim for a 3:1 Risk/Reward ratio.

However, the real-world data showed an average win of 0.80 and an average loss of 0.70. My actual R/R ratio was 1.14:1. Why?

  • Trailing Stops: My EXIT_PROFIT_SECURE trailing stop logic was too aggressive. It protected my capital by closing trades early during minor pullbacks, but it effectively prevented the bot from ever reaching the 3:1 target.

Asset Breakdown

  • $LINK (9W 9L): My most profitable pair. The "Volume Climax Filter" I added in v8.03 worked perfectly here, preventing FOMO entries at the top of pumps.
  • $ETH (7W 9L): The absolute worst performer. The stop-losses were large, and the take-profits were tiny.

Next Steps for v8.05

Data analysis gives you a clear roadmap. My next commits will include:

  1. Stricter ETH Entry: Bumping the ADX threshold limit to 25 specifically for ETH.
  2. Increased Cooldowns: Changing the post-loss cooldown for BTC from 1 hour to 2 hours.
  3. Daily Circuit Breaker: If the total daily loss exceeds a specific threshold, halt all new entries for 24 hours to prevent cascading simultaneous stops.

Algo-trading is 10% writing trading logic and 90% debugging your own assumptions through data. Back to the code!

Top comments (0)