10-step Price-Action Framework
Pure OHLC-driven, zero LLM hallucination. Every signal, every trigger/target/stop is computed deterministically by Python from T-1 close data.
Last updated: 2026-08-25 · Data: Futu OpenD · T-1 OHLC only
① Phase Classification
5 phases, based on 20-day rolling high/low + 60-day trend:
- Uptrend — close > 20d MA, 20d low rising, structure HH/HL
- Base building — 20d box range, close in mid-section, low not breaking prior low
- Downtrend active — close < 20d MA, lower lows, 50d MA turning down
- Downtrend recovery — bounce from S4, close breaks 20d mid, doesn't break prior high
- Range — fallback when none of the above conditions match (between 0.15–0.85 range position)
② S/R Ladder
4-tier support / resistance levels, rolling pivots:
- S1 / R1 — most recent 20 trading days low / high
- S2 / R2 — days 21–60 (excluding most recent 20, non-overlapping tiers)
- S3 / R3 — days 61–120
- S4 — lowest low before day 121 (crash low)
③ 4 Strategies
- SELL_R1 — open inside the box, high touches R1 → short to mid, stop = R1 × (1 + max(2%, 1.5×ATR))
- BUY_S1 — open inside the box, low touches S1 → long to mid, stop = S1 × (1 − max(2%, 1.5×ATR))
- BREAK_LONG — open > R1 → long breakout, target = R2, stop = R1 × 0.99
- BREAK_SHORT — open < S1 → short breakdown, target = S2, stop = S1 × 1.01
- Guard rails (2026-08-25): ATR ≥ 6% OR 20-day box ≥ 35% → demote to WAIT; R:R < 1.2 → demote to WAIT; target contradicts direction → demote to WAIT.
④ Backtest 4 Windows
Each stock runs 30 / 60 / 90 / 197-day backtest × 4 strategies. Cost model: HK 0.25% / US 0.10% round-trip (actual user size HK$100k with Futu commission-free account: HK = platform fee HK$15/trade + stamp duty 0.1%/side + SFC 0.0027% + FRC 0.00015% + HKEX trading fee 0.00565% + settlement fee 0.0042% = actual 0.258%); US commission 0.0049/share + platform 0.005/share + SEC/TAF ≈ 0.10% round-trip. Same-day target/stop both hit → pessimistic stop first.
Net return (HK$100k): T+1 +0.12% · T+3 +0.56% · T+5 +0.85% · T+10 +2.79%.
Win% display rule: Table shows the "today's recommended strategy's own" historical win rate; recent strongest edge (possibly a different strategy) is only shown on the detail page for reference, never mixed with today's plan.
⑤ Action Plan
Combining phase + position + best strategy → verdict (BUY / SELL / WAIT) + specific price levels:
- Trigger — entry price
- Target — profit target
- Stop — stop-loss price
- Risk / Reward / R:R ratio
⑥ Why Not LLM-Generated Signals
LLMs hallucinate numbers — especially specific prices like trigger / target / stop. We use:
- Python deterministically computes OHLC, S/R, backtest, action plan
- LLM only produces narrative explanation (if-then scenarios, common misjudgments) — no numbers
- All raw OHLC comes from Futu OpenD real-time data, T-1 cutoff
⑦ Reliability Grading
- HIGH — n ≥ 20 AND win% ≥ 60% (2026-08-25 tightened: n=10 has too-wide 95% CI, likely random)
- MED — n ≥ 5 AND win% ≥ 50%
- LOW — others (recommend skip)
- Table Win% always shows "today's plan's same-strategy" own historical win rate (n≥5 only); recent strongest edge (possibly different strategy) is only shown on the detail page's reference area.
⑧ T-1 Hard Rule
- Always use yesterday's close to compute signals
- Check signals 5 minutes before 9:30 open, no live trading
- All backtests use T-1 data alignment: S/R uses prior day's rolling window, today's open for entry — no look-ahead
- Note: universe is "today's top-200 by turnover", which has mild selection bias on past windows (today's active ≠ then active). Monthly swing backtest has separate effective window annotation.
⑨ Risk Management
- Each trade risk 1-2% of account
- Position size 30-40% of portfolio max
- Close all positions by 16:00 HKT / 16:00 ET
- No overnight positions
⑩ Why Multi-Window
- Short-term 30-90d = recent regime performance
- Long-term 197d = broad direction confirmation
- Both windows align → strong signal
- Windows contradict → skip
FAQ
🌿 Swing (T+10) paper-trade side project
Starting 2026-08-28, a 3-month parallel paper-trade test: every BUY signal runs T+1 / T+3 / T+5 short-term trades AND T+10 swing paper-trade simultaneously (T+10 is tracked only, not for live trading). Goal: verify the 6-month backtest showing T+1 / T+3 / T+5 short-term net returns work on forward live data, while tracking T+10 swing paper-trade performance. After 3 months (~11/28), decide how to mix the three horizons — recommend T+3 as primary, T+1 for frequency, T+10 paper-only.
How are Leeks Terminal signals computed?
All computed deterministically by Python from T-1 daily OHLC: first classify into 5 phases, layer 20/60/120/200-day S/R ladder, run 30/60/90/197-day backtests to find strongest edge, output BUY/SELL/WAIT with trigger/target/stop. LLM only handles text explanation, never produces any number.
How reliable is backtest win%?
Win% is historical statistics, not prediction. Three reliability levels: HIGH (n≥20 AND win%≥60), MED (n≥5 AND win%≥50), LOW (recommend skip). Larger sample, more consistent recent regime = higher reference value.
When does data update? Live or closing price?
Always T-1 closing price (hard rule). HK and US each rebuild the entire site after their respective market close; check signals before market open, never use live intraday data for computation.
Is this investment advice?
No. All content is educational with a disclaimer; multi-cycle short-term trading carries high risk (each position can last up to 5 days), past performance does not guarantee future returns.