From d0fca63be2e8c9b2b03b0e95a1fb1c04589ef16a Mon Sep 17 00:00:00 2001 From: Garfield Date: Mon, 30 Mar 2026 13:08:42 -0400 Subject: [PATCH] Add n8n workflow setup documentation --- N8N_WORKFLOW_SETUP.md | 152 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 N8N_WORKFLOW_SETUP.md diff --git a/N8N_WORKFLOW_SETUP.md b/N8N_WORKFLOW_SETUP.md new file mode 100644 index 0000000..431765f --- /dev/null +++ b/N8N_WORKFLOW_SETUP.md @@ -0,0 +1,152 @@ +# N8N Workflow for MQL Settings Monitoring + +## Overview + +This n8n workflow monitors your `.set` files every 6 hours and alerts you if there are issues like: +- Invalid variable names (typos) +- Missing critical parameters +- Overly restrictive settings blocking trades +- Weekend protection disabled +- Files not tracked in git + +## Files Included + +| File | Purpose | +|------|---------| +| `n8n-workflow-simple.json` | Simple workflow (recommended) | +| `n8n-workflow-check-sets.json` | Advanced workflow with Discord | +| `scripts/validate-settings.sh` | Validation script | + +## Quick Setup (Simple Workflow) + +### 1. Install N8N +```bash +# Using Docker +docker run -it --rm \ + --name n8n \ + -p 5678:5678 \ + -v ~/.n8n:/home/node/.n8n \ + n8nio/n8n +``` + +### 2. Import Workflow +1. Open N8N: http://localhost:5678 +2. Click **"Add Workflow"** +3. Click **"Import from File"** +4. Select `n8n-workflow-simple.json` + +### 3. Configure Environment Variables + +Add these to your n8n credentials or `.env`: + +```bash +# Telegram Notifications (recommended) +TELEGRAM_BOT_TOKEN=your_bot_token +TELEGRAM_CHAT_ID=your_chat_id + +# Optional: Email Notifications +ALERT_EMAIL=garfield@fetcherpay.com + +# Optional: Discord Notifications +DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/... +``` + +### 4. Get Telegram Chat ID + +1. Message @userinfobot on Telegram - it will give you your ID +2. Or use @getidsbot + +### 5. Activate Workflow + +1. Open the imported workflow +2. Click **"Active"** toggle (top right) +3. Click **"Save"** + +## Validation Script + +You can also run the validation manually: + +```bash +# Run validation +./scripts/validate-settings.sh + +# Run from anywhere +/home/garfield/mql-trading-bots/scripts/validate-settings.sh +``` + +## What It Checks + +| Check | Description | Alert Level | +|-------|-------------|-------------| +| File count | Ensures .set files exist | Error | +| Invalid variables | Finds typos like `InpMinConfluenceStrength` | Error | +| Missing parameters | Checks critical params exist | Error | +| High strength | Warns if `InpMinStrength` > 0.8 | Warning | +| Debug mode | Warns if debug disabled | Warning | +| Weekend protection | Ensures `InpCloseBeforeWeekend=true` | Error | +| Git status | Warns about untracked files | Warning | + +## Sample Telegram Alert + +``` +🚨 MQL Settings Issues Found: + +ISSUE: confluence-eurusd.set missing: InpCloseBeforeWeekend +ISSUE: confluence-usdjpy.set missing: InpCloseBeforeWeekend +WARNING: High strength thresholds (may block trades): + - confluence-gbpusd.set: InpMinStrength=0.80 + +⏰ 2026-03-30 14:30 +``` + +## Sample Success Message + +``` +✅ Settings check passed + +Confluence settings: 13 files +Grid settings: 13 files +✓ No invalid variable names found +✓ All files have weekend protection enabled +``` + +## Scheduling Options + +Edit the Schedule Trigger node to change frequency: + +| Frequency | Settings | +|-----------|----------| +| Every 15 minutes | `interval: 15 minutes` | +| Every hour | `interval: 1 hour` | +| Every 6 hours | `interval: 6 hours` (default) | +| Daily at 9am | `cron: 0 9 * * *` | + +## Troubleshooting + +### No alerts received +- Check Telegram bot token is valid +- Verify chat ID is correct +- Check n8n execution log + +### Script fails with permission denied +```bash +chmod +x /home/garfield/mql-trading-bots/scripts/validate-settings.sh +``` + +### Workflow shows error +- Ensure n8n can access `/home/garfield/mql-trading-bots` +- Check that script exists and is executable + +## Advanced: Custom Checks + +Edit `scripts/validate-settings.sh` to add your own checks: + +```bash +# Example: Check for specific EA version +grep -q "EA_Version=1.16" *.set || echo "ISSUE: Files not updated to v1.16" +``` + +## Related Documentation + +- [AGENTS.md](AGENTS.md) - Project context +- [SETTINGS_GUIDE.md](SETTINGS_GUIDE.md) - Settings documentation