QQQ 9/31 EMA trend-follow, stress-tested
Go long QQQ when price is above a rising fast EMA stack (9 > 31) and short on the mirror signal, with fixed stops and targets.
What they did
Trading Time Machine re-ran a strategy someone else had claimed: on QQQ daily bars, go long when the close is above the 9 EMA and the 9 EMA is above the 31 EMA (mirror rules for shorts). Stops and targets were 3%/5% for longs and 1%/6.5% for shorts, entering at the next open. They then ran Monte Carlo stress tests and extended the test back to 1999.
How it went
Trading Time Machine reports (summarized from our research notes; read the article for exact figures): their reproduction produced 117 trades with a −16.9% drawdown, against an originally claimed +280% over 10 years. Monte Carlo showed a 1-in-100 worst drawdown of about −31%, and extending the test to 1999 showed about −44%. Their headline: 'Feed it a lucky decade and you get a lucky forecast.'
Sources:
Worth knowing
- This is a reproduction that weakens the original claim. That's the point of including it.
- Shorting QQQ needs a margin account. Paper-test the long-only version first if you're unsure.
- Always test across 1999–2002 and 2008, not just the last 10 years.
The prompt
Monitor QQQ daily bars. After each close:
Long entry: close > [9]-EMA AND [9]-EMA > [31]-EMA AND I'm flat → propose buying $[amount] at the next open with stop −[3]% and target +[5]%.
Short entry [enable/disable]: close < [9]-EMA AND [9]-EMA < [31]-EMA AND I'm flat → propose shorting with stop +[1]% and target −[6.5]%.
Only one position at a time. Report EMA values and signal state daily.
Monthly: report the max drawdown so far and compare with buy-and-hold QQQ.
SAFETY DEFAULTS (keep unless you deliberately change them):
- Use the PAPER trading account only. Never touch a live account.
- Before every order, show me: symbol, side, size, order type, limit price, stop, and the rule that triggered it. Then WAIT for my "approve".
- Hard limits: max [$500] per trade, max [3] open positions, stop all trading for the day after a loss of [$300].
- Log every signal, decision and fill to [a running log / spreadsheet] with timestamps.To go fully autonomous: (1) run on paper for at least [4–8 weeks] or [30+ trades]; (2) delete the 'WAIT for my approve' line and keep the hard limits; (3) switch to live keys or account. On Robinhood, turn off trade approvals in your agent settings, but note that some orders can still require in-app approval or acknowledging a pre-trade alert, so unattended execution isn't guaranteed for every order. IBKR's AI connector always asks for approval; use its regular API for unattended trading. Never remove the daily loss limit.