Key insight: 1-min collection uses SAME pattern as 15min/1H/Daily - Same webhook (tradingview-bot-v4) - Same workflow (Money Machine) - Bot filters by timeframe='1' → saves to BlockedSignal - No separate infrastructure needed User was right - it's not different, just needed same format!
5.2 KiB
5.2 KiB
1-Minute Market Data Collection - Simple Setup
Date: November 27, 2025
Status: CORRECTED - Uses same webhook as trading signals
Summary
1-minute data collection uses the same workflow as 15min/1H/Daily data collection:
- Same webhook URL as trading signals (
tradingview-bot-v4) - Same n8n workflow (Money Machine)
- Bot filters by
timeframe="1"and saves to BlockedSignal (no trades executed)
No separate webhook needed! 🎉
Pine Script Indicator
File: /home/icke/traderv4/workflows/trading/moneyline_1min_data_feed.pinescript
Alert message format:
SOLUSDT buy 1 | ATR:0.43 | ADX:25.8 | RSI:58.2 | VOL:1.15 | POS:62.4 | IND:v9
Key: timeframe="1" tells bot this is data collection only
TradingView Alert Setup
1. Add Indicator to Chart
- Chart: SOL-PERP, ETH-PERP, or BTC-PERP
- Timeframe: 1 minute
- Add indicator: "Money Line - 1min Data Feed"
2. Create Alert
Settings Tab:
- Condition: "Money Line - 1min Data Feed" > "Any alert() function call"
- Interval: 1m
- Expiration: Open-ended
Message Tab:
- Alert name:
SOL-PERP 1min Data Feed - Message: Leave blank
- Webhook URL:
https://flow.egonetix.de/webhook/tradingview-bot-v4✅ - ✅ Check "Webhook URL"
3. Repeat for All Symbols
- SOL-PERP 1min Data Feed (SOLUSDT.P chart)
- ETH-PERP 1min Data Feed (ETHUSDT chart)
- BTC-PERP 1min Data Feed (BTCUSDT chart)
How It Works
TradingView Alert (1min candle close)
↓
"SOLUSDT buy 1 | ATR:0.43 | ADX:25.8..."
↓
Webhook: tradingview-bot-v4 (SAME as trading signals)
↓
n8n: Parse Signal Enhanced
↓
Extracts: timeframe="1", symbol="SOL-PERP", metrics...
↓
n8n: Check Risk → Execute Trade
↓
Bot: /api/trading/execute
↓
if (timeframe !== '5') {
// DATA COLLECTION PATH (same as 15min/1H/Daily)
await createBlockedSignal({
blockReason: 'DATA_COLLECTION_ONLY',
timeframe: '1',
atr, adx, rsi, volumeRatio, pricePosition
})
return { success: true, dataCollection: true }
}
↓
n8n: Receives success=true (no trade notification)
↓
Bot: BlockedSignal table updated
Result: Market data cached, no trade executed ✅
Verification
1. Check BlockedSignal Table
docker exec trading-bot-postgres psql -U postgres -d trading_bot_v4 -c "
SELECT
symbol, direction, timeframe,
TO_CHAR(\"createdAt\", 'MM-DD HH24:MI:SS') as time,
\"signalQualityScore\" as score,
blockReason
FROM \"BlockedSignal\"
WHERE timeframe = '1'
ORDER BY \"createdAt\" DESC
LIMIT 10;
"
Expected: Entries with timeframe='1', blockReason='DATA_COLLECTION_ONLY'
2. Check Bot Logs
docker logs trading-bot-v4 -f | grep "DATA COLLECTION"
# Expected: "📊 DATA COLLECTION: 1min signal from SOL-PERP, saving for analysis"
3. Verify Cache Updates
docker logs trading-bot-v4 -f | grep "Market data auto-cached"
# Expected: "📊 Market data auto-cached for SOL-PERP from trade signal"
4. Confirm No Trades Executed
docker logs trading-bot-v4 -f | grep "POSITION OPENED"
# Should NOT see entries from 1-minute alerts
# Only 5-minute trading signals should open positions
Expected Behavior
Data Frequency
- Per Symbol: 60 signals/hour = 1,440/day
- Total (3 symbols): 180 signals/hour = 4,320/day
- Storage: ~10-15 KB/signal in BlockedSignal table
No Separate Webhook Needed
- 15min signals:
buy 15→ timeframe="15" → Data collection ✅ - 1H signals:
buy 60→ timeframe="60" → Data collection ✅ - 1min signals:
buy 1→ timeframe="1" → Data collection ✅ - 5min signals:
buy 5→ timeframe="5" → Execute trade ✅
All use the same webhook! Bot routes by timeframe.
Comparison: Old vs New Approach
❌ Old (Overcomplicated)
- Separate
market_data_handler.jsonworkflow - Different webhook URL:
webhook/UNIQUE_ID - JSON format:
{"action":"market_data_1min",...} - Requires n8n workflow import/configuration
✅ New (Simple)
- Uses existing Money Machine workflow
- Same webhook:
webhook/tradingview-bot-v4 - Text format:
SOLUSDT buy 1 | ATR:0.43... - Already configured - just create alerts!
Benefits
- No n8n changes needed - Uses existing workflow
- No separate webhook - Same as trading signals
- Consistent pattern - Same as 15min/1H/Daily
- Simpler setup - Just create TradingView alerts
- Same monitoring - BlockedSignal table + bot logs
Next Steps
- ✅ Update Pine Script indicator (DONE - commit
cb02976) - Copy/paste new indicator code to TradingView
- Create 3 alerts (SOL/ETH/BTC) with webhook
tradingview-bot-v4 - Monitor logs for 10 minutes (verify data collection, no trades)
- Check BlockedSignal table for
timeframe='1'entries
Files Changed
/home/icke/traderv4/workflows/trading/moneyline_1min_data_feed.pinescript- Changed to trading signal format- Git commit:
cb02976"fix: Change 1-min indicator to use trading signal format"
Key Takeaway
You were right! 1-minute data collection is NOT different from 15min/1H/Daily. The bot already handles this pattern perfectly - we just needed to use the same format. No separate infrastructure needed! 🎉