Integrated MA gap analysis into signal quality evaluation pipeline: BACKEND SCORING (lib/trading/signal-quality.ts): - Added maGap?: number parameter to scoreSignalQuality interface - Implemented convergence/divergence scoring logic: * LONG: +15pts tight bullish (0-2%), +12pts converging (-2-0%), +8pts early momentum (-5--2%) * SHORT: +15pts tight bearish (-2-0%), +12pts converging (0-2%), +8pts early momentum (2-5%) * Penalties: -5pts for misaligned MA structure (>5% wrong direction) N8N PARSER (workflows/trading/parse_signal_enhanced.json): - Added MAGAP:([-\d.]+) regex pattern for negative number support - Extracts maGap from TradingView v9 alert messages - Returns maGap in parsed output (backward compatible with v8) - Updated comment to show v9 format API ENDPOINTS: - app/api/trading/check-risk/route.ts: Pass maGap to scoreSignalQuality (2 calls) - app/api/trading/execute/route.ts: Pass maGap to scoreSignalQuality (2 calls) FULL PIPELINE NOW COMPLETE: 1. TradingView v9 → Generates signal with MAGAP field 2. n8n webhook → Extracts maGap from alert message 3. Backend scoring → Evaluates MA gap convergence (+8 to +15 pts) 4. Quality threshold → Borderline signals (75-85) can reach 91+ 5. Execute decision → Only signals scoring ≥91 are executed MOTIVATION: Helps borderline quality signals reach execution threshold without overriding safety rules. Addresses Nov 25 missed opportunity where good signal had MA convergence but borderline quality score. TESTING REQUIRED: - Verify n8n parses MAGAP correctly from v9 alerts - Confirm backend receives maGap parameter - Validate MA gap scoring applied to quality calculation - Monitor first 10-20 v9 signals for scoring accuracy
9.7 KiB
n8n API Management Guide
Created: Nov 26, 2025
Purpose: Document n8n API access for workflow automation and management
API Credentials
n8n Instance: http://localhost:8098 (Docker container, port mapped 0.0.0.0:8098->5678)
External Domain: https://flow.egonetix.de (currently DNS unavailable)
API Key: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1
Environment Variable (.env):
N8N_API_KEY=n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1
N8N_API_URL=http://localhost:8098/api/v1
Common API Operations
1. List All Workflows
curl -X GET "http://localhost:8098/api/v1/workflows" \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" \
-H "Accept: application/json"
Response Fields:
id- Workflow ID (use for updates/deletes)name- Workflow nameactive- true/false (is workflow enabled?)nodes- Array of workflow nodesconnections- Node connections map
Current Workflows (as of Nov 26, 2025):
gUDqTiHyHSfRUXv6- Money Machine (Active: true) - Main trading workflowZk4gbBzjxVppHiCB- nextcloud deck tf bank (Active: true)l5Bnf1Nh3C2GDcpv- nextcloud deck gebührenfrei mastercard (Active: true)
2. Get Specific Workflow
# Get Money Machine workflow details
curl -X GET "http://localhost:8098/api/v1/workflows/gUDqTiHyHSfRUXv6" \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" \
-H "Accept: application/json"
Money Machine Workflow Nodes:
- Parse Signal Enhanced - Extracts metrics from TradingView alerts
- Check Risk1 - Validates signal quality via
/api/trading/check-risk - Execute Trade1 - Opens position via
/api/trading/execute - Trade Success? - Validation/branching logic
3. Update Workflow
curl -X PATCH "http://localhost:8098/api/v1/workflows/{workflow_id}" \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Workflow Name",
"active": true,
"nodes": [...],
"connections": {...}
}'
4. Activate/Deactivate Workflow
# Activate Money Machine workflow
curl -X PATCH "http://localhost:8098/api/v1/workflows/gUDqTiHyHSfRUXv6" \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" \
-H "Content-Type: application/json" \
-d '{"active": true}'
# Deactivate (use for maintenance or testing)
curl -X PATCH "http://localhost:8098/api/v1/workflows/gUDqTiHyHSfRUXv6" \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" \
-H "Content-Type: application/json" \
-d '{"active": false}'
5. Execute Workflow
curl -X POST "https://flow.egonetix.de/api/v1/workflows/{workflow_id}/executions" \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" \
-H "Content-Type: application/json" \
-d '{
"data": {
"symbol": "SOL-PERP",
"direction": "long",
"atr": 0.45
}
}'
6. List Executions
curl -X GET "https://flow.egonetix.de/api/v1/executions?workflowId={workflow_id}&limit=10" \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" \
-H "Accept: application/json"
Trading Bot Workflows
Key Workflows to Manage
-
Parse Signal Enhanced
- Extracts metrics from TradingView alerts
- Parses: ATR, ADX, RSI, volumeRatio, pricePosition, timeframe, indicator version
- Future: Will include maGap for v9 indicator
-
Check Risk
- Calls
/api/trading/check-riskendpoint - Validates signal quality score
- Checks duplicate signals, cooldown periods
- Blocks if quality < threshold (LONG: 90, SHORT: 95)
- Calls
-
Execute Trade
- Calls
/api/trading/executeendpoint - Opens position on Drift Protocol
- Places TP/SL orders
- Adds to Position Manager monitoring
- Calls
Updating Workflows for v9 Enhancement
When implementing v9 MA gap enhancement:
Step 1: Update Parse Signal Enhanced node
{
"nodes": [
{
"name": "Parse Signal Enhanced",
"parameters": {
"jsCode": "// Add MA gap parsing\nconst maGapMatch = message.match(/MAGAP:([\\d.-]+)/);\nconst maGap = maGapMatch ? parseFloat(maGapMatch[1]) : undefined;\n\nreturn { maGap };"
}
}
]
}
Step 2: Update HTTP Request nodes
Add maGap to request body:
{
"body": {
"symbol": "={{$json.symbol}}",
"direction": "={{$json.direction}}",
"atr": "={{$json.atr}}",
"adx": "={{$json.adx}}",
"rsi": "={{$json.rsi}}",
"volumeRatio": "={{$json.volumeRatio}}",
"pricePosition": "={{$json.pricePosition}}",
"maGap": "={{$json.maGap}}",
"timeframe": "={{$json.timeframe}}"
}
}
Workflow IDs Reference
Trading Workflow:
- ID:
gUDqTiHyHSfRUXv6 - Name: Money Machine
- Status: Active
- Nodes:
- Parse Signal Enhanced (extracts TradingView metrics)
- Check Risk1 (validates quality score, duplicates, cooldowns)
- Execute Trade1 (opens position on Drift)
- Trade Success? (validation branching)
Quick Commands:
# Get Money Machine workflow
curl -s http://localhost:8098/api/v1/workflows/gUDqTiHyHSfRUXv6 \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1"
# List all workflows
curl -s http://localhost:8098/api/v1/workflows \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" \
| jq -r '.data[] | "\(.id) | \(.name) | Active: \(.active)"'
API Response Examples
Successful Workflow List
{
"data": [
{
"id": "12345",
"name": "Trading Signal Complete Workflow",
"active": true,
"createdAt": "2025-11-15T12:00:00.000Z",
"updatedAt": "2025-11-20T15:30:00.000Z",
"nodes": [...],
"connections": {...}
}
]
}
Error Responses
401 Unauthorized:
{
"code": 401,
"message": "Unauthorized"
}
→ Check API key is correct
404 Not Found:
{
"code": 404,
"message": "Workflow not found"
}
→ Check workflow ID
429 Rate Limited:
{
"code": 429,
"message": "Too many requests"
}
→ Wait before retrying
Troubleshooting
API Connection Issues
DNS Resolution Failed:
# Test DNS
ping flow.egonetix.de
# If fails, check:
# 1. n8n instance is running
# 2. Domain DNS is configured
# 3. Server firewall allows access
SSL Certificate Issues:
# Test with --insecure (dev only!)
curl --insecure -X GET "https://flow.egonetix.de/api/v1/workflows" \
-H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1"
401 Unauthorized:
- Verify API key is correct (no typos)
- Check API key hasn't been revoked in n8n settings
- Ensure API access is enabled in n8n instance
Security Best Practices
- Store API key in .env file (never commit to git)
- Use environment variables in scripts:
export N8N_API_KEY="n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" curl -H "X-N8N-API-KEY: $N8N_API_KEY" ... - Rotate API keys periodically (quarterly recommended)
- Monitor API usage in n8n admin panel
- Restrict API key permissions if possible (read vs write)
Automated Workflow Management Scripts
Check Workflow Status
#!/bin/bash
# check-n8n-workflows.sh
API_KEY="n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1"
BASE_URL="https://flow.egonetix.de/api/v1"
echo "🔍 Checking n8n workflows..."
curl -s -X GET "$BASE_URL/workflows" \
-H "X-N8N-API-KEY: $API_KEY" \
| jq -r '.data[] | "[\(if .active then "✅" else "❌" end)] \(.name) (ID: \(.id))"'
Deploy Workflow Update
#!/bin/bash
# deploy-workflow-update.sh
WORKFLOW_ID=$1
WORKFLOW_FILE=$2
if [ -z "$WORKFLOW_ID" ] || [ -z "$WORKFLOW_FILE" ]; then
echo "Usage: ./deploy-workflow-update.sh <workflow_id> <workflow.json>"
exit 1
fi
API_KEY="n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1"
BASE_URL="https://flow.egonetix.de/api/v1"
echo "📤 Deploying workflow update..."
curl -X PATCH "$BASE_URL/workflows/$WORKFLOW_ID" \
-H "X-N8N-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d @"$WORKFLOW_FILE" \
| jq '.'
Next Steps After API Test
Once n8n instance is reachable:
-
Test API connection:
curl -X GET "https://flow.egonetix.de/api/v1/workflows" \ -H "X-N8N-API-KEY: n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1" -
Document workflow IDs in this file
-
Update .env file with API key:
sed -i 's/N8N_API_KEY=.*/N8N_API_KEY=n8n_api_42f1838c1e2de90cadcb669f78083de92697a85322c0b6009ad2e55760db992ab0bf61515a3cf0e1/' /home/icke/traderv4/.env -
Backup current workflows:
mkdir -p /home/icke/traderv4/workflows/n8n/backups # Export each workflow via API -
Test workflow update with non-critical workflow first
Status: ✅ API key verified and working (Nov 26, 2025)
Instance: http://localhost:8098 (Docker container n8n)
Main Workflow: Money Machine (ID: gUDqTiHyHSfRUXv6) - Active
Last Test: Nov 26, 2025 - Successfully listed workflows and retrieved Money Machine details