- llm_analyzer.py: change 5m filters from hard requirements to confidence
adjustments (volume, ADX<15, OBV direction now ±0.1 instead of blocking);
1h ADX<20 lowers confidence instead of preventing entry
- slack_notifier.py: when all symbols HOLD, show 1h-bullish symbols with
their HOLD reason instead of generic "no action" message
- main.py: log all 15 HOLD reasons instead of first 3
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- check_errors.py: on errors, call Claude CLI to diagnose and attempt auto-fix,
include fix report in Slack alert
- slack_notifier.py: show "LLM 分析失敗" when LLM fails instead of "All HOLD"
- main.py: track llm_ok flag and pass to Slack reporter
- setup.sh: restore ~/.local/bin in crontab PATH for claude CLI
- llm_analyzer.py: use shutil.which for robust claude binary lookup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace 3-tier LLM SELL thresholds with 5-tier descending confidence
(1-2%→0.7, 2-3%→0.6, 3-5%→0.5, ≥5%→0.4), min profit 1%
- Allow LLM SELL on losing positions (trust LLM signal for cut-loss)
- Fix +-1.90% sign bug: use pnl_pct instead of pnl amount for sign
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Show realized P&L (USDT + %) in Slack for all SELL trades (TP, LLM, stop-loss)
- Detect filled stop-loss orders via stop_orders.json persistence and report as [止損觸發]
- Deduct 1 USDT margin from available balance to prevent exchange insufficient balance errors
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Includes: Bitfinex API integration, technical indicators,
LLM signal generation, risk management, Slack notifications.
Recent fixes:
- SELL orders use position value instead of total balance
- SELL signals always close full position
- Failed orders added to rejected list for Slack reporting
- Position/exposure limits auto-cap to remaining room
- BUY order minimum raised to 10% of portfolio
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>