Skip to main content

The Three-Step Execution Process for Quantitative Trading

A high-level overview of how stops, targets, and sizes are determined based on research — not emotion.

Trading systems built from research behave differently from discretionary setups.

When a strategy has:

  • clearly defined entry conditions
  • a measurable statistical edge
  • a known persistence window
  • repeatable drawdown behavior
  • predictable continuation probabilities

…then risk management cannot be an afterthought.

The stop, target, and position size must come from the behavior of the strategy itself, not from arbitrary multipliers or heuristics.

This overview explains the three-step execution process used throughout this framework. Each step has a separate deep-dive document with examples, tables, and detailed methods.


**Step 1 — Determine the Stop Distance

(get_stop_distance)** Document: “Strategy-Specific Stop Modeling”

Before you even consider take-profits or position size, you must determine:

  • how much adverse movement is normal for the strategy
  • how long the edge persists
  • how the signal decays
  • how much volatility the signal experiences within its effective window

This requires research:

  • maximum drawdown distribution
  • signal-persistence distribution
  • expected minimum hold horizon
  • regime-based volatility behavior

The stop distance is not ATR, or a multiple of ATR, or a fixed %. It is:

The minimum USD distance required for the strategy to survive its own normal behavior until the edge decays.

This produces stops that are aligned with the signal’s statistical structure.

📄 See: “Strategy-Specific Stop Modeling”


**Step 2 — Determine the Take-Profit Structure

(calc_take_profit_points)** Document: “Strategy-Specific Take Profit Modeling”

Once the stop is known, you can design take-profit targets using:

  • expected minimum hold time
  • time until edge decay
  • likelihood of continuation vs reversal
  • convexity (asymmetric upside)
  • return distribution during the edge window

This creates TPs that:

  • match the timing of your edge
  • preserve convex payoff structure
  • avoid overstaying the signal
  • maximize statistical outperformance

Most importantly:

Your take profits must be reachable before the statistical edge decays.

Otherwise you’re fighting the math.

📄 See: “Strategy-Specific Take Profit Modeling”


**Step 3 — Determine Position Size

(calc_position_size)** Document: “USD-Based Position Sizing & MLPT Integration”

Only after you have:

  • the stop (USD), and
  • the take-profit structure, and
  • the expected minimum hold horizon

…do you calculate position size.

Given:

MLPT_usd (max loss per trade)
stop_distance_usd

You compute:

position_size = MLPT_usd / stop_distance_usd

This ensures:

  • consistent USD risk
  • volatility-aware exposure
  • alignment with Drift’s Health
  • sizing that doesn’t distort the strategy
  • stable allocation regardless of SOL price

Position sizing is always last, never first.

📄 See: “Position Sizing & MLPT (USD) Modeling”


Why This 3-Step Model Is Superior

1. It preserves asymmetric upside (convexity)

Your payoff structure becomes:

  • limited downside
  • expanded upside
  • statistically aligned exits
  • increasing R-multiples
  • predictable long-term expectancy

2. It preserves your statistical edge

You only exit (or stop out) when the edge is gone — or when the signal’s normal volatility envelope is violated.

3. It removes unit mismatches

Everything is:

  • MLPT in USD
  • stop in USD
  • strategy behavior in USD
  • take-profits in USD
  • position sizing is SOL as the last step

4. It mirrors how real quant funds operate

This is the actual production pipeline used in:

  • algorithmic trading
  • volatility targeting
  • convex payoff design
  • high-confidence signal exploitation

Master Diagram

┌─────────────────┐
│ Strategy Entry │
└─────────────────┘


┌──────────────────────────────┐
│ 1. get_stop_distance() │
│ (based on research: DD, │
│ persistence, hold horizon) │
└──────────────────────────────┘


┌────────────────────────────────────────┐
│ 2. calc_take_profit_points() │
│ (based on convexity, time-to-edge-decay│
│ and expected min hold horizon) │
└────────────────────────────────────────┘


┌───────────────────┐
│ 3. position_size() │
│ MLPT_usd / stop │
└───────────────────┘


┌─────────────────┐
│ Execution │
└─────────────────┘

Conclusion

This approach does three critical things:

  1. The stop protects the edge.
  2. The take-profit harvests the edge.
  3. The position size respects your risk.

Most traders get all three backwards. You won’t.