5-Min BTC Trading Strategy
Edit5-Min BTC Trading Strategy
Fishy trades Polymarket binary options on 5-minute BTC/ETH/SOL/XRP up/down markets.
Flow
btc_realtime.py (RealtimeFeed singleton)
→ Binance websocket: real-time ticks + orderbook imbalance
→ Started by Fishy on_startup, shared singleton
momentum_engine.py (RealtimeSignalGenerator)
→ 6 indicators: tick momentum, orderbook imbalance, aggressor ratio,
RSI, volume spike, ROC
→ Falls back to candle-based if feed not yet connected
→ Output: {coin, direction UP/DOWN, confidence 0.50-0.78, regime}
polymarket_engine.py (FiveMinMarketDiscovery)
→ Gamma API slug: {coin}-updown-5m-{epoch}
→ Discovers markets for next upcoming window
→ Confirms: up_token_id, down_token_id, prices, accepting_orders
bot_fishy.py (five_min_crypto_loop, runs every 60s)
→ Gate: 30-260s remaining in window, one trade per window
→ Risk check: FiveMinRiskEngine (circuit breaker after 4 losses, 30min pause)
→ Pick best signal (confidence >= 0.53), BUY limit order
→ Posts trade to #finance
Risk Parameters
| Parameter | Value |
|---|---|
| Max per trade | $5 |
| Daily loss limit | $15 |
| Max trades/day | 50 |
| Circuit breaker | 4 consecutive losses → 30-min pause |
| Min confidence | 0.53 (raises to 0.55 if WR < 45% after 20 trades) |
Chainlink Data Streams
Polymarket resolves BTC 5-min markets using Chainlink data streams.
- Feed ID: 0x0003da4b5d66b4bc78e7c85dc7c7e29db5dde3db4d3c0c4b2d6f7e1e2a3b4c5 (approx)
- Resolution = price at exact window end (UTC epoch boundary)
- CL-EARLY strategy: bet before the window open using Chainlink price feed signal
CL Strategies
CL-EARLY (enabled)
- Bets on the next 5-min window using Chainlink feed momentum
- Tier 1: conf >= 0.82 → 1.6x bet size
- Tier 2: conf >= 0.88 → 2.4x bet size
- Min move: 0.008% BTC move to trigger
CL-CONFIRMED (enabled)
- Bets after window opens, using confirmed Chainlink move
- Min move: 0.04%
- Min confidence: 0.70
CL-LATE (disabled)
- Late-window entries, higher risk, currently off
Signal Boosters
Confidence boosters are applied proportionally to move size (_boost_scale = min(1.0, abs(move_pct) / 0.08)):
- Volume spike: +0.03 × scale (only if significant volume)
- Order flow: +0.02 × scale (aggressor ratio alignment)
- Cross-asset: +0.03 × scale (BTC/ETH/SOL correlation), -0.03 for divergence
Edge_max expansion is gated on real moves (abs(move_pct) >= 0.08):
- conf >= 0.84 + big move → edge_max expands to 0.78
- conf >= 0.79 + big move → edge_max expands to 0.73