Files
momentum-system/deploy/docker/overrides.live.seed.env
T
momentum devandClaude Opus 5 0910e29cc5 chore: track the live overrides seed
docs/LIVE-CUTOVER.md already points at this file, so the cutover procedure
referenced something that existed only on one machine. It carries no
secrets -- keys stay in .env (gitignored) and the LAN address it names is
already in .env.example, the compose YAMLs and the systemd unit.

Tracking it also pins the two settings this branch corrects, with the
reasoning inline: the exit retune, and the Ollama endpoint that had drifted
to a port with nothing listening. Untracked, a rebuild would have quietly
restored both faults.

Note the precedence: compose env < overrides.env < config_overrides (DB).
The database wins, so editing this file alone changes nothing on a running
stack -- it is the bootstrap seed and the record of intent, not the live
switch.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A2LepdJfPCfK5Q8uznjFBM
2026-09-13 13:23:39 -05:00

98 lines
3.8 KiB
Bash

# Seed for /app/data/overrides.env on the LIVE stack — the admin panel
# (port 8867.. n/a on live; edit via file or add admin service) manages this.
# Every service loads it at boot; overrides BEAT compose env.
ALPACA_DATA_FEED=sip
DISCOVER_INTERVAL_SECONDS=120
DISCOVER_THREAD_ENABLED=1
LIVE_BARS_INTERVAL_SECONDS=5
LIVE_BARS_REFRESH_MINUTES=20
NEWS_CATALYST_SCORE_ENABLED=1
NEWS_DILUTION_VETO_ENABLED=1
NEWS_ENRICH_BATCH_LIMIT=50
NEWS_ENRICH_ENABLED=1
NEWS_ENRICH_INTERVAL_SECONDS=120
NEWS_ENRICH_LOOKBACK_HOURS=12
NEWS_FEEDS=prnewswire=https://www.prnewswire.com/rss/news-releases-list.rss,businesswire=https://feed.businesswire.com/rss/home/?rss=G1QFDERJXkJeGVtRWQ==,globenewswire=https://www.globenewswire.com/RssFeed/orgclass/1/feedTitle/GlobeNewswire%20-%20News%20about%20Public%20Companies
NEWS_LOOKBACK_HOURS=8
NEWS_RANK_BOOST=2.0
# Ollama lives on 11434 (the standard port). The stack pointed at 30068/4000 with
# a model that was never pulled, so catalyst enrichment produced nothing from
# 2026-08-03 to 2026-09-13 — silently, because enrich_recent_news reports failure
# in its return value rather than raising. Smoke-tested 2026-09-13: tools:latest
# parses 8/8 headlines in ~2.8s each and classifies offering_dilution / fda_approval
# correctly. Verify the model is pulled before changing either line.
OLLAMA_ENABLED=true
OLLAMA_HOST=http://192.168.1.5:11434
OLLAMA_MODEL=tools:latest
OLLAMA_TEMPERATURE=0.1
OLLAMA_TIMEOUT_SECONDS=60
TRADING_AUTO_APPROVE=1
TRADING_BACKOUT_COOLDOWN_SECONDS=180
TRADING_BLOCK_REENTRY_AFTER_EXIT=1
TRADING_ENTRY_CONFIRM_BY_MINUTE=0
TRADING_ENTRY_FILL_MODEL=marketable
TRADING_ENTRY_INVALIDATE_PCT=0.015
TRADING_ENTRY_ORDER_TYPE=limit
TRADING_ENTRY_TIMEOUT_BARS=2
TRADING_EOD_FLATTEN_ENABLED=1
TRADING_EOD_FLATTEN_TIME=15:55
TRADING_EXECUTION_ENABLED=1
# EXIT MANAGEMENT — retuned 2026-09-13. The previous config stacked FOUR
# independent ratchets (BE@+5% from the env default, step-trail every 0.25R,
# prior-low trail, and profit-lock tiers). Together they capped every winner at
# ~1R: over 62 live + 172 paper trades the bot kept only 9.3% of the move on
# trades that ran >=20%, and held winners a median 10 min vs 19 min for losers.
# Replaced with a single percentage giveback that starts only after +1R. The
# 8/12/15/20% neighbourhood all beat the old config on BOTH stacks in BOTH
# train and test splits (mean R 0.20-0.25 vs 0.125), so 12% is a plateau pick,
# not a fitted one. Re-sweep with sweep_exits.py before changing.
TRADING_EXIT_BREAKEVEN_R=1.0
TRADING_EXIT_BREAKEVEN_PCT=0.0
TRADING_EXIT_MANAGE_INTERVAL_SECONDS=4
TRADING_EXIT_PROFIT_TIERS=
TRADING_EXIT_THREAD_ENABLED=1
TRADING_EXIT_THREAD_INTERVAL_SECONDS=1.0
TRADING_EXIT_TRAIL_AFTER_R=1.0
TRADING_EXIT_TRAIL_MODE=pct
TRADING_EXIT_TRAIL_PCT=0.12
TRADING_EXIT_TRAIL_R_STEP=0.0
TRADING_LIQUIDITY_MAX_VOLUME_PCT=0.025
TRADING_MAX_BACKOUTS_PER_SYMBOL=3
TRADING_MAX_CONCURRENT_POSITIONS=10
TRADING_MAX_DAILY_LOSS_PCT=0.05
TRADING_MAX_FRESH_ENTRIES_PER_DAY=10
TRADING_MAX_GROSS_NOTIONAL_PCT=0.60
TRADING_MAX_ORDERS_PER_TICK=1
TRADING_MAX_POSITION_PCT=0.16
TRADING_MAX_RISK_DOLLARS=50000
TRADING_MIN_DAY_VOLUME=300000
TRADING_MIN_ENTRY_GAP_PCT=0.10
TRADING_MIN_QUALITY_SCORE=0.60
TRADING_PRICE_MAX=20.0
TRADING_PRICE_MIN=2.0
TRADING_REENTRY_MIN_LOSS_PCT=0.01
TRADING_REGIME_GATE_ENABLED=0
TRADING_REGIME_GATE_P_MIN=0.5
TRADING_REQUIRE_ABOVE_VWAP=1
TRADING_REWARD_MULTIPLE=10.0
TRADING_RISK_PER_TRADE_PCT=0.05
TRADING_SESSION_ONLY=1
TRADING_TRIGGER_SLIP_PCT=0.004
TRADING_UNIFIED_ENTRY=1
TRIGGER_ARM_INTERVAL_SECONDS=8
TRIGGER_ENABLED=1
TRIGGER_GAP_MAX=35
TRIGGER_GAP_MIN=10.0
TRIGGER_GAP_SQUEEZE_MIN=150
TRIGGER_GAP_SQUEEZE_RVOL=5.0
TRIGGER_INTERVAL_SECONDS=2
TRIGGER_MAX_ARMED=10
TRIGGER_MIN_DOLLAR_VOL=8000
TRIGGER_PRICE_MAX_AGE=12
TRIGGER_RVOL_MIN=2.0
WATCHER_ENABLED=1
WATCHER_INTERVAL_SECONDS=8
WATCHER_PRICE_MAX=20
WATCHER_PRICE_MIN=2