🔴 Live Trading Enabled — S7 Mode B, S10, S14, BOJAN on BYDFi
Files
/opt/rook-shared.env rook-bot.service
Change
Set PAPER_MODE=false in rook-shared.env. Restarted rook-bot service. Bot now reports mode: LIVE.
Live strategies executing real orders on BYDFi: S7 Mode B (MA200 bounce), S10 (SFP 4H/12H/1D), S14 (Turtle Soup), BOJAN (key zones).
Engine config confirmed: live_mode: true, paper: false, all four strategies in live_strategies[].
Why
Week 1 live results: +59.16 net, 67% win rate, 9 trades. System proved itself — time to run all approved strategies with real capital.
Impact
All four strategies now executing real BYDFi orders. 24/7 live.
🛡️ Smart Trading Toggle — /pause & /resume with Verified State Check
Files
/opt/rook-scripts/trading-toggle.sh
Change
New script intercepts /pause and /resume Discord commands. Sends command to bot API, then polls /botstat up to 5× (2s apart) to verify state actually flipped.
Args: pause | resume | status. Returns ✅ Verified or ❌ FAILED with live mode confirmation.
Why
Previous pause/resume had no feedback loop — bot showed conflicting state across health and command endpoints. This resolves ambiguity and ensures every toggle is confirmed before reporting back.
Impact
Zero ambiguity on pause/resume state. Verified every time.
🕯️ Golden Pocket TP — 0.618 Fibonacci replaces structural high/low for S5 + S10
Files
s5-fvg.js scalpbot.js
Change
TP1 now uses 0.618 Fibonacci retrace of the 30-candle prior move (Golden Pocket).
Long: structLow + range × 0.618 | Short: structHigh - range × 0.618
Priority: Volume Profile node → Golden Pocket → nearest swing fallback.
TV alert payloads updated: sfp_type: "low_sfp""bullish", "high_sfp""bearish"
Why
Institutional money exits at the 0.618 level — it's where smart money was positioned before the move. "Nearest pivot" was catching micro-resistances $22 away. Golden Pocket targets $200-400 moves on the same entries.
Also
S11 Range Fade + S12 Quartile Swing specs added. AltFINS confirmed provides SUPPORT, RESISTANCE, ATR, Bollinger Bands per asset — Phase 3 fuel.
Impact
Breakthrough. The missing TP framework. Eureka moment.
🚀 Major Architecture Upgrade — Trade Manager + S1-S13 Exit Logic
Files
trade-manager.js engine.js s1–s9 strategy files data-state.js
Change
New modular architecture: Rook Engine = entry manager, Trade Manager = exit manager.
Every strategy now exports evaluateExit(trade, liveState) — strategy owns its own exit logic.
Trade Manager runs every 15s, calls each strategy's exit function per open trade.
All exits are real-time tick-based — no candle close dependency.
Volume Profile added to data pipeline: POC, VAH, VAL calculated from MMT candle data.
Impact
Foundation for multi-asset scaling. Each strategy fully self-contained.
S5 FVG — 4 Critical Bugs Fixed
File
s5-fvg.js
Bugs Fixed
1. TP direction inverted on shorts — TP was above entry on a short. Fixed: direction guard rejects bad TPs.
2. Stale SL — SL wasn't recalculating per trade. Fixed: 30-candle structural lookback, fresh every signal.
3. Spent FVG re-entry — Bot re-entered the same exhausted FVG zone. Fixed: 4-hour zone tracking.
4. RR floor missing — Trades with RR < 1.0 now rejected.
Impact
Estimated +$130 improvement on today's 4 trades alone. -$44 actual → +$264 with fixes.
S6 — Fixed EMA12/26 Bug, MA9/13 Dual Trigger Exit
File
s6-ema-cross.js
Change
Was using EMA12/26 — never matched the agreed MA9/MA13 strategy. Fixed to simple MA9/MA13.
Also fixed firedfires field name — S6 was never registering as fired in the engine.
Exit logic: dual trigger — MA9 crosses MA13 OR price crosses MA13 (whichever first).
Impact
S6 now live. MA9/13 cross at 08:45 UTC preceded $800 BTC drop — would have fired correctly.
S7 — EMA replaced with Simple MA throughout
File
s7-ma-vwap.js
Change
All EMA calculations replaced with simple MA to match S6 and agreed strategy. Same dual trigger exit as S6.
Impact
Consistent MA calculation across all strategies.
S13 Blood Diamond 👻 — New Strategy Deployed
Files
bot.js s13-blood-diamond.js
Change
Entry: 4H blood diamond + 1H red diamond within 4h = SHORT at 50% position (Leg 1).
Leg 2: MACD H2_DOWN + RSI >65 within 8h window = add remaining 50%.
Bear trap guard: don't add during counter-move candle still open.
Exit: POC → VWAP → VAL stacked targets | 24h time decay.
Data
3 confirmed signals post-March 14: 3/3 hit rate. $1k+ move missed 2026-03-26 during downtime.
Impact
New high-conviction short strategy. Scales to multi-asset in Phase 3.
NOC Status Bar — Live System Health on Docs Page
Files
rook-docs/index.html rook-dashboard/server.js
Change
Live NOC status bar on docs page. 8 components monitored: Rook Engine, Trade Manager, Main Bot, ScalpBot, Signal Router, Screener Bot, MMT WebSocket, Database. Green/yellow/red dots, auto-refresh every 30s. No manual updates.
Impact
One-stop health check. Cloudflare-style status page for the trading system.
Signal Feed — All Alerts Posted to #trade-signals
File
signal-router/router.js
Change
Every incoming TradingView webhook alert now posts to Discord #trade-signals. Format: name, symbol, timeframe, price. No secrets. One line per alert — readable at a glance.
Impact
Manual trade confirmation feed. Also captures causation patterns for future Llama analysis.
Weekend Trading Schedule — Auto Pause/Resume
Files
weekend-pause.sh weekend-resume.sh crontab
Change
Friday 1:00 PM AZ (20:00 UTC) → all bots pause. Active trades finish, no new entries.
Sunday 2:00 PM AZ (21:00 UTC) → all bots resume for Asia open.
Manual override: !pause / !resume in Discord.
Why
Llama analysis confirmed: weekends have higher false signal rate, lower volume, no institutional participants. CVD Divergence, MA crosses, SFP, BB Squeeze all unreliable on weekends.
Impact
Reduces weekend drawdown risk. Frees bandwidth for other projects Sat/Sun.
OpenClaw Crash & Rebuild — v3.24.26
Change
Gateway crashed mid-session (CLI command connected back to gateway causing SIGTERM). 5-hour rebuild: wiped 3 containers, redid Discord bot config, restored from GitHub. Now on OpenClaw v3.24.26 as systemd user service.
Root cause
Running openclaw cron list or any CLI command from inside the container while live. Now a hard rule: never run OpenClaw CLI commands from inside the container.
Also fixed
Signal router had stale env path (/home/node//home/Rook/). Mac mini node pairing restored via SSH tunnel over Tailscale. UFW rule added for loopback port 18789.
Impact
~5h downtime. Missed $1k blood diamond move during outage. All systems restored.
Infrastructure — Shared Env + DevBot Removal
Files
/opt/rook-shared.env rook-bot.service scalpbot.service
Change
All env vars consolidated into /opt/rook-shared.env. Services use EnvironmentFile= instead of scattered inline Environment= lines. DevBot and DevBot2 deleted — were spamming MySQL with unclosed paper trades every 5 min.
Why
MMT_API_KEY was missing from rook-bot service — rook-bot had no OI/CVD data. DevBot log pollution made trade analysis impossible.
Impact
Fixed — rook-bot now has full MMT data. Clean trade log going forward.
Strategy Audit — TF Floor + Short Threshold + Backtest Reset
Files
formula-v1.json bot.js
Change
(1) 5m/10m/15m weights zeroed — MainBot ignores sub-60m, routes to ScalpBot
(2) Short threshold raised to 55 (45 + 10 bonus) — shorts need higher confluence
(3) Short wave minimum: NAMI wave must be >30 for short entries
(4) Performance stats reset — fresh start post-audit
(5) Auto-execute threshold: 65→55→45 (lowered after backtest showed 47.9% WR at 45+)
Why
Backtest showed 4H was the only profitable timeframe (75% WR). 5m had 27% WR and was bleeding. Shorts underperformed without higher bar.
Impact
Pending — fresh start, tracking from 2026-03-23
MMT Market Data Integration — Full Upgrade
Files
mmt.js cvd.js oi.js scalpbot.js
Change
Replaced AltFINS OHLCV + OKX WebSocket OI with MMT Binance Futures API.
10m timeframe now natively supported (AltFINS returned 400 on MINUTES10). 30m confirmed working.
CVD now polls MMT every 15s instead of Binance WebSocket aggTrade stream.
ScalpBot fetchHTFBias() + fetchMarketStructure() now use MMT candles.
10m candle maturity delay: 5min → 2min (actual 10m data, not 15m fallback).
Also
Funding Rate Scoring (+12pts max, tiered). Liquidation Bias Scoring (+8pts max). Both from MMT.
Impact
Positive — richer market data, native 10m/30m candles, funding rate as contrarian signal
HTF Invalidation — Fee Guard Added
File
rook-price-monitor.js
Change
HTF invalidation exit only fires if gross P&L > round-trip fees (~$22 on $35k notional at 0.06% taker × 2 sides)
Why
Trade PAPER-1773548759033: closed at +$9.30 gross / −$12.18 net. HTF rule fired on a $37 move — fees ate the profit.
Impact
Pending — review after 10 htf_invalidation exits
Weekend Multiplier — Removed
File
rook-price-monitor.js
Change
Removed weekend time multiplier. Now: 90min stall alert (notify only), 3hr hard close. Same all days.
Why
30min weekend timer was too aggressive. Correct rule: stalling + HTF invalidation + in profit = exit. Not an arbitrary timer.
Impact
Pending
Thesis Decay v1.0 — Initial Implementation
File
rook-price-monitor.js
Change
4 new post-entry exit reasons: conviction_decay (3hr no progress), htf_invalidation (1H candle against position), profit_protection_exit (was +$50, retraced to entry), stall alert at 90min
Why
PAPER-1773509368379 SHORT: held 5.5 hours, peaked at +$71, bot did nothing — closed −$75. No concept of thesis expiry.
Impact
Pending — review after 10 trades using new exit reasons
ScalpBot CVD Gate — Loosened
File
scalpbot.js
Change
passCount < 2passCount < 1 — was requiring both CVD + OI, now requires at least 1 of 2
Why
CVD was blocking all ScalpBot trades. OI alone sufficient for 5m scalper. CVD lags at reversal extremes.
Impact
Positive — ScalpBot began trading after this change
MySQL Trade Logging + Dashboard Price Fix
Files
db-logger.js rook-dashboard/server.js
Change
All trades write to Cmelle MySQL Rook-Database.trade_logs in real time. Dashboard price source changed OKX → Kraken XBTUSD to match bot's internal P&L calculation.
Impact
Positive — permanent tax record, dashboard P&L now accurate