ข่าวเศรษฐกิจมีผลต่อการเทรด Forex เป็นอย่างมาก ซึ่งก็จะมีเทรดเดอร์บางท่านเทรดแบบเลี่ยงข่าว (ไม่เทรดตอนข่าวกล่องแดงกำลังออก) และบางท่านก็เลือกที่จะเทรดชนข่าว (เทรดช่วงที่ข่าวแรงออก) ครับ ซึ่งปกติแล้วเราสามารถตามข่าวเศรษฐกิจได้จากหลายแหล่ง แต่เว็บที่เป็นที่นิยมคือ forexfactory.com และ mql5.com ครับ
การกรองข่าว คือ การดึงข้อมูลความรุนแรงของข่าวนั้น ๆ มาในระบบ EA ของเราเพื่อที่จะเทรดหรือไม่เทรดช่วงที่ข่างนั้น ๆ ออก ซึ่งปัจจุบันก็มีหลากหลายวิธีครับ แต่ในบทความนี้เราจะบอกวิธีที่ใช้ Original blocks จาก fxDreema และ Custom code ด้วยตัวเอง
News Filter MT4
ราว ๆ ปี 2018 ได้มีการเผยแพร่ Custom code ที่สามารถการดึงข่าวจาก forexfactory.com และ investing.com มาเพื่อใช้บน mt4 ได้แต่หลังต้นปี 2023 เป็นต้นมากลับใช้ไม่ได้ ซึ่งอาจจะมีการเปลี่ยนแปลงอะไรบางอย่างไป อย่างไรก็ตามเราสามารถใช้กรองข่าวแบบกึ่งอัตโนมัติแบบ DIY ได้ครับ
การตั้งค่า Constants (Inputs)
Constants สำหรับสร้างระบบกรองข่าวแบบ DIY จะมีหลัก ๆ อยู่ 3 constants ต่อ Block 1 วัน ยกตัวอย่างเช่น วันจันทร์ เราก็จะสร้าง constants ดังนี้
Type |
Name |
Value |
bool | Monday | true |
string | Start_Trade_M | 01:00 |
string | Stop_Trade_M | 01:30 |
โดยเราจะเพิ่ม Constants แบบนี้ไปจนครบ 5 วันครับ ข้อดีของการทำแยกแบบนี้คือ เราสามารถเลือกได้ครับว่าเราจะเทรดวันไหน หรือ ไม่เทรดวันไหน และหากเทรดเดอร์ต้องการเพิ่มเวลาทำงานของอีกเพราะวันนั้นอาจจะมีข่าวแรง 2 กล่อง เราก็สามารถเพิ่ม Constants “Start_Trade / Stop_Trade” ได้ครับ
กรณีที่เราต้องการเทรดชนข่าว
วิธีการเขียนระบบเทรดชนข่าวแบบนี้ทำได้ง่าย ๆ เพียง 4 ขั้นตอนเท่านั้นเอง
- สร้าง Block Weekday filter (อยู่ในหมวด Time Filter) เพื่อที่จะให้เราสามารถเลือกวันเทรดได้ โดยเราจะเลือก Time source เป็น Server time
- สร้าง Block Time filter โดยเราจะตั้ง Strat time mode เป็น Text format และตั้ง End time mode เป็น (absolute) Text format
- เชื่อมขึ้นมาเชื่อม Block Weekday เข้ากับ Time filter
- ให้เราสร้างระบบเทรดตามกลยุทธ์ที่เราต้องการ โดยวิธีการเชื่อมคือ เชื่อมจากปุ่มสีส้มไปยังปุ่มสีขาว ดั่งรูปที่ 2
กรณีที่เราต้องการเลี่ยงข่าว
หากเราต้องการเทรดแบบเลี่ยงข่าว ก็สามารถใช้ระบบเดิมที่เราสร้างได้เลยครับ เพียงแต่เราเปลี่ยนวิธีการเชื่อมระบบการกรองข่าวเข้ากับกลยุทธ์การเทรดโดยการ เชื่อมจากปุ่ม “สีเหลือง” ไปยังปุ่มสีขาวของกลยุทธ์ตามรูปที่ 3 ครับ
News Filter MT5
สำหรับ mt5 เราจะสร้างแบบ mt4 ก็ได้ครับ แต่เนื่องจากเราได้รับความรู้จะตัวละครลึกลับภายในกลุ่ม fxDreema Academy ของเราและมีเจตนาแบ่งปันความรู้เหล่านี้ให้เพื่อน ๆ โดยไม่ประสงค์ออกนามครับ
การกรองข่าวที่ว่านี้จะเป็นการสร้าง Block ใหม่ขึ้นมาเองด้วย Function ของ fxDreema Studio แล้วทำการ Coding เข้าไปนั่นเองครับ แต่ไม่ต้องตกใจหากใครเขียน Code ไม่เป็น เพราะทางเรามีแจกให้แน่นอนครับ ขั้นตอนมีดังนี้ครับ
- ให้เรากด New Project เพื่อสร้าง mql5 ขึ้นมาก่อน --> แล้วให้กดไปที่ช่อง Custom เพื่อเปลี่ยนมาเลือกใช้ Block ที่เราสร้างขึ้น (ตอนนี้จะไม่เห็นอะไรเนื่องจากมันยังไม่ได้ถูกสร้าง)
- ให้กด Create Custom Blocks เพื่อสร้าง Block ใหม่ขึ้นมา
- เมื่อกดแล้วจะมีหน้าต่างของ fxDreema Studio ขึ้นมา ให้เราไปตั้งชื่อ Block ที่เราต้องการสร้าง จากนั้นกด Create ตามรูปที่ 4
- ให้เรา Copy Mql5 code ชุดที่ 1 และชุดที่ 2 เอาไปวางไว้ตามที่แสดงในรูปที่ 5 โดยเราสามารถ Download ได้จากที่นี่
- จากนั้นให้เรากดสร้าง Parameters ใหม่ที่จะใช้ใน Block ได้แก่ country_code, currency_code, minbeforeEvent, minAfterEvent, min_event_importance, และ verbose โดยเพื่อน ๆ สามารถใส่ Data type และ Default value ได้ตามรูปเลย (ในส่วน data type ของปฏิทินข่าวให้ใส่ ENUM_CALENDAR_EVENT_IMPORTANCE ครับ)
- เมื่อกรอกทุกอย่างครบแล้วให้ลองตรวจทานดูอีกซัก 1-2 รอบเพื่อความชัวร์ --> จากนั้นให้กด SAVE CHANGES ได้เลยครับ
- เราก็จะได้ Block News Filter ที่ใช้บน mt5 ได้แล้วครับ 😀 อ้อ.. บอกนิดนึงครับว่าการดึงข่าวแบบนี้จะเป็นการดึงจาก mql5 calendar ครับ ซึ่งจะมีความละเอียดกว่าของ forexfactory.com เล็กน้อยครับ
การตั้งค่า Constants (Inputs)
- Country_code = รหัสประเทศซึ่งมี 2 หลัก (แสดงตารางด้านล่าง)
- Currency_code = รหัสสสกุลเงินซึ่งมี 3 หลัก (แสดงตารางด้านล่าง)
- Minutes before event = จำนวนนาทีก่อนข่าวออก
- Minutes after event = จำนวนนาทีหลังข่าวออก
- Minimum event important = ระกับความรุนแรงของข่าว โดย 3 ถือว่าแรงสุด (กล่องแดง), 2 คือกล่องส้ม, 1 คือกล่องเหลือง, 0 คือวันหยุด
- Verbose = การแสดงข้อความ หากต้องการให้แสงกด true
Name | country code |
currency code |
European Union | EU | EUR |
United States | US | USD |
Canada | CA | CAD |
Australia | AU | AUD |
New Zealand | NZ | NZD |
Japan | JP | JPY |
China | CN | CNY |
United Kingdom | GB | GBP |
Switzerland | CH | CHF |
Germany | DE | EUR |
France | FR | EUR |
Italy | IT | EUR |
Spain | ES | EUR |
Brazil | BR | BRL |
South Korea | KR | KRW |
Worldwide | WW | ALL |
วิธีใช้เทรดชนข่าว และ เทรดเลี่ยงข่าว
- วิธีเทรดชนข่าวให้เชื่อม Block News Filter จากปุ่ม “สีส้ม” ไปยังปุ่ม “สีขาว” ของกลยุทธ์ของเพื่อน ๆ
- หากต้องการเทรดเลี่ยงข่าวให้เชื่อม Block News Filter จากปุ่ม “สีเหลือง” ไปยังปุ่ม “สีขาว” ของกลยุทธ์ของเพื่อน ๆ
สรุป
การกรองข่าวเป็นสิ่งที่มีประโยชน์ และเพื่อน ๆ หลายคนกำลังตามวาวิธีทำด้วย fxDreema ซึ่งบทความนี้เราตั้งใจทำออกมาให้เป็นวิทยาทาน ทีมงานทุกท่านเชื่อว่าจะเป็นประโยชน์ต่อการเขียน EA ขอให้มีความสุขในการเขียน EA และการเทรด Forex ครับ
ทีมงาน eaforexcenter.com
กลับสู่สารบัญเพื่อเลือกเรียนบทอื่น ๆ
พอดีว่าใช้เป็นฟิลเตอร์ News Filter MT5 ที่ต้องทำโค้ชเองแล้วมันไม่สามารถ back test ได้เนื่องจากอะไรครับ
เนื่องจากการ backtest ไม่มีข้อมูลข่าวให้ดึงมาใช้ครับ เขามีเพียงชุดข้อมูลราคาเท่านั้นครับ
รหัสสสกุลเงินซึ่งมี 3 หลัก เช่น usd คือเราสามารถใช้ currency code นี้เลยใช่ไหมคับ มันจะออกคำสั่ง กับ USD ทั้งหมดใช่ไหมครับ / ไม่ใช่ ใส่อะไรเพิ่ม ตัวที่ขึ้นต้นและห้อยท้ายด้วย
USD เช่น USDJPY ,USDCAD
EUR เช่น EURUSD EURGBP
AUD เช่น AUDJPY AUDUSD
ประมานนี้ครับ
ระบบจะทำการกรองเฉพาะข่าวที่เราใส่ไปครับ เช่น ให้ใส่ USD เขาก็จะคัดกรองข่าว USD ให้ครับ ในกรณีที่เราเทรด major fx เช่น USD/JPY, USD/CAD เขาจะเลือกเฉพาะข่าว USD ครับ หากต้องการให้คัดกรองมากกว่า 1 ข่าว เราสามารถเพิ่ม block เอาเองได้ครับ
ผมลองทำตาม create custom block ของ MT5 แล้ว ไปขึ้น block ของ MT4 ครับ ไม่ทราบว่าเป็นเหมือนกันมั๊ยครับ
ปกติไม่เป็นครับ อาจจะต้องลองเช็คตัวเลือก mq4 กับ mq5 ก่อนเข้าไป custom fxstudio ใหม่อีกรอบครับ
คอนเท้นดี ขอบคุณตัวละครลับด้วยครับ ที่แบ่งปันได้ฟังชั่นดีๆ ไว้เพิ่มคุณภาพ EA
ขอบคุณมาก ๆ เลยครับ