r/algotrading

Week 2: The Journey from $5,000 to $20,000

Week 2: The Journey from $5,000 to $20,000

11 Trading Days Into My $5K Live Trading Experiment

Starting balance: $5,000 Current balance: $7,230.45 Total P&L: +$2,230.45

The first few days went well, but the last few trading days have been a lot rougher.

Day 9 was the hardest one so far. At one point, the live account was down around $1,500 on the day, but it recovered and closed at -$464.97.

I've been running the strategy live and comparing the results against a backtest each day. The daily results don't always line up, which is part of what I'm trying to understand through this experiment.

I'm continuing toward the $20K target and will keep sharing the good days and the bad ones. Eleven trading days is still a small sample, so I'm not drawing any conclusions yet.

I'm going to keep running the test and sharing the results, including the losing days. The goal is still $20,000, but there's plenty of testing left to do before drawing any conclusions.

Wish me luck!

u/Kai8250 — 4 days ago

I backtested 100+ retail trading strategies (~700 versions) with real costs and dead companies included. Here is what survived

For the last few weeks I've been testing basically every strategy idea I came across with a custom backtesting engine built in Python with the help of Claude Opus 5.5. Chart patterns, SMC, insider buying, options flow, ML models, paper replications, AI reading news. Around 100+ ideas and ~700 versions in total. Long only, US stocks and ETFs, cash account.

Most of it didn't survive. Writing this up because the reasons they died were more useful to me than the few that worked.

Setup (so you can tell me where im wrong)

  • Signal on the close, fill at the next open. No same-bar fills
  • Costs 3-10 bp per side depending on the test, and every result rechecked at double costs
  • Every setup compared against random entries on the same stocks with the same holding period, stop and target
  • Split into a design period and an untouched period, plus walk-forward for anything with fitted parameters
  • Point-in-time universe, plus a separate check that includes delisted stocks

1. Dead companies change everything

My main portfolio is 50% SPY + 50% residual momentum stocks. Using only stocks listed today, it did 20.7%/yr vs SPY 15.3% (2015-2026).

With delisted stocks kept in, the same thing did 18.1% vs 13.8% from 2015 to mid 2026. And over 1999-2019 the edge shrank to 7.9% vs 6.3%, with a worse max drawdown (-59% vs -55%).

So the edge is real-ish but a big chunk of the backtest was just the dead stocks missing.

2. Costs decide more than the signal

A ML ranking model (walk-forward, every year trained only on earlier years) had the top 20 beating the universe by 13.2%/yr before costs. At 2 bp per side 11.0%, at 5 bp 7.7%, at 10 bp 2.4%. Same predictions, the only thing that changed was the fee.

Later a bigger version (129 features, gradient boosting) had a really strong out-of-sample IC (t 7.0) and still lost to plain momentum once turnover costs were in.

3. High win rate means almost nothing

Tested SMC (order block bounce, FVG, 50% mitigation) on the 4H chart, 477 stocks, 2023-2026. The win rate looked good. But random entries with the same stop and target got the same win rate. The setup was 3.8 to 16.5 bp per trade worse than random. The win rate comes from where you put the stop and target, not from the setup. Worst trade was -43%, the stock gapped down 22% overnight.

Same story with the classic RSI(2) SPY rule: 69% winners over 10 years, +16.9% total vs +214.9% for just holding SPY.

4. Insider buying is too late for a normal person

Insider clusters (Form 4) look great in backtests that buy at the filing date. But 69% of filings are accepted after the close, and the stock has usually gapped up by the next open. Buying at the first price you can actually get: +21 bp vs the universe, t 0.7. Nothing.

5. AI reads the news right, still too slow

Gave an LLM 8-K filings published after its training cutoff so it couldnt cheat. It understood them fine. But by the first tradable price the move had already happened. Being correct about news is not the same as being early.

6. The open is expensive exists at the opening auction.

Limit orders to save the spread didn't help either. In one test ~20% of limit orders never filled, and the ones that didn't fill went on to make +1.95% on average. You save the spread on the losers and miss the winners. Net gain was about +1.4 bp, basically nothing.

7. A lot of the money is made overnight

84% of my dip-buying edge over random entries happened between the close and the next open. And over 2023-2026 SPY from 10:30am to the close lost ~3.9% a year while SPY overall was up ~22% a year. Day-trading-only strategies are swimming against that.

8. Stop losses don't protect you from gaps

On small caps (4 strategy families), trades with stops still had worst trades of -59% to -91% because the stock gapped through the stop overnight. Stops on my momentum portfolio also lowered returns and didn't really reduce drawdowns.

9. Even the best thing I found isn't proven

Once you count how many things you tried, the bar goes way up. One of my best results, judged against ~320 tries, failed Bonferroni and had a deflated Sharpe probability of 0.086, so it could be luck. The main portfolio beats SPY with t 1.8, which is suggestive, not significant. So now it runs on a forward paper record and I don't trust any backtest number until that has months behind it.

What actually held up (small stuff)

  • Buy-the-dip on SPY/QQQ in uptrends: SPY 1993-2026, 804 trades, ~70% winners, ~+0.25% a trade, worst -10.9%. Youre in cash most days so on its own its only 6-9% a year
  • A month-end SPY trade: 202 trades since 2002, 66% winners, ~+0.86% a trade, worst -8.1%
  • Residual momentum + SPY blend above, with all the caveats

Also dead: chart pattern breakouts (231 instruments, none beat random), FVG / order blocks / S&R / candlesticks / MA crosses (1,441 stocks, ~2.4M signals, no |t| > 2.3), options flow as a stock signal (597 stocks), sector rotation, volume spikes (7 versions), earnings gap continuation, opening range breakouts, and 12 strategies from published papers. Most of the paper ones only worked with short selling, pre-2015 numbers or tiny stocks.

Happy to share more detail on any of these. And if you think a test is wrong, tell me. I'd rather find the mistake now than with real money.

What strategy do you trade that you think would survive this kind of testing?

Edit: as a commenter pointed out, the two runs in point 1 cover different windows (sep 2015-sep 2026 vs jan 2014-mid 2026), so the 20.7 vs 18.1 drop isn't all survivorship. same-date rerun coming.

u/tanweer919 — 4 days ago

iftrades seemingly got rid of the free trial after last week’s popular post about exporting their top strategies with a free trial

The free trial is now the standard $5 / month. Not a crazy price but funny that the free trial ended after the popular post about it.

u/iRDataNick — 4 days ago

Walk-forward test of copying top Polymarket wallets in 5 sports: rank correlation month to month is ~0

We wanted to know if you can pick Polymarket wallets by past results and make money copying them after. Setup, since that's what matters here:

  • a "copy" = a wallet's first buy >= $20 in a market, price 0.30-0.85. we buy the same outcome for $10 at their price + 1c, pay the taker fee (0.05 * p * (1-p)), hold to resolution
  • pick wallets on the 2 months before the test month, copy only in the test month. nothing from the test month touches selection
  • 3 rules fixed before running: every wallet with 10+ copies, wallets with t >= 2 on 20+ copies, top 10 by t

MLB had the most data, 799,542 copied buys from 27,564 wallets. Top 10 went from +$2.72 to +$3.78 per $10 in the pick window to between -$2.23 and +$0.16 the month after. Spearman between a wallet's pick-window result and next-month result was -0.01, +0.15, +0.08, -0.03. The "every wallet" baseline lost $0.31 to $0.63 per $10 in every test month. At +3c instead of +1c everything is negative. MLB t-stats are clustered by market.

NFL, college football, LoL and Valorant looked the same or worse. NFL never got a month with |t| >= 2 either way.

The thing I'd flag for anyone building a copy bot: don't select wallets with labels you can see today (smart money, win rate, resolved market count). They're computed on the full history including your test months, so the backtest already knows who survived. We had a mild version of this in one filter (sport share of activity on full history) and disclosed it, it most likely flatters the result and there was still no edge.

To check our pipeline we wrote a script that rebuilds the copies from the public API. On the same 800 MLB games it produced 161,094 copies, same as our database, every price and result equal, total -$83,012.60 both ways.

Not tested: slower markets like politics, and selecting wallets by how they trade rather than PnL.

Data (per-wallet CSV with anonymous IDs, monthly tables, the script): https://github.com/orcalayer/polymarket-copy-trading-whales-backtest

Disclosure: I'm one of the people behind OrcaLayer, a Polymarket analytics site. The script needs our API key to run, the CSVs don't.

u/Turbulent-Peace-8772 — 4 days ago

MT5 pre-built EAs or a customized python script?

Just like what the title says, what would you prefer? out of experience I personally think the python script can be tweaked easily to your needs, and confluences can be added ... but those who are familiar with both I would like to hear from you more ....

reddit.com
u/NoobsAreDeepPersons — 4 days ago
▲ 6 r/algotrading+2 crossposts

started tracking my multi system account as an index. 100 on day one, fixed base, not running balance

i run a handful of systems on one account and for a long time i tracked return as a percent of current balance. compounding makes the late months look huge and you start sizing up because the curve feels steep

switched to an index. 100 on the start date, then 100 plus cumulative profit divided by the starting account size. a good month in month 11 counts the same as one in month 2

chart is made up monthly returns, same numbers both lines, only the scorekeeping differs. the gap at the end is compounding, not skill

other thing i do now, when i change weights or add a system i recalculate the whole history with the new weights. otherwise the curve is half one portfolio and half another. old screenshots stop matching and thats fine

do you recalc the past or only apply new weights forward

u/david19790 — 8 days ago
▲ 10 r/algotrading+5 crossposts

Backtesting a rule on todays index members leaves out every company that got removed, which is most of what would have hurt you

Something worth checking on any multi year stock test, and I got this wrong in plenty of my own early ones.

You pick a universe, usually the current S&P 500 or the current Nasdaq 100, and you run a rule across ten years of history on those names. The list you used is todays list. Every company that dropped out of the index over those ten years, whether it got bought, went under, or just shrank out of it, is not in the test at all, because it was never in the list you started from.

What you are left with is ten years of history belonging to companies that were healthy enough to still be in the index this morning. The index swaps names out every year and over a decade that is a long list of companies that a current member list simply does not contain.

This hits mean reversion rules hardest. A rule that buys a drawdown and waits gets tested only on the drawdowns that recovered, because the names where the drawdown kept going are precisely the ones that left the index. The test never sees them, so the recovery rate it reports is not the recovery rate you would have lived through.

Its a bit like judging a high school program by asking the seniors how it went. The kids who quit in tenth grade arent in the room to ask.

____

Two things that actually help.

The first is a universe dated to the day the rule fired, so a name enters the test when it entered the index and leaves when it left. Point in time membership data is sold rather than given away, which is why so few retail tests have it.

The second is cheaper. Run the same rule on a fixed basket you chose for a reason that has nothing to do with current membership, a handful of names you picked by sector at the start date, and compare. If the current member version is much stronger, the gap between them is a rough measure of how much of the result was survivorship.

Worth saying that the length of the history is not what fixes this. The equity candles I test on in Agenticks go back to 2000, and a test built on a current name list carries exactly the same bias at 26 years as it does at 10. The bias comes out of the list of names, and it can only be removed there.

u/person-person12 — 11 days ago

Sim results for last 6 months

I built this algo back in February and have had it running on sim for the last 6 months to see how it performs.

These are the results so far.

I’m at the point where I’m considering putting it live, but I’m still a bit hesitant. Would be good to hear from people who have experience with this.

Do you think 6 months of sim results is enough to start testing it live, or would you keep it on sim for longer? Also, is there anything in particular you’d want to see before making that decision?

Appreciate any feedback.

u/Somethingnotright123 — 12 days ago

I generated hundreds of crypto trading strategies and open-sourced 416 of them with full reports. Only 10 passed a brutal 7-stage validation

I built a validation pipeline that runs strategies through 7 stages on real Binance data:
Stage1: code safety scan, in-sample, out-of-sample, walk-forward, randomized starts, slippage stress and Stage 7: final holdout slice nothing else touches.

6 months of 5-minute candles per run on BTC/ETH/SOL domains. Then I made a generator with several ideas and let it auto create and run the gauntlet on them (In retrospect might have been inefficient. I should have fed previously passed strategies back in to guide generation but I was a bit paranoid about correlation risks and spawning 416 clones).

It took me a few days to run and the repo is almost everything that came out: 406 rejects plus 10 survivors, each with a report card showing in-sample and OOS returns, Sharpe, drawdown, trade count, the exact stage it died on and why.

github.com/CacheCarti/Crypto-Strategies 

The stuff that surprised me:

  • The single best-looking backtest in the batch pctb_fade_sol_v3, +2014bps in-sample !!! :O went -112bps the moment it saw unseen data.
  • Literal astrology meme bots I created got high returns in backtests but obviously failed in validation. Backtests have a big element of luck! Unreliable!!
  • Out of all the strategies, exactly one showed an in-sample Sharpe above 1.5. It failed validation anyway. If you're searching for the perfect backtest in this dataset it basically doesn't exist.
  • 25 strategies were profitable out-of-sample and STILL got rejected. They couldn't survive walk-forward and injected slippage. Green OOS numbers by itself is just most probably luck until proven otherwise, but they definitely might be a good place to fork and improve on in the future!
  • Weirdest result: some of the 10 survivors have negative OOS returns. They passed because they held up under perturbation and randomized starts.
  • The family that dominated was kinda bizzare: asia_drift_btc BTC drifts during Asian session hours, 7/9 of these variants passed! Meanwhile the families everyone actually trades went 0/9 across the board: Donchian breakouts, Bollinger squeezes, RSI reversion, orderbook imbalance. Every single variant, dead. Context beat TA, so is TA dead??? Lol, my generator was probably bad at writing them, someone smart could actually build a good template for TA strategies.
  • Every BTC scalping variant failed: 0/18. At ~7bps a side in fees, the edge you need on 5-minute bars is brutal. Anything thinner cannot survive. It might have been my 5 minute time windows of evaluation though.

The code is plain Python on a simple predict-style contract, so they can drop into most backtesters. Most of the rejects failed on robustness rather than logic, so they're actually decent starting points if you want to improve them. Happy to answer questions on the methodology.

If anyone improves the strategies and gets different results I'd love to see it!

u/drykilo — 13 days ago

The tightest stop had the smallest drawdown and finished 25 years up 7.8%. Same entry with a wider stop made 92%.

Every risk thread says keep the stop tight. I had never seen the same entry run three times with nothing changed except the stop distance, so i ran it on SPY daily candles from January 2001 to the end of March 2026, ten grand each, commission and slippage charged on both sides of every fill.

Same rules all three times. Buy at the close when price closes above the highest high of the last 50 candles, stop a multiple of ATR below the entry, no target, out on the stop.

1 ATR stop: 167 trades, 30.5% wins, profit factor 1.06, +7.8%, max drawdown 17.2%

2 ATR stop: 135 trades, 47.4% wins, profit factor 1.22, +41.7%, max drawdown 22.3%

3 ATR stop: 125 trades, 60.0% wins, profit factor 1.41, +92.1%, max drawdown 21.6%

The tight stop did do the thing people say it does. It had the smallest drawdown of the three by about 5 points. It also turned ten grand into ten grand and change over 25 years, off the identical entry that made 92% with more room.

ATR is the average range, so a 1 ATR stop sits inside a normal days movement and roughly seven out of ten trades came out on noise rather than on the breakout being wrong. The win rate doubles between the tight stop and the wide one and the entry never moved, which tells you the entry was not the thing being measured in the first run.

The 2 and 3 ATR runs have nearly the same drawdown as each other, 22.3 against 21.6, so the extra room past 2 ATR cost nothing in drawdown and roughly doubled the return.

im not claiming wide stops are free. 125 trades across 25 years is 5 a year, so the sample under each line is thin, and a 3 ATR stop on a 25k futures account is a different problem because the dollar loss per trade is set by the contract rather than by you. On this entry, on this instrument, the tight stop bought back about 5 points of drawdown and paid 84 points of return for it.

reddit.com
u/person-person12 — 12 days ago

I tried flipping my losing strategy. I'm still losing money.

So I have this bot that lost money for me day in and day out for 3 months. Saw on /reddit you can just flip a losing strategy and you make money.

So I flipped every signal it gave me. Bought on sell signals, sold on buy signals.

Yup. Still losing. just the other way around.

Turns out when your strategy is totally noise, flipping it just mirrors your noise. Mind blown.

At this point might as well just give up and not trade at all. Pretty sure that would've neem a profitable strategy.

reddit.com
u/ReadingTheSign23 — 13 days ago

6 Days Into the $5,000 Live Test

Six days into the live test now. Before putting the full $5,000 in, I spent several weeks running the strategy with a small amount of real money and making adjustments based on actual fills, slippage, and order timing. I also went through the forward testing period to make sure the strategy was being tested on data it hadn't been optimized on. After that, I started the live test with $5,000. Starting balance: $5,000 Current balance: $7,428.84 First target: $20,000 Here are the results so far: Day 1 Live: 16 trades, -$25.00 Backtest: 16 trades, -$20.00 Day 2 Live: 3 trades, +$19.96 Backtest: 3 trades, +$32.51 Day 3 Live: 39 trades, +$920.22, 69.2% win rate Backtest: 35 trades, +$846.58, 54.3% win rate Day 4 Live: 89 trades, +$1,075.24, 66.3% win rate Backtest: 88 trades, +$982.06, 67.0% win rate Day 5 Live: 53 trades, +$377.64, 66.0% win rate Backtest: 53 trades, +$396.38, 43.4% win rate Day 6 Live: 5 trades, +$61.33, 60.0% win rate Backtest: 5 trades, +$55.70, 60.0% win rate So far, the live results have been fairly close to the backtest overall. Still very early, and I'm not drawing any conclusions from six days. I'm going to keep running it and posting the results as they happen. Next stop: $20,000.

Still a long way to go. I’ll keep sharing the good days and bad days along the way. Wish me luck!

u/Kai8250 — 12 days ago

A noob problem for smart algotraders: "Help the noob": I found lots of high win rate strategies but tail losses are keeping me down. Help me how to "prompt" this problem away

This is a noob question.

You found a strategy.

Nice equity curve, high win rate. But there are some losses that take down multiple profitable winner trades. the tail losses.

Everything looks perfect in the mt5 tester.

You go to live. The tail loss shows up . too weird. statistically it shouldn´t be showing up so early.

You got the high win rate but your drawdown is not being respected.

You are a noob. you are still clueless about how to detect "regime changes" automatically.

How do you prompt away problems like this one: high win rates but tail loss ( avg loss y multiple times avg profit)

Have you been in these situations when you found solid strategies but you got this nasty avg loss that not only may eat you multiple profitable trades but it likes to show up more frequently in live than in backtesting mode?

reddit.com
u/algomoneyfest — 12 days ago

Where do your filter ideas come from, chart reading or statistics?

When you're refining a strategy, where do your hypotheses for filters actually come from?

Visual: you scroll through losing and winning trades on the chart, overlay indicators and notice things like "most losers happen when price is squeezed into a tight range" or "winners usually come after a big impulse candle". Then you turn that into a filter and test it.

Statistical: you dump trade data (indicator values, time of day, volatility, distance from MA, etc.) and look at distributions, correlations or feature importance to see what separates winners from losers. The chart barely comes into it.

I'm asking because I'm not sure where my time is best spent during refinement:

  • Chart reading gives me ideas that make intuitive sense, but it's slow and I worry about confirmation bias and small samples
  • Stats are fast and objective, but they only test the features I thought to include, and it's easy to data-mine a filter that falls apart out of sample

So:

  1. Where do most of your filter ideas come from?
  2. In refinement, do you spend more time on charts or on numbers?
  3. Has one source given you filters that held up better out of sample?

For context, I build MT5 EAs and validate with in-sample/out-of-sample splits.

reddit.com
u/sqzr2 — 13 days ago

Programming Higher Lows

Hello,

Does anyone have experience programming higher low detection on a chart? how do you detect maxima and minima with python? I'm currently having a lot of trouble translating ideas into code. The tutorials and AI assistance doesn't seem to be very helpful. if anyone can recommend a book on this, it would be greatly appreciated.

reddit.com
u/Rich-Caregiver-2027 — 12 days ago
▲ 14 r/algotrading+4 crossposts

Is there a tool that connects prediction markets to your stock portfolio?

The more I think about prediction markets, the more useful they seem as real-time probability engines for events such as elections, wars, regulation, tariffs, and broader geopolitical risks.

Is there already a tool where you can upload your stock portfolio and automatically identify relevant Polymarket or Kalshi markets?

For example:

  • Which prediction markets are most relevant to my holdings?
  • Are current probabilities creating headwinds or tailwinds for my portfolio?
  • Which stocks have the highest exposure to a specific event?
  • How would my portfolio react if the market-implied probability changed significantly?

Essentially, I am looking for a portfolio risk dashboard powered by prediction-market data.

Does anything like this already exist? And would you actually use it?

EDIT - Found Oracle Markts here via my ChatGPT "research" and user comment: https://oraclemarkets.io/portfolio

u/No_Syrup_4068 — 14 days ago

measure your mfe give back before you put a system on an intraday trailing prop account

small thing that took me too long to think about.

a lot of prop accounts use a trailing drawdown that updates intraday, off open equity. meaning the floor moves up on unrealized profit. if your system lets winners run and gives some back before exiting, the floor keeps the peak and you pay for the round trip.

so before sizing for one of those, compute per trade: max favorable excursion minus what you actually realized. call it give back. thats the extra cost the floor charges on top of your stop.

did it on my trend system, about 170 trades. histogram attached. median is small, around 80 bucks, because most trades either stop out or run to target. but theres a fat tail, a handful of trades gave back 800-1,000+. thats more than my stop.

two things i took from it:

fixed take profit systems barely care about the drawdown type. they grab the move and leave before the floor chases anything.

trailing exit systems pay on every trade that round trips, and the tail is what blows the account, not the median.

if you only have closed trade data you cant tell whether the high or the low came first inside the trade, so anything you simulate for intraday trailing is a range, not a number. i ran both orders and the gap was big.

no strong conclusion, just check this before you pick the account type. happy to share the pandas bit if anyone wants it, its like 10 lines

u/david19790 — 13 days ago

I built a smart order router for Kalshi and Polymarket, saving 2.3¢ per contract on average. Here's the source code.

A few days ago, I posted here about the arbitrage spreads I found between Polymarket and Kalshi. A lot of the discussion came down to execution — finding an edge is one thing, actually getting a good fill is another. That got me looking at a different execution problem: if the same contract trades on both venues at different prices, why send the entire order to just one?

Say you want to buy 1000 contracts:

  • Polymarket: 200 @ 51¢, 400 @ 53¢, 400 @ 55¢
  • Kalshi: 300 @ 52¢, 500 @ 52.5¢, 200 @ 54¢

Neither venue has the best price for the full 1000. But if you merge both order books, you can take the cheapest liquidity from each. So I built a smart order router. It combines both books, adjusts each level for fees, and routes the order from the cheapest executable price outward across venues.

I tested it across ~200 markets listed on both Kalshi and Polymarket. For a 1000-contract order, routing across both venues saved an average of 2.3¢ per contract versus sending the full order to Kalshi alone.

The router is fully open source here: https://github.com/Synpath-ai/synpath

Anyone else executing across venues? What’s your experience with fill rates and partial fills?

u/YukiChuuu — 14 days ago