A 298-Page Thesis Killed Five of Our Ideas and Saved Two

A 298-Page Thesis Killed Five of Our Ideas and Saved Two

We dragged a PhD on constrained stochastic processes through a crypto scalper's keep/kill program. Most of it died. What survived changed how we trade.

researchbgcspcascade-fadepath-dependencebacktestcrypto

The Problem

Our cascade-fade scalper worked. Not elegantly — it worked the way a hammer works on a screw. It detected 5-bar cascades on abnormal volume, faded them, held for a fixed duration, and exited. The win rate was decent. The profit factor was real. But the exits were dumb and the filtering was nonexistent.

Every trade got the same hold time. Every cascade got faded, regardless of how the move unfolded. A slow grind into a cascade and a violent spike into the same endpoint were treated identically. We knew this was leaving money on the table — or worse, picking up money that wasn’t ours to take.

The strategy needed two things:

  1. Smarter hold selection — not every fade deserves the same exit window.
  2. Quality filtering — not every cascade is worth fading.

We went looking for a mathematical framework that could formalize the intuition that path shape matters. We found one in the last place you’d expect.

Discovering Taranto

Aldo Taranto’s 2022 PhD thesis at the University of Southern Queensland runs 298 pages. Its title — “Bi-Directional Grid Constrained Stochastic Processes and Their Applications in Mathematical Finance” — sounds like a grid trading manual. It is not.

BGCSP is a class of constrained Itô diffusions. The core idea: take a standard stochastic process (Brownian motion, geometric Brownian motion, Ornstein-Uhlenbeck), then impose symmetric constraint terms that create soft hidden barriers. These aren’t hard walls — they’re reversion pressure. As the process approaches a barrier, a forcing term pushes it back toward equilibrium. The strength of this push depends on proximity to the constraint.

The thesis proves several things rigorously:

  • Path-dependent behavior emerges from the constraint geometry
  • The same terminal value reached via different paths produces different dynamics under the constraint
  • First-passage times through these soft barriers have analytical properties distinct from unconstrained processes

Reading it as a grid trading playbook would be a category error. Reading it as a mathematical lens for understanding constrained mean-reversion turned out to be productive.

What We Borrowed

We borrowed the lens, not the literal grid.

Three concepts from Taranto’s framework mapped onto our cascade-fade problem:

1. Soft Hidden Barriers → Path Quality Assessment

Taranto’s constraint term creates zones where the process experiences increasing reversion pressure. We translated this into: not all cascade moves are created equal. A cascade that dumps its energy in the first half of the move (front-loaded) is structurally different from one that accelerates into the endpoint. The constraint framework gave us the language to formalize this — front_half_move_share as a proxy for path quality.

2. Path Dependence → Dynamic Hold Selection

Same endpoint, different path, different fade quality. A cascade that creates a large jump but a small entry gap behaves differently in reversion than one with a small jump and a large gap. The path to the entry point predicts the reversion dynamics. We built a bucket table: given the signal’s jump magnitude and entry-gap characteristics, select a 4-minute, 6-minute, or 8-minute hold.

3. What We Did NOT Borrow

We did not implement a literal grid. We did not use BGCSP’s first-passage time formulas for exits. We did not build a hidden-barrier overlay on the price process. We did not attempt regime detection from the constraint parameters.

We tried all of those. They died. More on that shortly.

The Research Staircase

We ran a systematic keep/kill program. Every idea from the thesis got translated into a backtestable hypothesis, tested in-sample, validated out-of-sample, and measured against the simplest viable alternative. Here’s the full staircase.

What Lived

Dynamic Jump-Gap Bucket Hold-Selection

The idea: categorize each cascade event by its jump magnitude (in basis points) and entry gap (in basis points), then select hold duration from a pre-computed bucket table instead of using a fixed hold.

MetricFixed Hold (Baseline)Dynamic Hold
Trades1,4711,128
Win Rate64.04%68.44%
Profit Factor2.423.20

The trade count dropped by ~23% because some bucket combinations mapped to “skip.” The surviving trades were meaningfully better. This is a filter and a routing mechanism — it kills weak setups and optimizes hold for strong ones simultaneously.

Front-Half Path-Shape Quality Veto

The idea: measure what fraction of the total cascade move occurred in the first half of the cascade window. If too much energy was front-loaded (worst quartile), skip the trade entirely.

The intuition from BGCSP: a process that hits the constraint early and spends most of its time under reversion pressure behaves differently from one that builds momentum throughout. Front-loaded cascades have already “spent” their mean-reversion fuel.

MetricWithout VetoWith Veto
Trades1,471~1,128
Win Rate64.04%68.44%
Profit Factor2.423.20

The veto removed roughly the worst quartile of trades by path quality. The survivors were substantially better.

What Died

Hidden-Barrier Overlay ☠️ (Survived OOS, killed by Occam)

This was the most painful kill. We implemented Taranto’s constraint term as a scoring layer on top of each cascade event — computing a “barrier proximity score” and using it for routing. It survived out-of-sample testing. It produced a research champion:

  • Research champion (a4_path_veto_global): 1,127 trades, 68.50% WR, PF 3.21
  • Operational champion (front_half_move_share_low_4q_thr2): 1,128 trades, 68.44% WR, PF 3.20

Difference: +0.22% of net P&L. Over 1,127 trades.

The hidden-barrier overlay added meaningful complexity — additional parameters, a new scoring pipeline, sensitivity to barrier-width estimation. For $83 of edge over a simpler system. We killed it. Not because it didn’t work, but because it wasn’t worth working.

First-Passage Exits ☠️

Taranto’s first-passage time distributions through soft barriers looked promising for adaptive exits. We computed expected first-passage times for each trade and used them instead of fixed holds. Dead. The estimates were too noisy on 1-minute bars to improve over the bucket table. The analytical elegance didn’t survive discretization.

Regime Gates ☠️

We attempted to detect “constrained” vs “unconstrained” regimes using rolling estimates of the BGCSP constraint parameter. The idea: only trade when the market is in a constrained regime (mean-reverting). The gate collapsed to always-on — every period looked sufficiently constrained. A filter that never filters is not a filter.

Hidden-Barrier Score Engineering ☠️

Various attempts to engineer features from the barrier proximity score: distance-to-barrier, barrier-strength ratio, constraint asymmetry. None added predictive value beyond what jump_bps and entry_gap_bps already captured. The simple features dominated.

Richer Routing ☠️

Instead of a 3-option bucket table (4/6/8 min), we tried continuous hold prediction from a richer feature set including barrier scores, regime estimates, and path-shape metrics. Overfit. The discrete bucket table was more robust.

The Scorecard

  • Ideas tested: 7
  • Ideas that survived: 2
  • Ideas that survived OOS but were killed by Occam: 1
  • Ideas that were dead on arrival: 4
  • Survival rate: 28.6%

Beautiful math. Brutal selection.

The Survivor Stack

The operational champion is simple enough to explain in one paragraph.

The system detects 5-bar cascades on abnormal volume. When a cascade fires, it measures three things: jump_bps (how far price jumped), entry_gap_bps (how far the entry is from the cascade’s peak), and front_half_move_share (what fraction of the move happened in the first half). If the front_half_move_share is in the worst quartile — the cascade was too front-loaded — the trade is vetoed. Otherwise, the jump_bps and entry_gap_bps are looked up in a pre-computed bucket table that returns a hold duration of 4, 6, or 8 minutes. The trade is entered, held for exactly that duration, and exited.

That’s it. Two thesis-inspired ideas, three measured features, one lookup table, one veto threshold.

1,128 trades. 68.44% win rate. Profit factor 3.20.

Live Deployment

The system trades crypto perpetuals on 1-minute bars.

The pipeline:

  1. Ingest 1-min OHLCV via websocket
  2. Detect 5-bar cascades where the move exceeds a volume-adjusted threshold
  3. Compute jump_bps, entry_gap_bps, front_half_move_share
  4. Apply path-shape veto (skip worst quartile of front_half_move_share)
  5. Look up hold duration from jump-gap bucket table
  6. Enter fade position at market
  7. Hold for selected duration, exit at market

No stop-loss — the short hold duration bounds the risk. No take-profit — same logic. Pure time-based exits selected by signal characteristics.

What BGCSP Did NOT Solve

The strategy got smarter. The fee problem did not.

BGCSP gave us a better lens for filtering and routing. It did not change the fee structure, and it did not solve the fundamental problem that edges thin enough to be real are also thin enough for fees to matter at small scale.

On any venue with per-trade fees, a high-frequency fade strategy lives or dies by the margin between expected profit per trade and round-trip cost. Smarter filtering helps — fewer trades means fewer fees paid — but the per-trade burden remains. The backtest numbers assume execution at scale. Real accounts pay real fees that compress those margins.

This is not a BGCSP problem. It’s an economics problem. But intellectual honesty requires stating it: we improved the brain, not the economics.

Conclusion

We read a 298-page PhD thesis on constrained stochastic processes. We did not find a grid trading cheat code. We did not prove our strategy with differential equations. We did not solve our biggest practical problem.

What we did: borrowed a mathematical framework’s intuitions about path dependence and constraint geometry, translated them into measurable features, tested seven hypotheses, killed five, and promoted two into production. The survivors improved win rate from 64% to 68%, profit factor from 2.42 to 3.20, and added a quality veto that removes the worst trades before they happen.

The graveyard is bigger than the trophy case. That’s how it should be.

Same endpoint, different path, different fade quality. That’s the one idea worth keeping. Everything else was beautiful math that didn’t survive empirical combat.


Research artifacts — including full backtest results, the keep/kill audit trail, and replay videos of kept vs. skipped events — are available in the BGCSP research summary.

Taranto, A. (2022). Bi-Directional Grid Constrained Stochastic Processes and Their Applications in Mathematical Finance. PhD thesis, University of Southern Queensland.