Writing
All posts
Patterns, validation, and the things that quietly go wrong.
Latest
A Volatility Contraction Isn't a Trend Signal, It's a Coin Flip With Better Marketing
A Bollinger Band squeeze is a real, legitimate volatility forecast. It has almost nothing to say about which direction the eventual move takes.
All posts
What Happens When You Try to Turn a Harmonic Pattern Into Boolean Code
A harmonic pattern takes four seconds to spot by eye. The code that finds the same shape automatically has to make a dozen judgment calls nobody put in the textbook.
Order Flow Auctions Don't Remove MEV From L2s, They Just Sell It Upstream
An order flow auction doesn't make MEV disappear, it hands the extraction rights to whoever wins the bid, and calls the leftover a rebate.
The Hallucinated Indicator Value That Quietly Breaks an Agentic Trading Loop
A failed tool call inside a trading loop doesn't produce an error, it produces a plausible-looking number, and that's exactly why nobody notices.
I Backtested the Same Candle Event Long and Short. Both Came Back Profitable.
The same event backtested profitably in both directions, and the reason had nothing to do with the pattern itself.
What Happens When You Backtest Every Possible Indicator Combination at Once
Running every pairwise combination of your indicator signals doesn't discover an edge, it guarantees a predictable number of accidents that look like one.
Why Picking Your Best Backtest Result Is Already a Form of Overfitting
The act of sorting your training results and keeping the top performers is itself a source of bias, separate from and in addition to overfitting the rules.
How Many Random Patterns Look Profitable by Chance Alone
At the win rate thresholds most backtests use, a meaningful share of 'profitable' patterns are exactly what pure chance would produce anyway.
Why Session-Based Regime Detection Beats Indicator-Based Regime Detection for Forex Bots
Forex already runs on a regime clock most bots ignore in favor of statistical methods built for markets that don't have one.
Volatility Clustering Isn't Regime Detection, It's a Symptom of One
By the time ATR confirms a regime has shifted, the participants who caused the shift have already been trading the new regime for a while.
Your Backtest Doesn't Know What Regime It's In, and That's the Real Problem
A backtest run over three years of data doesn't validate a strategy against three years of market conditions, it validates it against an average of conditions that never coexisted.
The Operating Margin Problem: Why Backtests Overstate Bot Profitability the Same Way Companies Overstate Earnings
A backtest's headline return is a gross figure wearing a net figure's clothes, and the gap between them is where most live strategies quietly die.
What a Profitability Dashboard for a Trading Bot Should Actually Show
Most bot dashboards show an equity curve and a win rate, which is another way of saying they show almost nothing about whether the strategy still works.
Deflated Sharpe Ratio for a Retail MT5 Backtest
A Sharpe ratio computed from one backtest doesn't tell you if the edge is real — it tells you the result of one trial, and the deflated version is what corrects for how many trials you actually ran to get it.
Magic Number Collisions When Running Multiple EAs on One Account
A magic number is a bookkeeping convention your own code invents and enforces — MT5's server has no idea it exists, which is exactly why two EAs sharing one can quietly manage each other's trades.
Reconstructing Historical Spread by Session When Tick Data Doesn't Go Back Far Enough
Your OHLC history usually goes back years further than your broker's actual spread history does, and a flat average spread over that gap is a worse assumption than most backtests admit to.
Walk-Forward Analysis for Trading Strategies
A single train/test split proves a strategy worked once; walk-forward analysis is the only way to see whether it keeps working as the market keeps changing underneath it.
How to Pull Historical Data from MT5 Using Python
The MetaTrader5 Python library will hand you a clean-looking dataframe without telling you it silently dropped the one column your cost model actually needed.
MT5 Strategy Tester: Every Tick vs Every Tick Based on Real Ticks vs OHLC
The three tick modeling modes in MT5 don't just differ in speed — they differ in whether your backtest can see the exact price path your stop and target are racing against.
Monte Carlo Simulation for a Trading Strategy
A single backtest equity curve is one path out of thousands the same trades could have taken; Monte Carlo simulation is what tells you how much of that curve was luck.
Forex EA / Bot Stopped Trading: Why Your Expert Advisor Isn't Opening Trades
Most of the time an EA that goes silent isn't broken logic — it's a mismatch between the conditions your code assumes and the conditions the terminal, broker, or clock actually provide.
How Many Trades Before I Can Trust a Backtest
There's no magic number, but there is a real answer, and it comes from how wide the confidence interval around your win rate still is at the sample size you're looking at.
Why Consolidation Deserves Its Own Rules, Not Just a Breakout Trigger
Most systems treat a tight range as dead time to wait out before the real signal fires. Treated as its own regime with its own structure, consolidation is where the more durable edges actually live.
The Same Candle Means Something Different on a Stock, a Future, and a Currency Pair
A pattern that validates on one asset class doesn't automatically transfer to another, because the plumbing generating the candle is structurally different in each.
Revelation of Pre-Pattern Signatures
Most claimed early-warning signals aren't leading indicators at all, they're the same pattern you already trade, just observed one timeframe down.
The Specific Way Friday Breaks Your Backtest
Friday isn't a slower version of the rest of the week, it's a structurally different liquidity regime that most backtests quietly average away.
Trading the Invisible Structures of Liquidity
Retail forex has no visible order book, so every liquidity level you trade around is an inference from price behavior, not something you can actually see.
Holographic Market Projections: Trading Patterns Before They Fully Form
Acting on a pattern before its candle closes means trading a projection built from partial data, and the mechanism behind that projection is what determines whether it's an edge or a repaint.
Your Best Month Was Probably Your Least Informative One
The month that made you a believer is usually the one with the least statistical weight, and treating it as proof is a quieter version of curve fitting.
Your Bot Is Trading a Candle That Doesn't Actually Exist Yet
The log says NEW BAR DETECTED. Your bot checked the pattern conditions and fired. What it read as a closed candle may not have been closed at all — and the gap between those two things is where a specific, quiet class of bug lives.
The Asian Session Bug Nobody Notices Is in Their Backtest
Not another "Asia is quiet, avoid it" post. The actual mechanics of why this session breaks your indicators, corrupts your session filters, and occasionally tells you something is about to happen.
Margin Calls Don't Care That Your Edge Is Real
A statistically validated strategy can still get liquidated, because margin calls are triggered by account math and trade sequencing, not by whether your edge is genuine.
The Rolling Win Rate Chart That Would Have Warned You Three Weeks Early
A single all-time win rate number is one of the slowest ways to notice a pattern is dying. There's a specific chart that catches it weeks sooner, and almost nobody plots it.
Weekend Gaps Are Training Your Pattern to Predict Something That Isn't There
A Friday candle and a Monday candle sit next to each other in your dataset like nothing happened between them. Your backtester believes that. Your pattern discovery engine believes it even more.
Detecting Patterns That Are Almost Human
The most durable price patterns aren't statistical accidents, they're the fingerprints of human order placement, and they decay as execution shifts away from humans.
Running Five Validated Patterns at Once Is Not Five Times the Edge
Each strategy passed validation independently. Each looks different on paper. None of that means they're actually five separate bets — and the math you're using to size them assumes they are.
Trading Distorted Perspectives of Market Structure
The support, resistance, and structure you see on a chart are artifacts of how ticks got aggregated into bars, not a direct view of the market itself.
Trading Overlapping Cycles and Interference
Session volatility behaves like superimposed waves, and the overlap windows that traders chase are literally the constructive interference between two separate liquidity cycles.
The Pattern Is Winning. You Are Still Losing.
A systematically profitable pattern does not automatically produce a profitable trader. The psychology of running an algo system is different from discretionary trading — and most of it works against you in ways nobody talks about.
Your Pattern Survived Every Test. Then the Spread Killed It.
A pattern can pass backtesting, survive the blind split, hold up across sessions, and still bleed money live — because of something most traders barely think about until it is too late.
What Algorithmic Trading Actually Is (And What Nobody Tells You)
A real introduction to algo trading — not the textbook version. What it actually means to build a system, why most of them fail, and what the ones that work have in common.
Trading Patterns Have an Expiry Date
A pattern that worked for two years can stop working in a month. Markets change regimes, participants adapt, and edges decay. Here's how to know when your pattern's time is up.
If Your Pattern Has a 70% Win Rate, Something Is Probably Wrong
A win rate above 70% in backtesting sounds like the holy grail. In practice it's almost always a sign the pattern learned noise, not edge. Here's how to tell the difference.
Why Your Best Trading Pattern Stops Working After London Close
A pattern that prints money during London hours can bleed you dry in New York. Here's why sessions behave like completely different markets — and what to do about it.