Add n8n workflow setup documentation
This commit is contained in:
152
N8N_WORKFLOW_SETUP.md
Normal file
152
N8N_WORKFLOW_SETUP.md
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user