All notifications go through log_notify() in trading/bot.py. To silence a specific message, replace log_notify() with log_only(). To disable Telegram entirely, leave TELEGRAM_TOKEN blank in .env.
Telegram notifications are live-mode only. In python trading.py --dry, message sending is disabled and the Telegram command bot thread is not started.
Always fires
| When | Message |
|---|
| Bot starts | NOVOSKY started · Balance $X · API OK local 45ms broker 32ms (excellent) · Started at HH:MM local time · PID N |
| Every hour (heartbeat) | NOVOSKY · Live · Balance: $X · Today: $P/L · N trades · WR XX% |
| Daily at 11pm local | Full daily report: P/L, trades, WR, best/worst trade |
| Sunday at 11pm local | Weekly report: week P/L, WR, trade breakdown |
Per trade
| When | Message |
|---|
| Order opened | [BTCUSD BUY] #12345 opened · Entry: 84500 · 0.01 lots · 2% risk · Balance: $512 |
| TP hit | BTCUSD BUY TP HIT · P/L: +$12.30 · Entry: 84500 → Exit: 84800 · Balance: $512 |
| SL hit | BTCUSD BUY SL HIT · P/L: -$8.10 · Entry: 84500 → Exit: 84432 · Balance: $491 |
| Order error | [BTCUSD ERROR] BUY order failed, retcode = XXXX |
Position management (Phase 8)
| When | Message |
|---|
| ML EXIT | [ML MGMT] BUY #12345 closed early — EXIT (72%) · R:0.8 |
| Deal not found | [BTCUSD WARN] Position #12345 (BUY) closed but no exit deal found after 6 retries |
| Trailing SL | [BTCUSD TRAILING SL] BUY #12345: SL updated to 84300 |
| Partial close | [BTCUSD PARTIAL] Closed 50% of BUY · R:1.0 · P/L: +$6.15 |
| Breakeven | [BTCUSD BREAKEVEN] SL moved to entry 84500 |
When a deal is not found, the bot estimates P/L from the current tick price and still counts win/loss in the WR stats.
Risk and safety events
| When | Message |
|---|
| Circuit breaker triggered | CIRCUIT BREAKER TRIGGERED · N consecutive losses. Stopped for today. |
| Circuit breaker reset | Circuit breaker reset — new local day. Trading resumed. |
| Max daily loss | Max daily loss $X reached. Trading paused 1h. |
| Crash mode | CRASH MODE ON · price moved X% in Ymin. Halting Zmin. |
| Bot crashed | NOVOSKY CRASHED: <exception> (PID: XXXXX) |
Test a notification
python scripts/notify.py "Test message from NOVOSKY"
This sends a plain text message to your configured Telegram chat. Use this to verify your TELEGRAM_TOKEN and TELEGRAM_CHAT_ID are correct before going live.