| Symbol | Side | Qty | Entry | SL | TP | Filled At |
|---|---|---|---|---|---|---|
| No open positions | ||||||
| Symbol | Side | Qty | Entry | Exit | PnL $ | Result |
|---|---|---|---|---|---|---|
| No closed trades yet | ||||||
EdgeLab เป็นระบบ Algorithmic Trading Backtester สำหรับทดสอบ strategy บน historical data ก่อนนำไปใช้จริง ใช้ราคาจาก TradingView โดยตรง — ตรงกับ Exness และ broker ทุกเจ้า
XAUUSD, EURUSD, AAPLXAUUSD (ทอง), XAGUSD (เงิน)EURUSD, GBPUSD, USDJPY, AUDUSDUS30, US500, NAS100BTCUSD, ETHUSDAAPL, MSFT, NVDA, TSLAUSOIL (WTI), UKOIL (Brent)เหมาะกับตลาดที่มี trend ชัดเจน
เหมาะกับตลาด trending ที่ราคา pullback มาที่ EMA
close > EMA50 > EMA200 (buy) หรือกลับกัน (sell)เหมาะกับตลาดที่ sideway หรือ range-bound
ออกแบบสำหรับ XAUUSD (ทองคำ) — เข้า trade สวนทางเมื่อราคาถึง S/R สำคัญ
XAUUSD บน Daily หรือ 1H (ราคา Spot ตรงกับ Exness)ระบบให้คะแนน 0–100 จากหลาย factor ก่อนเปิด trade:
| Factor | น้ำหนัก | เงื่อนไข |
|---|---|---|
| Market Structure (HTF) | 30% | BOS/CHoCH ตรงทิศทาง |
| S/R Zone Strength | 25% | ราคาอยู่ใกล้ zone แข็งแกร่ง |
| Price Action Pattern | 20% | Pin bar, Engulfing, Morning star ฯลฯ |
| Momentum (RSI/ADX) | 15% | RSI/ADX ยืนยันทิศทาง |
| Volume | 10% | Volume สูงกว่าค่าเฉลี่ย 20 bar |
| ค่า | ข้อมูล | เหมาะกับ |
|---|---|---|
1y | ~252 bars | ทดสอบเร็ว, market condition ล่าสุด |
2y | ~504 bars | ครอบคลุม cycle ปกติ |
3y | ~756 bars | แนะนำสำหรับ BOS & EMA |
5y | ~1260 bars | Walk-forward validation ครบถ้วน |
เงินทุนตั้งต้นสำหรับ simulation (ค่า default $10,000) ไม่ใช่เงินจริง — ใช้คำนวณ position size และ P&L เท่านั้น
% ของ portfolio ที่ยอมเสียต่อ trade หนึ่ง ระบบคำนวณ qty อัตโนมัติจาก:
qty = (capital × risk%) ÷ |entry - stop_loss|
| Risk % | ความเสี่ยง | เหมาะกับ |
|---|---|---|
| 0.5% | ต่ำมาก | ทดสอบระบบ conservative |
| 1.0% | ต่ำ (แนะนำ) | มาตรฐาน institutional |
| 2.0% | ปานกลาง | Aggressive retail |
แบ่งข้อมูลออกเป็น 5 ช่วง ทดสอบแบบ expanding window เพื่อวัดว่า strategy robust จริงหรือ overfit:
| ตัวชี้วัด | ความหมาย | เกณฑ์ดี |
|---|---|---|
| Win Rate | % ของ trade ที่กำไร | > 40% (ถ้า R:R ดี) |
| Profit Factor | gross profit ÷ gross loss | > 1.5 |
| Sharpe Ratio | return ÷ volatility (รายปี) | > 1.0 |
| Sortino Ratio | เหมือน Sharpe แต่นับแค่ downside | > 1.5 |
| Max Drawdown | ขาดทุนสูงสุดจาก peak | < 15% |
| CAGR | ผลตอบแทนรายปีทบต้น | > 10% |
| Expectancy $ | กำไรเฉลี่ยต่อ trade | > $0 |
ทุก trade หักค่าใช้จ่ายอัตโนมัติ รวม ~0.12% ต่อ side:
คลิก card ใน Reports เพื่อเปิด report ที่มี:
ระบบดึงข้อมูลจาก TradingView โดยตรงผ่าน WebSocket — ราคา Spot ตรงกับ Exness และ broker ทุกเจ้า ไม่มี futures premium
| Timeframe | ข้อมูลย้อนหลังที่ดึงได้ | หมายเหตุ |
|---|---|---|
| Daily (1D) | ~5,000 bar (~20 ปี) | แนะนำสำหรับ backtest |
| 1 Hour (1H) | ~5,000 bar (~7 เดือน) | - |
| 15 Minute (15M) | ~5,000 bar (~52 วัน) | เหมาะ intraday |
| EA | วิธีทำงาน | ข้อดี | ข้อเสีย |
|---|---|---|---|
| GoldSupportResistanceEA.mq5 ✅ แนะนำ (ง่ายกว่า) |
Standalone — logic อยู่ใน MT5 ทั้งหมด ไม่ต้องใช้ Python |
ติดตั้งง่าย, รันได้เลย | ปรับแต่งผ่าน Python ไม่ได้ |
| EdgeLabBridge.mq5 ต้องใช้ Python bot |
Bridge — Python ส่ง signal → EA execute | ผล live ตรงกับ backtest 100% | ต้อง setup shared folder |
| โหมด | คำอธิบาย | เหมาะกับ |
|---|---|---|
| Paper (จำลอง) | จำลอง order ในหน่วยความจำ ไม่มีเงินจริง | ทดสอบ logic ของ bot |
| MT5 / Exness Demo | ส่ง order จริงไปยัง MT5 ผ่านไฟล์ JSON | ทดสอบกับ broker จริงก่อนใช้เงินจริง |
รัน EA โดยตรงบน MT5 ไม่ต้องใช้ Python เลย
mt5_ea/GoldSupportResistanceEA.mq5 → MT5 → File > Open Data Folder > MQL5 > Expertsmt5_ea/GoldSupportResistanceEA.conf — ค่าทุกอย่างจะโหลดอัตโนมัติไม่ต้องปรับค่า lot ด้วยตนเอง — ระบบคำนวณทุกครั้งก่อนเปิดไม้:
| ขั้นตอน | ตัวอย่าง ($100 balance) |
|---|---|
| 1. คำนวณ risk = balance × RiskPercent% | $100 × 2% = $2.00 |
| 2. ถ้าน้อยกว่า MinRiskUSD → ยกขึ้น (floor) | $2.00 < $5.00 → ใช้ $5.00 |
| 3. lot = risk ÷ (SL_points × tick_value) | $5.00 ÷ ... = 0.01 lot |
| 4. balance โตขึ้น → lot scale ขึ้นเอง | $500 × 2% = $10 → lot ใหญ่ขึ้น |
| Filter | ทำอะไร |
|---|---|
| Doji Filter | skip เมื่อ body < 10% ของ range (ตลาดยังไม่เลือกข้าง) |
| Close Position % | Buy: close ต้องอยู่บน 65%+ / Sell: ล่าง 35%- (ผู้ชนะชัดเจน) |
| EMA200 Trend | Buy เฉพาะเมื่อราคาเหนือ EMA200 และกลับกัน |
| ADX Regime | skip เมื่อ ADX < 20 (sideways — ไม่มีเทรน) |
| RSI Filter | skip เมื่อ RSI overbought/oversold เกินไป |
| Cooldown after SL | หยุด 3 แท่งหลัง SL hit (ตลาดยังไม่นิ่ง) |
| Peak Drawdown Exit | ปิดไม้เมื่อกำไรหายจาก peak 35% |
| News Filter | หยุดเทรดช่วงข่าวสำคัญ ±30/15 นาที |
Python bot ส่ง signal มายัง MT5 — ผลตรงกับ backtest
mt5_ea/EdgeLabBridge.mq5 (อยู่ในโปรเจกต์แล้ว)%APPDATA%\MetaQuotes\Terminal\Common\Files\EdgeLab\pending, filled, rejected, commands
EdgeLabBridge.mq5 ไปที่:MT5 → File → Open Data Folder → MQL5 → Experts
EdgeLabBridge ใส่ chartSubFolder = EdgeLabMagicNumber = 20250101[EdgeLab] EA started ใน Expert tabmount -t cifs //IP-Windows/EdgeLab /opt/metatrader5/shared/EdgeLab -o username=xxx,password=yyyln -s ~/.wine/drive_c/users/user/AppData/Roaming/MetaQuotes/Terminal/Common/Files/EdgeLab /opt/metatrader5/shared/EdgeLab
/opt/TradingBot/.env (สร้างถ้ายังไม่มี):MT5_SHARED_PATH=/opt/metatrader5/shared/EdgeLab
ls /opt/metatrader5/shared/EdgeLab/heartbeat.json
XAUUSD (ตรงกับ Exness ทันที)| Bot (TradingView) | Exness / MT5 |
|---|---|
XAUUSD | XAUUSD ✅ ตรงกันทันที |
XAGUSD | XAGUSD |
USOIL | USOIL |
EURUSD | EURUSD |
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
| MT5 EA ไม่ตอบสนอง | heartbeat.json ไม่มีหรือเก่า | ตรวจว่า EA attach chart ไว้ และ Auto Trade เปิด |
| Order ไม่เข้า | folder shared ไม่ถูก | ตรวจ MT5_SHARED_PATH ใน .env ให้ตรงกับ folder จริง |
| Symbol not found | Exness ชื่อ symbol ต่างกัน | แก้ MT5_SYMBOL_MAP ใน config/settings.py |
| Order rejected | Margin ไม่พอหรือ market ปิด | ตรวจ rejected/<id>.json ดู reason |
| Symbol | Side | Qty | Entry | SL | TP | Filled At |
|---|---|---|---|---|---|---|
| No open positions | ||||||
| Symbol | Side | Qty | Entry | Exit | PnL $ | Result |
|---|---|---|---|---|---|---|
| No closed trades yet | ||||||