หน้าแรก การเทรดด้วยระบบ โพสต์

คู่มือการใช้ Multicurrency ใน MetaTrader 5 สำหรับเทรดเดอร์

ไฟล์แนบ
280.zip (5 KB, ดาวน์โหลด 0 ครั้ง)

สวัสดีครับเพื่อน ๆ เทรดเดอร์! วันนี้เรามาพูดถึงฟีเจอร์ใหม่ของ MetaTrader 5 ที่ทุกคนรอคอยกันนะครับ นั่นก็คือการใช้งานแบบหลายสกุลเงิน (Multicurrency) ในฟังก์ชัน OnTick(string symbol) ที่จะช่วยให้การเทรดของเรามีประสิทธิภาพมากยิ่งขึ้น!

ข้อดีของการใช้งาน Multicurrency:

  • สามารถใช้งานได้ทั้งบัญชีทดลองและบัญชีจริง
  • ตั้งค่าได้ง่าย ไม่ยุ่งยาก
  • สามารถปรับแต่งรายการเหตุการณ์ใน OnTick(string symbol): NewTick และ/หรือ NewBar ได้ตามต้องการ
  • สามารถกำหนดรายการสัญลักษณ์ได้ (สามารถเลือกได้จาก Market Watch หรือบางสัญลักษณ์ที่ระบุ)
  • เมื่อทำงานกับสัญลักษณ์จาก Market Watch สามารถจัดการเหตุการณ์ได้อย่างรวดเร็วใน OnTick(string symbol)
  • ไม่จำเป็นต้องเข้าใจรายละเอียดการทำงานทั้งหมด เพราะโค้ดจะถูกเก็บในไฟล์ include
  • สามารถใช้ได้ใน Strategy Tester

ตัวอย่างเทมเพลตของ Expert Advisor มีลักษณะดังนี้:

//+------------------------------------------------------------------+
//|                                            OnTick(string symbol).mq5 |
//|                                            Copyright 2010, Lizar |
//|                            https://www.mql5.com/ru/users/Lizar |
//+------------------------------------------------------------------+
#define VERSION       "1.00 Build 1 (01 Fab 2011)"

#property copyright   "Copyright 2010, Lizar"
#property link        "https://www.mql5.com/ru/users/Lizar"
#property version     VERSION
#property description "Template of the Expert Advisor"
#property description "with multicurrency OnTick(string symbol) event handler"

//+------------------------------------------------------------------+
//|                MULTICURRENCY MODE SETTINGS                       |
//|           of OnTick(string symbol) event handler                 |
//|                                                                  |
//| 1.1 List of symbols needed to proceed in the events:             |
#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"
//| 1.2 If you want all symbols from Market Watch, use this:         |
//#define  SYMBOLS_TRADING    "MARKET_WATCH"
//|     Note: Select only one way from 1.1 or 1.2.                   |
//|                                                                  |
//| 2.  Event type for OnTick(string symbol):                        |
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//|     Note: the event type must corresponds to the                 |
//|                 ENUM_CHART_EVENT_SYMBOL enumeration.             |
//|                                                                  |
//| 3.  Include file:                                                |
#include <OnTick(string symbol).mqh>
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//| This function must be declared, even if it empty.                |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Add your code here...
   return(0);
  }
  
//+------------------------------------------------------------------+
//| Expert multi tick function                                       |
//| Use this function instead of the standard OnTick() function      |
//+------------------------------------------------------------------+
void OnTick(string symbol)
  {
   //--- Add your code here...
   Print("New event on symbol: ",symbol);
  }
  
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//| This function must be declared, even if it empty.                |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // event id
                  const long& lparam,   // event param of long type
                  const double& dparam, // event param of double type
                  const string& sparam) // event param of string type
  {
   //--- Add your code here...
  }
  
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   //--- Add your code here...
  }

//+------------------------------ end -------------------------------+

ฟีเจอร์เพิ่มเติม:

1. การตั้งค่า

การตั้งค่าทั้งหมดสามารถปรับแต่งได้โดยใช้คำสั่ง #define สำหรับการทำงานของฟังก์ชัน OnTick(string symbol) คุณต้องระบุแค่สองพารามิเตอร์เท่านั้นคือ: SYMBOLS_TRADING และ CHART_EVENT_SYMBOL ตัวแรก (SYMBOLS_TRADING) จะกำหนดรายชื่อสัญลักษณ์ที่ใช้สำหรับเหตุการณ์ ส่วนตัวที่สอง (CHART_EVENT_SYMBOL) จะกำหนดประเภทเหตุการณ์สำหรับทุกสัญลักษณ์

SYMBOLS_TRADING สามารถกำหนดได้ว่า:

#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"

รายการต้องอยู่ในรูปแบบของสตริง แยกด้วยเครื่องหมายจุลภาค และรายการจะสิ้นสุดเมื่อถึงบรรทัดใหม่

SYMBOLS_TRADING สามารถกำหนดได้ว่า:

#define  SYMBOLS_TRADING    "MARKET_WATCH"

วิธีนี้หมายความว่าทุกสัญลักษณ์จาก Market Watch จะถูกใช้ ซึ่งสามารถใช้ในการเปลี่ยนรายชื่อสัญลักษณ์ได้อย่างรวดเร็ว

2. ไฟล์ Include.

ไฟล์ #include OnTick(string symbol).mqh เป็นไฟล์ที่จำเป็นสำหรับการทำงานของฟังก์ชัน OnTick(string symbol) ซึ่งทำให้การใช้งานง่ายขึ้น ฟังก์ชันมาตรฐานบางตัวต้องประกาศในโค้ดของ Expert Advisor แม้ว่าอาจจะว่างเปล่า

3. Strategy Tester.

ตามที่ทราบกันดีว่า (ในปัจจุบัน) OnChartEvent ไม่รองรับใน Strategy Tester เพื่อแก้ปัญหานี้ ได้มีการใช้ตัวแปรทั่วไประดับโลกในการจัดการเหตุการณ์ วิธีนี้จะใช้เฉพาะใน Strategy Tester เท่านั้น ในกรณีอื่น ๆ (ในบัญชีจริง/ทดลอง) เหตุการณ์จะถูกประมวลผลผ่าน OnChartEvent

ฟีเจอร์นี้ ใน Strategy Tester ฟังก์ชัน OnTick(string symbol) จะทำงานตามคำติชมของสัญลักษณ์ที่ระบุในการตั้งค่าของ Strategy Tester กล่าวคือ มันทำงานคล้ายกับ OnTick() แต่จะถูกเรียกเมื่อมีการส่งสัญญาณใหม่ในสัญลักษณ์ที่เลือก สำหรับการทำงานกับ Strategy Tester ต้องระบุ SYMBOLS_TRADING เป็นรายชื่อสัญลักษณ์

4. "สายลับ".

มันใช้ "สายลับ" (เอเจนต์-อินดิเคเตอร์) ไฟล์ "Spy Control panel MCM.ex5" ต้องอยู่ในโฟลเดอร์ \MQL5\Indicators\

5. ไฟล์จาก archive ต้องถูกแตกไฟล์เข้าไปในโฟลเดอร์ \MQL5 ไฟล์ที่จำเป็น:

    • /MQL5/Experts/OnTick(string symbol).mq5 - ตัวอย่างของ Expert Advisor, โค้ดต้นฉบับของเทมเพลต;
    • /MQL5/Experts/OnTick(string symbol).ex5 - ตัวอย่างของ Expert Advisor ไฟล์ที่ถูกคอมไพล์;
    • /MQL5/Indicators/Spy Control panel MCM.mq5 - เอเจนต์-อินดิเคเตอร์, โค้ดต้นฉบับ;
    • /MQL5/Indicators/Spy Control panel MCM.ex5 - เอเจนต์-อินดิเคเตอร์, ไฟล์ที่ถูกคอมไพล์;
    • /MQL5/Include/OnTick(string symbol).mqh - ไฟล์ include ที่มีฟังก์ชันทั้งหมดที่จำเป็นสำหรับการทำงานของฟังก์ชัน OnTick(string symbol)

โพสต์ที่เกี่ยวข้อง

ความคิดเห็น (0)