From ebffe9a4df5a45127c6d14db23698a39defbf5fe Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Sun, 7 Dec 2025 19:56:51 +0100 Subject: [PATCH] docs: Document n8n symbol normalization architecture and FARTCOIN fix - Discovered that n8n normalizes symbols BEFORE sending to bot - Bot normalization code is never used (symbols already in *-PERP format) - Adding new symbols requires updating n8n workflow, not bot code - FARTCOIN fix applied to workflows/trading/parse_signal_enhanced.json - User must import updated workflow to n8n for FARTCOIN to work --- .github/copilot-instructions.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 88dd905..42beaac 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -2502,8 +2502,24 @@ TradingView alert → n8n Parse Signal Enhanced (extracts metrics + timeframe + ↓ positionManager.addTrade() [ONLY after DB save succeeds - prevents unprotected positions] ``` -**n8n Parse Signal Enhanced Workflow (Nov 27, 2025):** +**n8n Parse Signal Enhanced Workflow (Nov 27, 2025 - Updated Dec 7, 2025):** - **File:** `workflows/trading/parse_signal_enhanced.json` +- **CRITICAL: Symbol Normalization Happens HERE (Dec 7, 2025 discovery):** + - TradingView sends raw symbol (SOLUSDT, FARTCOIN, etc.) + - n8n extracts symbol from message body and normalizes to Drift format (*-PERP) + - Bot receives ALREADY NORMALIZED symbols (SOL-PERP, FARTCOIN-PERP) + - **Bot normalization code is NOT used** - n8n does it first + - **To add new symbols:** Update n8n workflow regex + mapping logic, then import to n8n +- **Symbol Extraction Regex (Dec 7, 2025):** + ```javascript + const symbolMatch = body.match(/\b(FARTCOIN|FART|SOL|BTC|ETH)\b/i); + // CRITICAL: FARTCOIN checked BEFORE SOL (substring match issue) + if (matched === 'FARTCOIN' || matched === 'FART') { + symbol = 'FARTCOIN-PERP'; + } else { + symbol = matched + '-PERP'; // SOL → SOL-PERP, BTC → BTC-PERP, etc. + } + ``` - **Extracts from TradingView alerts:** - Standard metrics: symbol, direction, timeframe, ATR, ADX, RSI, VOL, POS, MAGAP, signalPrice, indicatorVersion - **MA Crossover Detection (NEW):** `isMACrossover`, `isDeathCross`, `isGoldenCross` flags