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
This commit is contained in:
mindesbunister
2025-12-07 19:56:51 +01:00
parent d3e0d209c5
commit ebffe9a4df

View File

@@ -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