The EYE

How it works
connecting…
?
The architecture

An adaptive trading intelligence for BTC.

19 strategies vote. The engine fuses them every 5 minutes. 10 paper plans test parallel hypotheses on Polymarket. An adaptive layer measures outcomes, learns which signals work, and re-weights everything on a tight feedback loop.

19 strategies
10 parallel plans
6 adaptive layers
13 phases shipped
5m decision cadence

The flow

Decisions flow downward; learning flows upward. Every 5 minutes a new decision is born; every 15 minutes the adaptive layer rewrites the rules.

INPUTS ▸ TradingView alerts (1m–1d) ▸ Binance klines + micro ▸ Crypto news RSS (3) EVERY 1m / 5m / 30m ENGINE · btc5mDecisionTick ▸ 19 strategies vote ▸ IC-driven flip + hysteresis ▸ 1h trend dampener → btc5m_decisions/{id} 10 PLANS · Polymarket paper A B C D E F G H I J · gates · sizing ADAPTIVE LAYER · adaptiveMetricsCron · every 15m Reads outcomes · re-derives parameters · feeds back into engine + plans IC Scores Pearson(signal, movePct) per-horizon · rolling-50 Signal Flip IC ≤ −0.25 → invert sign sticky hysteresis Calibration conf × bucket multiplier 10 buckets · 0.05–2.0 TF Weights per-TF mult 0.10–3.00 auto-suggested Strategy Weights sigmoid(k·exp) EWMA blend 0.7·old + 0.3·new Drawdown Breaker cumPnL ≤ −X% → pause 24h auto-resume WRITES ▸ adaptive_weights/current { weights, icScores, tfWeightSuggestions } ▸ adaptive_calibration/current { buckets[10] } ▸ adaptive_metrics/current { byStrategy, bySignalTf, byPlan, ... } FEEDBACK READS OUTCOMES

Three streams of truth

Different cadences. Different noise profiles. Different feedback purposes.

12/hr

btc5m_decisions

The engine's 5-min directional prediction. Resolved against actual BTC price moves at 5m, 30m, and 1h horizons.

IC scores Signal flip Hysteresis
1–5/hr

polymarket_positions

Paper trades on Polymarket binary markets. Resolves with fees + slippage included — the closest measure of real edge.

Strategy weights Calibration TF suggestions Drawdown breaker
5–10/hr

prediction_trades

Parallel paper book on Binance with TP/SL — pure directional outcome on continuous price.

Display only

Nineteen strategies, three groups

Each strategy returns a directional vote. The engine fuses them by category weight.

Confluence 50% engine weight 16 strategies · IC + flip eligible
scalp_5m5m5m breakout / momentum
swing_15m30m15m direction with multi-bar confirmation
swing_1h1h1h trend with breakout confirmation
position_1d1hDaily trend (capped at 1h horizon)
triple_screen30mElder-style 3-TF aligned
rsi_reversal5m1m RSI extreme mean-revert
macd_5m_3_15_35mFast MACD histogram zero-cross
multi_tf_align30mVote across all TFs; ≥60% same wins
rsi_band_5m30m5m5m RSI extreme + 30m RSI confirms
trend_cont30m3-TF aligned trend continuation
vwap_dev_5m5mDistance from VWAP → mean-revert
cvd_div_5m5mCVD vs price divergence (last 10 bars)
bb_squeeze_5m5mBollinger band-width squeeze breakout
stoch_rsi_5m5mStoch-of-RSI cross signal
vol_burst_5m5mVolume z-score spike + directional candle
news_sentiment30mClaude Haiku reads BTC RSS, returns score
Microstructure 30% engine weight 3 strategies · order-flow signals
spread_breakoutCrunched spread + book imbalance + price move
momentum_3of33+ consecutive 1m bars same direction
funding_squeezeCrowded funding + expanding OI → contrarian fade
Features 20% engine weight 4 features · continuous values
book_imbalanceBid vs ask depth at top-of-book
momentum_streakConsecutive same-direction 1m closes (tanh)
funding_contraFunding > 0 → bias DOWN (contrarian fade)
vwap_revertDistance from 1h VWAP → mean-revert pull

Six adaptive layers

The engine doesn't stay still. Six self-tuning mechanisms continuously recalibrate from rolling outcomes.

01

Information Coefficient

Pearson correlation between each strategy's signal and the realised price move at its natural horizon.

IC = Pearson(signal, movePcthorizon)
≥+0.20 ×1.5 boost
0.05–0.20 ×1.0 keep
|IC|<0.05 ×0.5 dampen
≤−0.10 ×0.5 dampen
02

Signal flip

If a strategy's IC goes deeply negative — instead of dampening, the engine flips its sign. An anti-predictor becomes a predictor.

Strategy says
Engine takes
03

Flip hysteresis

Asymmetric Schmitt-trigger thresholds prevent flip-flop on regime noise. Sticky state persists across ticks.

FLIPPED
stay flipped
released
−0.25 0 +0.05
04

Confidence calibration

Reality-check on engine confidence. 10 buckets compare predicted vs. actual win rate; multiplier scales conf at gate time.

multiplier = clamp(0.05, 2.0, actualWR / predictedWR)
05

Per-TF weights

Each plan can de-rate or boost signals by their TV alert TF (1m/5m/15m/30m/1h/1d). Auto-suggested by Bayesian shrinkage on rolling-50 PM win rate per TF.

shrunkWR = (wins+5)/(trades+10)
weight = clamp(0.30, 2.00, 1 + 4(shrunkWR−0.50))
06

Drawdown breaker

Per-plan auto-pause when rolling cumulative PnL drops below threshold. 24-hour cool-off then auto-resume.

running
⏸ paused 24h
resumed

Ten plans, ten hypotheses

Each plan is a controlled experiment. Same signal stream, different gates and exits.

ABaseline + FV filtersTest pm-fair-value gates: MIN 5%, MAX 30%, spread 5%
BTP+30% ProvenLock gains at +30% — confirmed MVP
CAuto · OhanismAuto-decision + ohanism preset (momentum + SL + force-exit)
DAuto + TP comboAuto + TP+30% — does the stack compound?
ETP+30% / SL−20%Does SL save the 25% TP-misses?
FAuto baselineAuto + baseline (no ohanism) — isolates Auto benefit
GTP+50% · Risk ParityLooser TP + constant-risk sizing
HEdge≥6% · Risk ParityPremium edge with RP sizing — A/B vs Plan I
IEdge≥6% · KellyPremium edge with Kelly — A/B vs Plan H
JEdge≥10% · SelectiveMost selective entry — fewest trades, highest quality
💰

Sizing methods

Kelly (default) — aggressive when edge × confidence are high. Risk Parity (opt-in) — constant-dollar risk; size ∝ 1/atrPct. Calm market = larger size; choppy = smaller.

Plan lifecycle

From bootstrap warm-up to circuit-breaker pause and back.

NEW0 trades
BOOTSTRAPstrategy gates bypassed · 0/20 → 20/20
NORMALfull gates · adaptive learning live
⏸ PAUSEDdrawdown breaker tripped · 24h cool-off
↑ auto-resume

Decision lifecycle · multi-horizon resolution

Each btc5m_decisions doc keeps accumulating truth. By 1h, we have 3 measurement points — IC reads from whichever horizon matches the strategy.

t=0 boundary t = +5m t = +30m t = +1h DECISION CREATED 19 strategies vote direction · score · conf status: pending 5m HORIZON movePct_5m → status: resolved 30m HORIZON movePct_30m populated 1h HORIZON movePct_1h populated scalp_5m, cvd_div_5m, macd_5m_3_15_3 ... multi_tf_align, swing_15m, news_sentiment ... swing_1h, position_1d

"Why no trade?" — the gate sequence

Every signal passes through this funnel per plan. Each gate logs its reason in polymarket_decisions.

1auto_mode_skipplan in Auto mode, ignores TV alert
2no_interval / no_verdictno PM market mapped or no non-flat strategy verdict
3bootstrap_passstrategy gates bypassed (warmup mode)
4low_confidenceconf × TF_weight < MIN_CONFIDENCE
5deferred_past_halfwaymarket past 50% — re-checked at next window
6no_edge / fv_gap / spreadedge, fair-value, or spread filter failed
position_openedall gates passed · doc created in polymarket_positions

How we got here

13 phases over a single session. Every layer earned its place.

  1. P0

    Adaptive metrics

    Rolling-50 expectancy + sigmoid weights + EWMA blend

  2. P1

    News sentiment

    RSS → Claude Haiku 4.5 → BTC sentiment score / 30 min

  3. P2

    IC backtest

    Pearson r per strategy, weight multiplier from IC tier

  4. P2.5

    Calibration apply

    predictionEngine scales conf by bucket multiplier

  5. P3

    Risk Parity sizing

    Constant-dollar risk · size ∝ 1/atrPct

  6. P4

    Signal flip

    Anti-predictor → predictor when IC ≤ −0.25

  7. P5a

    Flip hysteresis

    Sticky state, asymmetric thresholds

  8. P5b

    Drawdown breaker

    Per-plan auto-pause + 24h cool-off

  9. P5c

    IC distribution monitor

    Weekly p10/p25/p50/p75/p90 observability

  10. P6

    Per-plan engine flags

    useEngineFlip / useIcWeights / applyCalibration

  11. P6.1

    Per-TF weights

    1m–1d × 0.10–3.00 multiplier per plan

  12. P6.1.1

    TF auto-suggest

    Bayesian shrinkage on rolling-50 PM WR per TF

  13. P7

    Multi-horizon resolution

    5m + 30m + 1h — IC measures each strategy on its natural horizon

Glossary

Quick reference for the terms that matter.

IC

Pearson correlation between strategy signal magnitude and realised price move. 0.20 is excellent for noisy 5-min crypto.

Calibration multiplier

Per-confidence-bucket scaling: actual_WR / predicted_WR. Engine claims 60%, right 9% → multiplier ≈ 0.15.

Bootstrap mode

While plan trades < BOOTSTRAP_TRADES, strategy gates bypassed so plan can accumulate sample.

Edge

myProb − (price + FEE). Positive = expected-value trade.

myProb

Plan's blended probability estimate. Signal mode: 0.5×wr + 0.5×conf.

Hysteresis

Asymmetric entry/exit thresholds that prevent flip-flop on noise.

Risk Parity

size = TARGET / atrPct. Constant-dollar risk regardless of underlying volatility.

Bayesian shrinkage

Adding prior pseudo-observations to small samples so a 1-trade 100% WR doesn't dominate.

EWMA

new = 0.7×old + 0.3×computed. Smooths weights so they don't flap every cron tick.