MQL4/MQL5 Reference
- MQL4/MQL5 Reference
บทความนี้เป็นคู่มืออ้างอิงสำหรับผู้เริ่มต้นที่ต้องการทำความเข้าใจเกี่ยวกับภาษา MQL4 และ MQL5 ซึ่งเป็นภาษาโปรแกรมที่ใช้ในการพัฒนาระบบเทรดอัตโนมัติ (Expert Advisors หรือ EAs) ตัวบ่งชี้ (Indicators) และสคริปต์ (Scripts) สำหรับแพลตฟอร์ม MetaTrader 4 (MT4) และ MetaTrader 5 (MT5) ซึ่งเป็นแพลตฟอร์มยอดนิยมสำหรับการซื้อขาย Forex และ Binary Options. เราจะครอบคลุมพื้นฐานของภาษา, โครงสร้าง, ฟังก์ชันที่สำคัญ, และความแตกต่างระหว่าง MQL4 และ MQL5
MQL4 และ MQL5 คืออะไร?
MQL4 (MetaQuotes Language 4) และ MQL5 (MetaQuotes Language 5) เป็นภาษาโปรแกรมที่มีโครงสร้างคล้ายกับ C++ พัฒนาโดย MetaQuotes Software Corp. เพื่อใช้ในการเขียนโปรแกรมที่ทำงานบนแพลตฟอร์ม MetaTrader 4 และ MetaTrader 5 ตามลำดับ MQL4 ถูกใช้สำหรับ MT4 ในขณะที่ MQL5 ถูกใช้สำหรับ MT5
- **Expert Advisors (EAs):** โปรแกรมที่ทำการเทรดโดยอัตโนมัติตามเงื่อนไขที่กำหนดไว้ล่วงหน้า กลยุทธ์การเทรดอัตโนมัติ
- **Indicators:** เครื่องมือที่ใช้ในการวิเคราะห์กราฟราคาและให้สัญญาณการซื้อขาย การวิเคราะห์ทางเทคนิค
- **Scripts:** โปรแกรมที่ทำงานเพียงครั้งเดียวเมื่อถูกเรียกใช้งาน เช่น การปิดคำสั่งซื้อขายทั้งหมด การจัดการคำสั่งซื้อขาย
ความแตกต่างระหว่าง MQL4 และ MQL5
แม้ว่าทั้งสองภาษาจะมีความคล้ายคลึงกัน แต่ก็มีความแตกต่างที่สำคัญหลายประการ:
| MQL4 | MQL5 | | ตลาดที่รองรับ: Forex, CFDs | ตลาดที่รองรับ: Forex, CFDs, Futures, Stocks | | ประเภทคำสั่ง: Instant Execution, Market Execution | ประเภทคำสั่ง: Market Execution, Exchange Execution | | การจัดการคำสั่ง: จำกัดกว่า | การจัดการคำสั่ง: มีความยืดหยุ่นมากกว่า | | โครงสร้างข้อมูล: จำกัดกว่า | โครงสร้างข้อมูล: หลากหลายกว่า | | Optimization: ช้ากว่า | Optimization: เร็วกว่า | | การเขียนโปรแกรมเชิงวัตถุ: จำกัด | การเขียนโปรแกรมเชิงวัตถุ: ครบถ้วนกว่า | | Backtesting: น้อยกว่า | Backtesting: แม่นยำและรวดเร็วกว่า Backtesting | |
MQL5 ได้รับการออกแบบมาให้มีประสิทธิภาพและความยืดหยุ่นมากกว่า MQL4 ทำให้เหมาะสำหรับการเทรดในตลาดที่หลากหลายและใช้กลยุทธ์ที่ซับซ้อนมากขึ้น
พื้นฐานของภาษา MQL4/MQL5
- ตัวแปรและประเภทข้อมูล
MQL4/MQL5 รองรับประเภทข้อมูลพื้นฐานดังนี้:
- `int`: จำนวนเต็ม
- `double`: จำนวนจริง
- `bool`: ค่าความจริง (true หรือ false)
- `string`: ข้อความ
- `datetime`: วันที่และเวลา
ตัวอย่าง:
```mql4 int myInteger = 10; double myDouble = 3.14; string myString = "Hello"; ```
- ตัวดำเนินการ
MQL4/MQL5 รองรับตัวดำเนินการทางคณิตศาสตร์, ตัวดำเนินการเปรียบเทียบ, และตัวดำเนินการตรรกะ เช่น:
- `+`, `-`, `*`, `/`: ตัวดำเนินการทางคณิตศาสตร์
- `==`, `!=`, `>`, `<`, `>=`, `<=`: ตัวดำเนินการเปรียบเทียบ
- `&&`, `||`, `!`: ตัวดำเนินการตรรกะ
- โครงสร้างควบคุม
MQL4/MQL5 มีโครงสร้างควบคุมที่ใช้ในการควบคุมการไหลของโปรแกรม:
- `if-else`: ใช้ในการตัดสินใจว่าจะทำอะไรตามเงื่อนไขที่กำหนด การตัดสินใจในการเทรด
- `for`: ใช้ในการทำซ้ำชุดคำสั่งเป็นจำนวนครั้งที่กำหนด การวนซ้ำในโปรแกรม
- `while`: ใช้ในการทำซ้ำชุดคำสั่งตราบเท่าที่เงื่อนไขยังเป็นจริง
- `switch`: ใช้ในการเลือกชุดคำสั่งที่จะทำงานตามค่าของตัวแปร
- ฟังก์ชัน
ฟังก์ชันคือชุดคำสั่งที่ทำงานเฉพาะอย่าง และสามารถเรียกใช้ได้จากส่วนอื่น ๆ ของโปรแกรม MQL4/MQL5 มีฟังก์ชันที่กำหนดไว้ล่วงหน้ามากมาย และคุณยังสามารถสร้างฟังก์ชันของคุณเองได้
ตัวอย่าง:
```mql4 int MyFunction(int a, int b) {
return a + b;
} ```
ฟังก์ชันที่สำคัญใน MQL4/MQL5
- การเข้าถึงข้อมูลตลาด
- `iClose()`: ดึงข้อมูลราคาปิดของแท่งเทียน
- `iOpen()`: ดึงข้อมูลราคาเปิดของแท่งเทียน
- `iHigh()`: ดึงข้อมูลราคาสูงสุดของแท่งเทียน
- `iLow()`: ดึงข้อมูลราคาต่ำสุดของแท่งเทียน
- `iVolume()`: ดึงข้อมูลปริมาณการซื้อขาย การวิเคราะห์ปริมาณการซื้อขาย
- `SymbolInfoDouble()`: ดึงข้อมูลเกี่ยวกับสัญลักษณ์ เช่น Bid, Ask, Spread
- การจัดการคำสั่งซื้อขาย
- `OrderSend()`: เปิดคำสั่งซื้อขายใหม่ การเปิดคำสั่งซื้อขาย
- `OrderClose()`: ปิดคำสั่งซื้อขายที่มีอยู่ การปิดคำสั่งซื้อขาย
- `OrderModify()`: แก้ไขคำสั่งซื้อขายที่มีอยู่
- `OrdersTotal()`: นับจำนวนคำสั่งซื้อขายที่เปิดอยู่
- การทำงานกับ Indicators
- `iMA()`: คำนวณค่า Moving Average Moving Average
- `iRSI()`: คำนวณค่า Relative Strength Index Relative Strength Index (RSI)
- `iMACD()`: คำนวณค่า Moving Average Convergence Divergence MACD
- `iBands()`: คำนวณค่า Bollinger Bands Bollinger Bands
ตัวอย่างโปรแกรม MQL4/MQL5
- Simple Moving Average (SMA) Indicator
```mql4 //+------------------------------------------------------------------+ //| Simple Moving Average Indicator | //+------------------------------------------------------------------+
- property indicator_chart_window
int Period = 5; // กำหนดช่วงเวลาของ SMA
double SMAValue;
int init() {
return 0;
}
int deinit() {
return 0;
}
int start() {
SMAValue = iMA(NULL, 0, Period, 0, MODE_SMA, PRICE_CLOSE, 0); Plot1(SMAValue, "SMA", COLOR_BLUE, STYLE_SOLID, 2); return 0;
} //+------------------------------------------------------------------+ ```
โปรแกรมนี้จะคำนวณค่า Simple Moving Average และแสดงผลบนกราฟ
- Simple Expert Advisor (EA)
```mql4 //+------------------------------------------------------------------+ //| Simple Expert Advisor | //+------------------------------------------------------------------+
- property copyright "Your Name"
- property link "Your Website"
extern double Lots = 0.1; extern int TakeProfit = 50; extern int StopLoss = 25;
int init() {
return 0;
}
int deinit() {
return 0;
}
int start() {
if(Close[0] > Open[0]) {
// Buy if the current candle is bullish
OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss * Point, Ask + TakeProfit * Point, "My EA", 12345, 0, GREEN);
} else {
// Sell if the current candle is bearish
OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Bid + StopLoss * Point, Bid - TakeProfit * Point, "My EA", 12345, 0, RED);
}
return 0;
} //+------------------------------------------------------------------+ ```
โปรแกรมนี้จะเปิดคำสั่งซื้อ BUY เมื่อแท่งเทียนปัจจุบันเป็นแท่งเขียว และเปิดคำสั่งขาย SELL เมื่อแท่งเทียนปัจจุบันเป็นแท่งแดง
การดีบักและทดสอบ
การดีบัก (Debugging) เป็นกระบวนการค้นหาและแก้ไขข้อผิดพลาดในโปรแกรม MQL4/MQL5 สามารถใช้เครื่องมือ Debugger ที่มีอยู่ใน MetaEditor เพื่อตรวจสอบการทำงานของโปรแกรมทีละบรรทัด
การทดสอบ (Testing) เป็นกระบวนการตรวจสอบว่าโปรแกรมทำงานตามที่คาดหวังหรือไม่ สามารถใช้ Strategy Tester ใน MetaTrader 4/5 เพื่อทดสอบโปรแกรมกับข้อมูลในอดีต (Historical Data) การทดสอบกลยุทธ์
แหล่งข้อมูลเพิ่มเติม
- [MQL4 Documentation](https://www.mql4.com/docs)
- [MQL5 Documentation](https://www.mql5.com/en/docs)
- [MQL4 Forum](https://www.mql4.com/forum)
- [MQL5 Forum](https://www.mql5.com/en/forum)
- [Binary Options Strategies](https://www.binaryoptionsuniversity.com/strategies/)
- [Technical Analysis Tools](https://www.investopedia.com/technical-analysis/)
- [Candlestick Patterns](https://www.schoolofpipsology.com/candlesticks/)
- [Fibonacci Retracements](https://www.babypips.com/learn-forex/fibonacci)
- [Support and Resistance](https://www.investopedia.com/terms/s/supportandresistance.asp)
- [Trend Following Strategies](https://www.forexrisk.com/trading-strategies/trend-following/)
- [Breakout Strategies](https://www.babypips.com/learn-forex/breakout-trading/)
- [Scalping Strategies](https://www.dailyfx.com/forex/education/trading-strategies/scalping/)
- [Day Trading Strategies](https://www.investopedia.com/terms/d/daytrading.asp)
- [Swing Trading Strategies](https://www.thestreet.com/markets/swing-trading-14997919)
- [Elliott Wave Theory](https://www.investopedia.com/terms/e/elliottwavetheory.asp)
- [Ichimoku Cloud](https://www.babypips.com/learn-forex/ichimoku-cloud/)
สรุป
MQL4/MQL5 เป็นภาษาโปรแกรมที่ทรงพลังที่ช่วยให้คุณสามารถสร้างระบบเทรดอัตโนมัติ, ตัวบ่งชี้, และสคริปต์ที่ปรับแต่งได้ตามความต้องการของคุณ การทำความเข้าใจพื้นฐานของภาษาและฟังก์ชันที่สำคัญจะช่วยให้คุณสามารถพัฒนาเครื่องมือเทรดที่มีประสิทธิภาพและเพิ่มโอกาสในการทำกำไรในการซื้อขาย การพัฒนาเครื่องมือเทรด. การฝึกฝนและการทดสอบอย่างสม่ำเสมอเป็นสิ่งสำคัญในการพัฒนาทักษะการเขียนโปรแกรม MQL4/MQL5 และสร้างระบบเทรดที่ประสบความสำเร็จ
เริ่มต้นการซื้อขายตอนนี้
ลงทะเบียนกับ IQ Option (เงินฝากขั้นต่ำ $10) เปิดบัญชีกับ Pocket Option (เงินฝากขั้นต่ำ $5)
เข้าร่วมชุมชนของเรา
สมัครสมาชิกช่อง Telegram ของเรา @strategybin เพื่อรับ: ✓ สัญญาณการซื้อขายรายวัน ✓ การวิเคราะห์เชิงกลยุทธ์แบบพิเศษ ✓ การแจ้งเตือนแนวโน้มตลาด ✓ วัสดุการศึกษาสำหรับผู้เริ่มต้น

