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

Mike 2011.02.02 03:03 46 0 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.                |//+------------------------------------------------------------------+intOnInit()
  {
   //--- Add your code here...
   return(0);
  }
  
//+------------------------------------------------------------------+//| Expert multi tick function                                       |//| Use this function instead of the standard OnTick() function      |//+------------------------------------------------------------------+voidOnTick(string symbol)
  {
   //--- Add your code here...
   Print("New event on symbol: ",symbol);
  }
  
//+------------------------------------------------------------------+//| ChartEvent function                                              |//| This function must be declared, even if it empty.                |//+------------------------------------------------------------------+voidOnChartEvent(constint id,         // event id
                  constlong& lparam,   // event param of long type
                  constdouble& dparam, // event param of double type
                  conststring& sparam) // event param of string type
  {
   //--- Add your code here...
  }
  
//+------------------------------------------------------------------+//| Expert deinitialization function                                 |//+------------------------------------------------------------------+voidOnDeinit(constint 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