
หาโค้ด EA Forex ฟรีที่ใช้งานได้จริง? บทความนี้รวม code Expert Advisor สำเร็จรูป พร้อมอธิบายหลักการทำงานทุกบรรทัด คุณสามารถ copy ไปใช้ได้ทันทีทั้งบน MT4 (MQL4) และ MT5 (MQL5) ผมเขียน EA มากว่า 10 ปี ต้องบอกว่า EA ง่ายๆ บางตัวทำกำไรได้ดีกว่า EA ซับซ้อนที่ขายกันแพงๆ ด้วยซ้ำ สิ่งสำคัญไม่ใช่ความซับซ้อน แต่เป็น strategy + risk management ที่ดี
- สารบัญ
- EA Forex คืออะไร? ทำงานยังไง?
- EA 1: Moving Average Crossover (MQL4)
- EA 2: RSI Mean Reversion (MQL4)
- EA 3: Breakout Strategy (MQL4)
- EA 4: EMA + RSI Combo (MQL5)
- EA 5: Gold Scalper XAU/USD (MQL5)
- วิธีติดตั้ง EA บน MT4/MT5
- วิธี Backtest EA อย่างถูกต้อง
- เปรียบเทียบ EA ฟรี vs EA เสียเงิน
- 5 ข้อผิดพลาดที่ต้องระวังเมื่อใช้ EA
- EA ไหนเหมาะกับมือใหม่?
- FAQ — โค้ด EA Forex ฟรี
สารบัญ
- EA Forex คืออะไร? ทำงานยังไง?
- EA 1: Moving Average Crossover (MQL4)
- EA 2: RSI Mean Reversion (MQL4)
- EA 3: Breakout Strategy (MQL4)
- EA 4: EMA + RSI Combo (MQL5)
- EA 5: Gold Scalper XAU/USD (MQL5)
- วิธีติดตั้ง EA บน MT4/MT5
- วิธี Backtest EA อย่างถูกต้อง
- เปรียบเทียบ EA ฟรี vs EA เสียเงิน
- 5 ข้อผิดพลาดที่ต้องระวัง
- EA ไหนเหมาะกับมือใหม่?
- FAQ — คำถามที่พบบ่อย (8 ข้อ)
EA Forex คืออะไร? ทำงานยังไง?
Expert Advisor (EA) คือโปรแกรมอัตโนมัติที่รันบน MetaTrader 4/5 ทำหน้าที่เปิด-ปิด-modify order แทนเรา ตาม logic ที่เราเขียนหรือตั้งค่าไว้ EA ทำงานแบบ event-driven: ทุกครั้งที่มีราคาใหม่ (tick) เข้ามา EA จะรัน function OnTick() เพื่อตรวจสอบเงื่อนไขว่าต้องทำอะไรหรือไม่
ข้อดีของ EA:
- ไม่มีอารมณ์ — ทำตาม rules เป๊ะ ไม่กลัว ไม่โลภ
- ไม่หลับ — เทรดได้ 24/5 ไม่พลาดโอกาส
- ความเร็ว — เข้า-ออก order ในเสี้ยววินาที เหมาะกับ scalping
- Backtestable — ทดสอบกับข้อมูลย้อนหลังได้ก่อนใช้จริง
ข้อเสียของ EA:
- ไม่ปรับตัว — ตลาดเปลี่ยน EA ยังใช้ rules เดิม อาจขาดทุนช่วง regime change
- ต้องรันตลอด — ต้องมี VPS หรือคอมพ์เปิด 24 ชม.
- Over-optimization — backtest สวยแต่ live แย่ (curve fitting)
EA 1: Moving Average Crossover (MQL4)
กลยุทธ์คลาสสิคที่ใช้ MA 2 เส้นตัดกัน: MA เร็วตัดขึ้น = Buy, ตัดลง = Sell เป็น trend-following strategy ที่ทำงานได้ดีใน trending market
//+------------------------------------------------------------------+
//| MA Crossover EA - MQL4 (Free) |
//| Strategy: EMA 10 cross EMA 50 |
//| Risk: Fixed lot + SL/TP |
//+------------------------------------------------------------------+
#property copyright "iCafeForex.com"
#property version "1.0"
// Parameters
extern int FastMA_Period = 10; // EMA เร็ว
extern int SlowMA_Period = 50; // EMA ช้า
extern double LotSize = 0.01; // ขนาด lot
extern int StopLoss = 50; // SL (pips)
extern int TakeProfit = 100; // TP (pips)
extern int MagicNumber = 12345; // เลข magic สำหรับ EA นี้
//+------------------------------------------------------------------+
void OnTick()
{
// คำนวณ EMA ปัจจุบันและ bar ก่อนหน้า
double fast_now = iMA(NULL, 0, FastMA_Period, 0, MODE_EMA, PRICE_CLOSE, 0);
double fast_prev = iMA(NULL, 0, FastMA_Period, 0, MODE_EMA, PRICE_CLOSE, 1);
double slow_now = iMA(NULL, 0, SlowMA_Period, 0, MODE_EMA, PRICE_CLOSE, 0);
double slow_prev = iMA(NULL, 0, SlowMA_Period, 0, MODE_EMA, PRICE_CLOSE, 1);
// ตรวจว่ามี order เปิดอยู่หรือไม่
int total_orders = 0;
for(int i = OrdersTotal()-1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS) && OrderMagicNumber() == MagicNumber)
total_orders++;
}
// Golden Cross → Buy Signal
if(fast_prev slow_now && total_orders == 0)
{
double sl = Ask - StopLoss * Point * 10; // แปลงเป็น 5 digits
double tp = Ask + TakeProfit * Point * 10;
int ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, sl, tp,
"MA Cross Buy", MagicNumber, 0, clrBlue);
if(ticket > 0)
Print("BUY opened: ", ticket, " at ", Ask);
}
// Death Cross → Sell Signal
if(fast_prev >= slow_prev && fast_now 0)
Print("SELL opened: ", ticket, " at ", Bid);
}
}
วิธีใช้: ใส่บน H1 chart คู่เงินหลัก (EUR/USD, GBP/USD) หรือ XAU/USD เหมาะกับ trending market ไม่เหมาะกับตลาด sideways
EA 2: RSI Mean Reversion (MQL4)
ใช้ RSI หา oversold/overbought zones เข้าซื้อเมื่อ RSI ต่ำ ขายเมื่อ RSI สูง เป็น mean reversion strategy ที่ทำงานได้ดีในตลาด ranging
//+------------------------------------------------------------------+
//| RSI Mean Reversion EA - MQL4 (Free) |
//| Buy when RSI 75 |
//+------------------------------------------------------------------+
#property copyright "iCafeForex.com"
extern int RSI_Period = 14;
extern double RSI_Buy = 25.0; // ซื้อเมื่อ RSI ต่ำกว่านี้
extern double RSI_Sell = 75.0; // ขายเมื่อ RSI สูงกว่านี้
extern double LotSize = 0.01;
extern int StopLoss = 30;
extern int TakeProfit = 50;
extern int MagicNumber = 22222;
void OnTick()
{
double rsi_now = iRSI(NULL, 0, RSI_Period, PRICE_CLOSE, 0);
double rsi_prev = iRSI(NULL, 0, RSI_Period, PRICE_CLOSE, 1);
// นับ orders ของ EA นี้
int my_orders = 0;
for(int i = OrdersTotal()-1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS) && OrderMagicNumber() == MagicNumber)
my_orders++;
}
if(my_orders > 0) return; // มี order อยู่แล้ว ไม่เปิดเพิ่ม
// RSI cross up from oversold → Buy
if(rsi_prev = RSI_Buy)
{
OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3,
Ask - StopLoss * Point * 10,
Ask + TakeProfit * Point * 10,
"RSI Oversold Buy", MagicNumber, 0, clrGreen);
}
// RSI cross down from overbought → Sell
if(rsi_prev > RSI_Sell && rsi_now
Tip: RSI EA ทำงานดีกับทอง H1 ที่มีช่วง range ชัดเจน ถ้าทองเข้า trend จะ whipsaw ให้ปิด EA ตอนมีข่าวใหญ่
EA 3: Breakout Strategy (MQL4)
เทรดตาม breakout ของ Previous Day High/Low เหมาะกับ London/NY open:
//+------------------------------------------------------------------+
//| Daily Breakout EA - MQL4 (Free) |
//| Buy above yesterday high, Sell below yesterday low |
//+------------------------------------------------------------------+
#property copyright "iCafeForex.com"
extern double LotSize = 0.01;
extern int SL_Pips = 25;
extern int TP_Pips = 50;
extern int MagicNumber = 33333;
extern int StartHour = 9; // เริ่มดู breakout ช่วง London (GMT+0)
extern int EndHour = 18; // หยุดเปิด order หลัง NY close
void OnTick()
{
// เช็คเวลา
int hour = TimeHour(TimeCurrent());
if(hour EndHour) return;
double yesterday_high = iHigh(NULL, PERIOD_D1, 1);
double yesterday_low = iLow(NULL, PERIOD_D1, 1);
// นับ orders
int my_orders = 0;
for(int i = OrdersTotal()-1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS) && OrderMagicNumber() == MagicNumber
&& OrderSymbol() == Symbol())
my_orders++;
}
if(my_orders > 0) return;
// Breakout High → Buy
if(Ask > yesterday_high)
{
OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3,
Ask - SL_Pips * Point * 10,
Ask + TP_Pips * Point * 10,
"Breakout Buy", MagicNumber, 0, clrBlue);
}
// Breakout Low → Sell
if(Bid
EA 4: EMA + RSI Combo (MQL5)
สำหรับ MT5 ใช้ OOP syntax ของ MQL5 รวม EMA trend filter + RSI entry:
//+------------------------------------------------------------------+
//| EMA + RSI Combo EA - MQL5 (Free) |
//| Trade with trend (EMA200) + RSI timing |
//+------------------------------------------------------------------+
#property copyright "iCafeForex.com"
#include
input int EMA_Period = 200;
input int RSI_Period = 14;
input double RSI_Buy = 30.0;
input double RSI_Sell = 70.0;
input double LotSize = 0.01;
input int SL_Points = 500; // SL in points (50 pips for 5-digit)
input int TP_Points = 1000; // TP in points
input ulong MagicNumber = 44444;
CTrade trade;
int ema_handle, rsi_handle;
int OnInit()
{
ema_handle = iMA(NULL, 0, EMA_Period, 0, MODE_EMA, PRICE_CLOSE);
rsi_handle = iRSI(NULL, 0, RSI_Period, PRICE_CLOSE);
trade.SetExpertMagicNumber(MagicNumber);
return INIT_SUCCEEDED;
}
void OnTick()
{
// ตรวจว่ามี position อยู่หรือไม่
if(PositionsTotal() > 0)
{
for(int i = PositionsTotal()-1; i >= 0; i--)
{
if(PositionGetTicket(i) > 0 && PositionGetInteger(POSITION_MAGIC) == MagicNumber)
return; // มี position อยู่แล้ว
}
}
// ดึงค่า indicator
double ema[], rsi[];
CopyBuffer(ema_handle, 0, 0, 2, ema);
CopyBuffer(rsi_handle, 0, 0, 2, rsi);
double price = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
double bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);
// Trend filter: ซื้อเฉพาะเมื่อราคาอยู่เหนือ EMA200
bool uptrend = price > ema[0];
bool downtrend = bid = RSI_Buy)
{
double sl = price - SL_Points * SymbolInfoDouble(Symbol(), SYMBOL_POINT);
double tp = price + TP_Points * SymbolInfoDouble(Symbol(), SYMBOL_POINT);
trade.Buy(LotSize, Symbol(), price, sl, tp, "EMA+RSI Buy");
}
// Sell: Downtrend + RSI overbought cross down
if(downtrend && rsi[1] > RSI_Sell && rsi[0]
นี่คือ EA ที่ผมแนะนำมากที่สุด เพราะมี trend filter (EMA 200) ช่วยลด false signals ไม่ซื้อตอนขาลง ไม่ขายตอนขาขึ้น
EA 5: Gold Scalper XAU/USD (MQL5)
EA เฉพาะสำหรับเทรดทอง ใช้ Bollinger Bands squeeze + volume:
//+------------------------------------------------------------------+
//| Gold Scalper EA - MQL5 (Free) |
//| Bollinger Bands breakout for XAUUSD |
//+------------------------------------------------------------------+
#property copyright "iCafeForex.com"
#include
input int BB_Period = 20;
input double BB_Dev = 2.0;
input double LotSize = 0.01;
input int SL_Points = 300;
input int TP_Points = 500;
input ulong Magic = 55555;
CTrade trade;
int bb_handle;
int OnInit()
{
// ตรวจว่าใช้กับ Gold เท่านั้น
if(StringFind(Symbol(), "XAU") = 0; i--)
{
if(PositionGetTicket(i) > 0 && PositionGetInteger(POSITION_MAGIC) == Magic)
return;
}
double upper[], lower[], middle[];
CopyBuffer(bb_handle, 1, 0, 3, upper); // Upper band
CopyBuffer(bb_handle, 2, 0, 3, lower); // Lower band
CopyBuffer(bb_handle, 0, 0, 3, middle); // Middle band
double ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
double bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);
double point = SymbolInfoDouble(Symbol(), SYMBOL_POINT);
// ตรวจ Squeeze: bands แคบ = กำลังจะ breakout
double band_width = (upper[0] - lower[0]) / middle[0] * 100;
// Breakout Up: ราคาปิดเหนือ upper band
if(ask > upper[0] && band_width > 0.5)
{
trade.Buy(LotSize, Symbol(), ask,
ask - SL_Points * point,
ask + TP_Points * point,
"Gold BB Breakout Up");
}
// Breakout Down: ราคาปิดต่ำกว่า lower band
if(bid 0.5)
{
trade.Sell(LotSize, Symbol(), bid,
bid + SL_Points * point,
bid - TP_Points * point,
"Gold BB Breakout Down");
}
}
วิธีติดตั้ง EA บน MT4/MT5
MT4:
- Copy โค้ดด้านบน
- เปิด MT4 → กด F4 (เปิด MetaEditor)
- File → New → Expert Advisor → ตั้งชื่อ
- ลบ code เดิม → วาง code ใหม่
- กด F7 (Compile) → ต้องไม่มี error
- กลับไป MT4 → Navigator → Expert Advisors → ลาก EA ลงบน chart
- ติ๊ก "Allow live trading" → OK
- กดปุ่ม AutoTrading บน toolbar ให้เป็นสีเขียว
MT5:
ขั้นตอนเหมือน MT4 แต่ใช้ MetaEditor ของ MT5 (F4) และ MQL5 syntax
วิธี Backtest EA อย่างถูกต้อง
- เปิด Strategy Tester — MT4: Ctrl+R / MT5: Ctrl+R
- เลือก EA ที่ต้องการทดสอบ
- ตั้ง Symbol: เช่น XAUUSD
- ตั้ง Period: เลือก timeframe ที่ EA ออกแบบมา
- ตั้ง Model: "Every tick" (แม่นที่สุด)
- ตั้ง Date range: อย่างน้อย 3-5 ปี
- กด Start
- ดูผลลัพธ์ที่ต้องสังเกต:
| Metric | ค่าที่ดี | ค่าที่อันตราย |
|---|---|---|
| Profit Factor | > 1.5 | |
| Max Drawdown | > 30% | |
| Win Rate | > 45% | |
| Sharpe Ratio | > 1.0 | |
| Total Trades | > 200 |
เปรียบเทียบ EA ฟรี vs EA เสียเงิน
| ด้าน | EA ฟรี | EA เสียเงิน ($50-500) |
|---|---|---|
| Strategy | ง่าย ตรงไปตรงมา | ซับซ้อนกว่า มี filter มากกว่า |
| Money Management | Fixed lot | Dynamic lot, trailing SL |
| Optimization | ต้องทำเอง | มาพร้อม preset ปรับแต่ง |
| Support | ไม่มี | มี (email/Telegram group) |
| Source code | มี (เรียนรู้ได้) | มักจะ compile แล้ว (ดูโค้ดไม่ได้) |
| Guarantee | ไม่มี | ไม่มี (EA แพงก็ขาดทุนได้) |
คำแนะนำ: เริ่มจาก EA ฟรีก่อน เรียนรู้หลักการ ถ้าเข้าใจแล้วค่อยซื้อ EA ที่มี track record ดี หรือเขียน EA เองได้ดียิ่งกว่า
5 ข้อผิดพลาดที่ต้องระวังเมื่อใช้ EA
- ไม่ backtest ก่อนใช้จริง — backtest อย่างน้อย 3 ปี ด้วย every tick mode
- ไม่ forward test — backtest ดีไม่ได้แปลว่า live จะดี ทดสอบ demo 3 เดือน
- ใช้ Martingale EA — EA ที่เพิ่ม lot ตอนขาดทุน อันตรายมาก พอร์ตแตกได้ในวันเดียว
- รัน EA บนคอมพ์บ้าน — ไฟดับ internet หลุด ต้องใช้ VPS ($5-15/เดือน)
- ไม่ monitor EA — ปล่อยไว้นานไม่ดู ตลาดเปลี่ยน EA อาจขาดทุนหนัก ตรวจสอบทุกสัปดาห์
EA ไหนเหมาะกับมือใหม่?
จากทั้ง 5 EA ด้านบน แนะนำสำหรับมือใหม่:
- อันดับ 1: EA 4 (EMA + RSI Combo) — มี trend filter ลด false signals ดีที่สุด
- อันดับ 2: EA 1 (MA Crossover) — ง่ายที่สุด เข้าใจหลักการได้เร็ว
- อันดับ 3: EA 5 (Gold Scalper) — ถ้าเทรดทอง XAU/USD เป็นหลัก
สิ่งสำคัญ: ทดสอบบน Demo ก่อนเสมอ อย่างน้อย 3 เดือน ถ้าผ่านค่อยเริ่ม live ด้วยเงินน้อย
FAQ — โค้ด EA Forex ฟรี
โค้ด EA ฟรีใช้ได้จริงไหม?
ได้ครับ EA ง่ายๆ อย่าง MA Crossover ทำงานได้ดีใน trending market แต่ต้อง backtest + forward test ก่อนใช้จริง EA ฟรีไม่ได้แปลว่าแย่ บาง EA ฟรีดีกว่า EA ที่ขายกันหลักพันด้วยซ้ำ
EA MQL4 กับ MQL5 ต่างกันยังไง?
MQL4 ใช้กับ MT4 syntax ง่ายกว่า MQL5 ใช้กับ MT5 เป็น OOP มี library Trade.mqh ที่สะดวก ถ้าเริ่มเขียนใหม่แนะนำ MQL5 เพราะ MT5 เป็นอนาคต
EA ทำกำไรได้จริงไหม?
ได้ แต่ไม่รับประกัน EA automate strategy ที่คุณเลือก ถ้า strategy ดี EA ก็ทำกำไร ถ้า strategy แย่ EA ก็ขาดทุน สิ่งสำคัญคือ money management และ risk control
รัน EA ต้องเปิดคอมพ์ตลอดไหม?
ใช่ครับ EA ต้องรัน 24/5 แนะนำใช้ VPS (Virtual Private Server) ราคา $5-15/เดือน เลือก VPS ที่อยู่ใกล้ broker server เพื่อ latency ต่ำ
Martingale EA ดีไหม?
ไม่แนะนำเลยครับ Martingale เพิ่ม lot ทุกครั้งที่ขาดทุน backtest อาจสวยเพราะไม่เคยเจอ drawdown ยาว แต่ live ตลาดมี extreme move ได้ พอร์ตแตกได้ในวันเดียว
EA Semi-Auto คืออะไร?
EA ที่ช่วยเข้า-ออก order ให้อัตโนมัติ แต่ต้องกำหนด direction เอง (Buy/Sell) เหมือนมี assistant คอยกด order ให้ ลดอารมณ์ แต่ยังใช้ judgment ของเราอยู่ ดาวน์โหลด EA Semi-Auto ฟรีได้ที่ XM Signal
เขียน EA เองต้องเรียนอะไร?
เรียน MQL4/5 จาก MQL5.com Documentation ฟรี ถ้ามีพื้นฐาน programming (C/C++, Python) เรียนรู้ได้ใน 1-2 สัปดาห์ ถ้าไม่มีพื้นฐานเลย อาจใช้เวลา 1-2 เดือน
จะหา EA ฟรีเพิ่มเติมได้ที่ไหน?
MQL5.com Marketplace มี EA ฟรีเยอะมาก (ไม่ใช่ทุกตัวจะดี) ดูรีวิว + backtest ก่อนใช้ หรือดาวน์โหลด EA จาก XM Signal — EA ฟรี 2026
🤖 EA ฟรี: ดาวน์โหลด Panel SMC MT5 ฟรี จาก XM Signal — EA Semi-Auto พร้อมใช้งาน ไม่ต้องเขียน code เอง
อ่านบทความเทรดเพิ่มเติม:


TH ▼
English
Tiếng Việt
Indonesia
Melayu
ខ្មែរ
ລາວ
日本語
한국어
简体中文