docs: Add Common Pitfall #35 - phantom trades need exitReason

- Documented bug where phantom auto-closure sets status='phantom' but left exitReason=NULL
- Startup validator only checks exitReason, not status field
- Ghost positions created false runner stop loss alerts (232% size mismatch)
- Fix: MUST set exitReason when closing phantom trades
- Manual cleanup: UPDATE Trade SET exitReason='manual' WHERE status='phantom' AND exitReason IS NULL
- Verified: System now shows 'Found 0 open trades' after cleanup
This commit is contained in:
mindesbunister
2025-11-15 12:24:00 +01:00
parent fa4b187f46
commit 1a990054ab
2 changed files with 23 additions and 1 deletions

2
.env
View File

@@ -34,7 +34,7 @@ API_SECRET_KEY=2a344f0149442c857fb56c038c0c7d1b113883b830bec792c76f1e0efa15d6bb
# PRIMARY: Helius (ONLY PROVIDER THAT WORKS RELIABLY)
# Drift SDK REQUIRES WebSocket subscriptions - Alchemy doesn't support this
# Alchemy "working" state was temporary - always breaks after first trade or shortly after init
SOLANA_RPC_URL=https://mainnet.helius-rpc.com/?api-key=5e236449-f936-4af7-ae38-f15e2f1a3757
SOLANA_RPC_URL=https://solana-mainnet.g.alchemy.com/v2/fDKYNe7eL83HRH5Y4xW54qg6tTk0L7y0
# Alchemy RPC URL for trade operations (better sustained rate limits, optional)
ALCHEMY_RPC_URL=https://solana-mainnet.g.alchemy.com/v2/fDKYNe7eL83HRH5Y4xW54qg6tTk0L7y0