Commit Graph

3 Commits

Author SHA1 Message Date
mindesbunister
697a377cb2 feat: Revenge system timing improvements - candle close confirmation
PROBLEM IDENTIFIED (Nov 26, 2025):
- User's chart showed massive move $136 → $144.50 (+$530 potential)
- Revenge would have entered immediately at $136.32 (original entry)
- But price bounced to $137.50 FIRST (retest)
- Would have stopped out AGAIN at $137.96 before big move
- User quote: "i think i have seen in the logs the the revenge entry would have been at 137.5, which would have stopped us out again"

ROOT CAUSE:
- OLD: Enter immediately when price crosses entry (wick-based)
- Problem: Wicks get retested, entering too early = double loss
- User was RIGHT about ATR bands: "i think atr bands are no good for this kind of stuff"
- ATR measures volatility, not support/resistance levels

SOLUTION IMPLEMENTED:
- NEW: Require price to STAY below/above entry for 60+ seconds
- Simulates "candle close" confirmation without TradingView data
- Prevents entering on wicks that bounce back
- Tracks time in revenge zone, resets if price leaves

TECHNICAL DETAILS:
1. Track firstCrossTime when price enters revenge zone
2. Update highest/lowest price while in zone
3. Require 60+ seconds sustained move before entry
4. Reset timer if price bounces back out
5. Logs show: "⏱️ X s in zone (need 60s)" progress

EXPECTED BEHAVIOR (Nov 26 scenario):
- OLD: Enter $136.32 → Stop $137.96 → Bounce to $137.50 → LOSS
- NEW: Wait for 60s confirmation → Enter safely after retest

FILES CHANGED:
- lib/trading/stop-hunt-tracker.ts (shouldExecuteRevenge, checkStopHunt)

Built and deployed: Nov 26, 2025 20:30 CET
Container restarted: trading-bot-v4
2025-11-26 20:25:34 +01:00
mindesbunister
9b0b1d46ca fix: Change revenge system to 1.0x position sizing (same as original)
**ISSUE:** User operates at 100% capital allocation - no room for 1.2x sizing
- 1.2x would require 120% of capital (mathematically impossible)
- User: 'thats not gonna work. we are already using 100% of our portfolio'

**FIX:** Changed from 1.2x to 1.0x (same size as original trade)
- Focus on capturing reversal, not sizing bigger
- Maintains aggressive 15x leverage
- Example: Original ,350 → Revenge ,350 (not 0,020)

**FILES CHANGED:**
- lib/trading/stop-hunt-tracker.ts: sizingMultiplier 1.2 → 1.0
- Telegram notification: Updated to show 'same as original'
- Documentation: Updated all references to 1.0x strategy

**DEPLOYED:** Nov 20, 2025 ~20:30 CET
**BUILD TIME:** 71.8s, compiled successfully
**STATUS:** Container running stable, stop hunt tracker operational
2025-11-20 19:45:22 +01:00
mindesbunister
702e027aba feat: Stop Hunt Revenge System - DEPLOYED (Nov 20, 2025)
Automatically re-enters positions after high-quality signals get stopped out

Features:
- Tracks quality 85+ signals that get stopped out
- Monitors for price reversal through original entry (4-hour window)
- Executes revenge trade at 1.2x size (recover losses faster)
- Telegram notification: 🔥 REVENGE TRADE ACTIVATED
- Database: StopHunt table with 20 fields, 4 indexes
- Monitoring: 30-second checks for active stop hunts

Technical:
- Fixed: Database query hanging in startStopHuntTracking()
- Solution: Added try-catch with error handling
- Import path: Corrected to use '../database/trades'
- Singleton pattern: Single tracker instance per server
- Integration: Position Manager records on SL close

Files:
- lib/trading/stop-hunt-tracker.ts (293 lines, 8 methods)
- lib/startup/init-position-manager.ts (startup integration)
- lib/trading/position-manager.ts (recording logic, ready for next deployment)
- prisma/schema.prisma (StopHunt model)

Commits: Import fix, debug logs, error handling, cleanup
Tested: Container starts successfully, tracker initializes, database query works
Status: 100% operational, waiting for first quality 85+ stop-out to test live
2025-11-20 19:17:43 +01:00