Files
mql-trading-bots/n8n-workflow-ssh.json
garfield 0894d18db4 WIP: 6+ weeks of uncommitted EA development and preset tuning
Confluence EA (v1.16 → v1.20):
- Per-EA realized P&L tracking via history deals
- Weekly drawdown protection
- Warmup bars, pivot cache, state persistence
- Point-scaled pivot thresholds, ranging ATR factor
- Market filling mode helper per symbol

Grid EA (v3.1 → v4.1):
- Adaptive filters, adaptive entry, spread filter
- Session filter, breakeven, correlation caps, range drift
- Profit protection (stop-after-profit, cycle reports)
- Edge cleanup v5.0 — close wrong-side positions outside grid
- Master one-shot shutdown, grid state persistence

Presets:
- Fix GetOut=Y shutdown bug on 4 grid presets
- Relax ADXMax 18→40, widen RSI 20/80 across grid presets
- Standardize daily drawdown 3%→5%, add weekly 10%
- Increase grid lots 0.01→0.03
- Normalize confluence ATR thresholds per pair
- Add XAGUSD, EURCHF, EURGBP, AUDNZD presets

Docs & DevOps:
- April 23 audit files (preset mismatch, code review, checklist)
- n8n workflow and validation infrastructure updates
- AI agent analyses in notes/

Known issues carried forward:
- Shared drawdown budget contamination (both EAs)
- Confluence ranging-market threshold inversion
- Older grid presets missing v4.1 safety controls
2026-05-12 09:02:25 -04:00

99 lines
2.3 KiB
JSON
Executable File

{
"name": "MQL Settings Monitor - SSH Version",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 6
}
]
}
},
"name": "Every 6 Hours",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"command": "/home/garfield/mql-trading-bots/scripts/validate-settings.sh",
"cwd": "/home/garfield/mql-trading-bots"
},
"name": "Run Validation Script",
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [450, 300],
"credentials": {
"sshPassword": {
"id": "local-ssh",
"name": "Local SSH"
}
}
},
{
"parameters": {
"conditions": {
"number": [
{
"value1": "={{ $json.code }}",
"operation": "notEqual",
"value2": 0
}
]
}
},
"name": "Issues Found?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [650, 300]
},
{
"parameters": {
"chatId": "={{ $env.TELEGRAM_CHAT_ID }}",
"text": "=🚨 MQL Settings Issues:\n\n{{ $json.stdout }}\n\n⏰ {{ new Date().toISOString() }}"
},
"name": "Send Telegram Alert",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1,
"position": [850, 200],
"credentials": {
"telegramApi": {
"id": "telegram-bot",
"name": "Telegram Bot"
}
}
},
{
"parameters": {},
"name": "No Issues",
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [850, 400]
}
],
"connections": {
"Every 6 Hours": {
"main": [
[{ "node": "Run Validation Script", "type": "main", "index": 0 }]
]
},
"Run Validation Script": {
"main": [
[{ "node": "Issues Found?", "type": "main", "index": 0 }]
]
},
"Issues Found?": {
"main": [
[{ "node": "Send Telegram Alert", "type": "main", "index": 0 }],
[{ "node": "No Issues", "type": "main", "index": 0 }]
]
}
},
"settings": {},
"staticData": null,
"tags": []
}