DEV Community

Paarthurnax
Paarthurnax

Posted on

I Let AI Trade Crypto for 30 Days With Paper Money — Here's Every Single Trade

I Let AI Trade Crypto for 30 Days With Paper Money — Here's Every Single Trade

The worst trade happened on Day 6.

My AI agent — running locally on my laptop via OpenClaw — flagged an RSI oversold signal on BTC at 2:47 AM. It dutifully logged the "BUY" in my paper trading database. By the time I woke up, BTC had dropped another 8%. The RSI that looked oversold at 2 AM was just the beginning of a three-day flush.

On paper, I lost $847 of my virtual $10,000. In real life, I lost nothing but sleep. That's the entire point of paper trading.

This is the full log of 30 days running an AI crypto agent on paper money. Every trade, every mistake, the final number, and what I'd actually do with real capital now.

Not financial advice. Paper trading only. All results are hypothetical and do not represent real returns.


The Setup

Agent: OpenClaw (local AI agent framework, runs on my MacBook)

Strategy: RSI mean reversion on BTC/USDT, 4-hour chart

Entry condition: RSI < 35 AND price above EMA(200) (macro uptrend filter)

Exit condition: RSI > 60 OR price drops below EMA(200)

Starting capital: $10,000 virtual

Period: 30 days

Data source: Binance API (real prices, paper execution)

I wrote the strategy rules in plain English first, coded them in Python, connected them to OpenClaw, and let it run. No manual overrides. Whatever the strategy said, the agent logged.

The setup took about 45 minutes total. The 30 days was the education.


Week 1: Signal Watch (Days 1-7)

I spent the first week just watching. No paper trades — just monitoring signals to understand how often they triggered.

What I learned: My strategy was almost never triggered.

BTC was in a choppy range around $74,000-$78,000. RSI oscillated between 42 and 58. The strategy needed RSI < 35. It never got there.

Day 5: RSI hit 38. Close but no trigger.

Day 7: First actual BUY signal. RSI touched 34.2 at 04:00 UTC.

Week 1 lesson: Your signal frequency matters as much as your win rate. A strategy that triggers once per month will give you 12 data points per year. That's not enough to draw conclusions. Know this before you start.


The Full Trade Log

Here's every paper trade from the 30-day period:

# Date Action Price RSI Exit Price Exit Reason P&L
1 Day 7, 04:00 UTC BUY $74,240 34.2 $76,890 RSI > 60 +3.57%
2 Day 12, 14:00 UTC BUY $73,100 33.8 $71,450 EMA200 breach -2.26%
3 Day 16, 22:00 UTC BUY $70,800 32.1 $73,620 RSI > 60 +3.98%
4 Day 20, 07:00 UTC BUY $72,500 34.9 $74,100 RSI > 60 +2.21%
5 Day 24, 03:00 UTC BUY $71,200 31.4 $69,900 EMA200 breach -1.83%
6 Day 28, 18:00 UTC BUY $68,400 30.2 $71,800 RSI > 60 +4.97%

Total completed trades: 6

Win rate: 4/6 = 66.7%

Average win: +3.68%

Average loss: -2.05%

Win/Loss ratio: 1.79

Trade-by-Trade Notes

Trade #1 (Day 7): +3.57%

Textbook entry. RSI oversold, price holding above EMA200, clean bounce. This was the trade that made me think I had found something. Don't get overconfident on trade #1.

Trade #2 (Day 12): -2.26%

The 2 AM trade I mentioned at the start. RSI hit 33.8 on what turned out to be the beginning of a larger move down. EMA200 stopped me out. Loss was contained — that's the stop working correctly. But emotionally, watching the position drop the morning after felt real even with fake money.

Trade #3 (Day 16): +3.98%

Best entry of the month. RSI at 32.1 — deep oversold. BTC had just bounced off a key level. Held for 96 hours before RSI > 60 exit. This is what the strategy is designed to do.

Trade #4 (Day 20): +2.21%

Marginal entry at RSI 34.9 — barely qualified. Smaller bounce. Exited quickly. The marginal entries produce smaller returns — noted for future optimization.

Trade #5 (Day 24): -1.83%

EMA200 stop. BTC was starting a new leg down after a failed bounce. The strategy correctly recognized the regime change and exited. This stop saved me from a much larger loss — BTC dropped another 5% after I exited.

Trade #6 (Day 28): +4.97%

Best risk/reward of the month. Deeply oversold at 30.2 — rare on 4H. Strong bounce. Held for 72 hours. Validated that deeper oversold readings produce larger bounces.


Final Results

Starting capital: $10,000.00

Final capital: $11,247.83

Total return: +12.48%

Max drawdown: -2.26% (single trade max)

Portfolio drawdown from peak: -3.09%

Sharpe ratio (simplified): ~1.8

For context: BTC during this same period went from $74,200 to $68,400 — a loss of -7.8%.

The strategy returned +12.48% while BTC itself lost -7.8%. Outperformance: ~+20 percentage points.

Does that mean I should go all-in? No. 6 trades is not enough data. But it means the strategy is worth testing for another 30 days at a larger scale.


What I Learned (The Honest Version)

1. You'll want to override. Don't.

Three times I watched the position go red and wanted to manually exit. The strategy said hold. I held (on paper). Two of those three times, it recovered. Once it didn't — but the stop loss handled it correctly.

The hardest part of systematic trading isn't the system. It's trusting the system when it's uncomfortable.

2. Signal frequency is a real constraint

Six trades in 30 days. Some months, you might get two. Some months, zero. If you're expecting to trade every week, RSI mean reversion on a 4H chart isn't your strategy. Know the trade frequency before you commit.

3. The overnight entries are the riskiest

Trades #1 and #3 both triggered overnight (UTC). That's early morning AU/NZ time — thin liquidity, higher volatility. Not necessarily bad, but worth knowing that you might get slippage on a real account that you won't experience in paper trading.

4. The EMA200 stop is earning its keep

Both losing trades were stopped by the EMA200 breach. Without it, Trade #2 would have lost ~6% instead of 2.26%. The macro filter isn't just for entries — it's a running stop on every position.

5. Deeper oversold = better entries

RSI 30.2 (Trade #6) → +4.97%. RSI 34.9 (Trade #4) → +2.21%. The pattern holds: deeper oversold produces larger bounces. Implication for optimization: raise the entry threshold to RSI < 32 and test again.


What I'd Do Different Next Month

Change 1: Tighten entry to RSI < 32 (only take deep oversold)

Change 2: Add a volume confirmation — don't enter if volume is below 20-period average

Change 3: Test on ETH as well — RSI mean reversion might work better on ETH in ranging markets

I won't change the exit rules. They worked.


The OpenClaw Setup (Reproducible)

If you want to run this exact experiment, here's the core monitoring code:

import ccxt
import pandas as pd
import ta
import sqlite3
from datetime import datetime

def check_signal():
    exchange = ccxt.binance({"enableRateLimit": True})
    data = exchange.fetch_ohlcv("BTC/USDT", "4h", limit=250)
    df = pd.DataFrame(data, columns=["ts","open","high","low","close","volume"])
    df["datetime"] = pd.to_datetime(df["ts"], unit="ms")
    df.set_index("datetime", inplace=True)

    df["rsi"] = ta.momentum.RSIIndicator(df["close"], 14).rsi()
    df["ema_200"] = ta.trend.EMAIndicator(df["close"], 200).ema_indicator()

    latest = df.iloc[-1]

    if latest["rsi"] < 35 and latest["close"] > latest["ema_200"]:
        return "BUY", latest["close"], latest["rsi"]
    elif latest["rsi"] > 60 or latest["close"] < latest["ema_200"]:
        return "SELL", latest["close"], latest["rsi"]
    else:
        return "HOLD", latest["close"], latest["rsi"]

# Run every 4 hours via OpenClaw heartbeat
signal, price, rsi = check_signal()
print(f"[{datetime.utcnow().strftime('%Y-%m-%d %H:%M')} UTC] Signal: {signal} | BTC: ${price:,.0f} | RSI: {rsi:.1f}")
Enter fullscreen mode Exit fullscreen mode

Set this as an OpenClaw skill running every 4 hours. It sends Telegram alerts on BUY/SELL signals. That's the entire active trading system.


Should You Paper Trade?

Yes. Unconditionally.

Six paper trades taught me more about this strategy — and about my own psychology — than any backtest could have. The backtest shows you the numbers. Paper trading shows you how you'll actually behave when those numbers are happening in real time.

The $0 cost of being wrong with paper money is the most valuable thing in trading. Use it.


Take the Next Step

The full 30-day paper trading program — with database setup, monitoring scripts, strategy templates, and daily journal — is in the OpenClaw kit:

👉 OpenClaw Home AI Agent Kit — Full Setup Guide

Also check out CryptoClaw Skills Hub — browse and install crypto skills for your OpenClaw agent:

👉 https://paarthurnax970-debug.github.io/cryptoclawskills/

Thirty days of paper trading is worth six months of reckless live trading.


Not financial advice. Paper trading only. All results are hypothetical — actual results will differ based on market conditions, execution, and strategy parameters. Past performance does not guarantee future results.

Top comments (0)