|
Post by iamgotzaa on May 29, 2016 16:27:58 GMT 7
กรองข่าว และ การใช้งานเบื้องต้น
โค้ดใช้แหล่งข่าวจาก forexfactory.com ชื่อย่อว่า ffcal ลองถามอากู๋ได้ ข้อมูลมาในรูปแบบ XML www.forexfactory.com/ffcal_week_this.xmlซึ่งจะอัพเดททุกๆสัปดาห์ครับ หลักการ เมื่อใช้ webrequest function ของ mql4 มาก็จะได้เป็น array char format จากนั้นแปลงให้เป็น string ยาวๆ จากนั้นก็ซอยเป็น array และตัด tag xml ออก ก็จะได้ข้อมูลออกมา ดังนั้น ถ้าเราใช้งานยาวๆ เกิน 1 สัปดาห์ขึ้นไป ต้องทำให้มั่นใจด้วยว่า เราทำให้รีเฟรชข้อมูลทุกครั้งด้วยครับ อย่าลืม!!! ตั้ง mt4 ให้เปิดดึงข่าวจากเวปได้ด้วยก่อนนะครับ thaiea.freeforums.net/thread/6/web-request-mt4FFCALClass.mqh (32.21 KB) Attachments:ffcal_example1.mq4 (2.66 KB)
|
|
|
Post by iamgotzaa on May 29, 2016 17:28:27 GMT 7
ตัวอย่างการใช้งานนะครับ เริ่มต้นด้วยการ เพิ่มไฟล์ FFCALClass.mqh แล้วจะต้องเรียกหาอีกสองไฟล์ เดี๋ยวถ้ามีโอกาสก็จะแนะนำการใช้งานต่อไป MQL4OBJ.mqh (108.52 KB) SmallFunc.mqh (66.57 KB) จากนั้นก็ประกาศ object ffcal1 ซึ่งเราก็จะใช้ชื่อ ffcal1 ต่อไปเรื่อยๆภายหลังในโปรแกรม ffcal1.Initialize(); ffcal1.SetOffetHour(6,4); ffcal1.PrintHighImpactNews(); ffcal1.PrintMediumImpactNews(); ffcal1.PrintLowImpactNews(); Comment(ffcal1.NewsComment(0)); Initialize - ดึงไฟล์ข่าว xml จากนั้นก็แปลงเป็น ข้อมูลว่าข่าวอะไร มีผลกับค่าเงินไหน SetOffetHour(6,4) - เซ็ทเวลาก่อนข่าวออกและหลังข่าวออก เช่น 6 ชั่วโมงก่อนข่าวออก และ 4 ชั่วโมงหลังข่าวออก ไม่ให้เทรด --> จะไปส่งผลภายในหลังเมื่อรันโปรแกรม ในฟังก์ชั่น RunOnTick PrintHighImpactNews, PrintMediumImpactNews, PrintLowImpactNews - ปริ๊นท์ข่าวให้ออกตรง terminal tab Experts NewsComment(0) - ดึงข้อมูลออกมาเป็น string สำหรับปล่อยออกที่ Comment(..), 0=High impact, 1=Medium impact, 2=Low impact //+------------------------------------------------------------------+ //| simple2.mq4 | //| | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "" #property link "https://www.mql5.com" #property version "1.00" #property strict
#include <FFCALClass.mqh>
FFCALClass ffcal1(); //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- create timer EventSetTimer(60); ffcal1.Initialize(); ffcal1.SetOffetHour(6,4); ffcal1.PrintHighImpactNews(); ffcal1.PrintMediumImpactNews(); ffcal1.PrintLowImpactNews(); Comment(ffcal1.NewsComment(0)); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer();
} //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- string x="";
ffcal1.RunOnTick(); x=x+ffcal1.NewsComment(0); //--- //test to show comment whether it is allow to trade if(ffcal1.IsNewsFilterAllow()==true) { x=x+"\n ffcal1.IsNewsFilterAllow()==true"; } // //--- if(ffcal1.IsNewsFilterAllow()==true) {
//BUY AND SELL HERE } Comment(x);
} //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //---
} //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //---
} //+------------------------------------------------------------------+
|
|
|
Post by iamgotzaa on May 29, 2016 17:33:13 GMT 7
ตัวอย่างโปรแกรมใน OnTick() หรือ main loop ffcal1.RunOnTick(); -- ต้องใส่ทุกครั้ง เป็นการ check realtime เผื่อต่อไปรัน ฟังก์ชั่น IIsNewsFilterAllow() ในการเช็คว่า .ตอนนี้. เทรดได้ยัง?? if(ffcal1.IsNewsFilterAllow()==true) -- ถ้าจะส่งออเดอร์ก็ให้เข้ากับเงื่อนไขนี้ะครับ string x="";
ffcal1.RunOnTick(); x=x+ffcal1.NewsComment(0); //--- //test to show comment whether it is allow to trade if(ffcal1.IsNewsFilterAllow()==true) { x=x+"\n ffcal1.IsNewsFilterAllow()==true"; } // //--- if(ffcal1.IsNewsFilterAllow()==true) {
//BUY AND SELL HERE } Comment(x);
|
|
notty
New Member
Posts: 25
|
Post by notty on Jun 27, 2016 22:10:06 GMT 7
กรองข่าว และ การใช้งานเบื้องต้น
โค้ดใช้แหล่งข่าวจาก forexfactory.com ชื่อย่อว่า ffcal ลองถามอากู๋ได้ ข้อมูลมาในรูปแบบ XML www.forexfactory.com/ffcal_week_this.xmlซึ่งจะอัพเดททุกๆสัปดาห์ครับ หลักการ เมื่อใช้ webrequest function ของ mql4 มาก็จะได้เป็น array char format จากนั้นแปลงให้เป็น string ยาวๆ จากนั้นก็ซอยเป็น array และตัด tag xml ออก ก็จะได้ข้อมูลออกมา ดังนั้น ถ้าเราใช้งานยาวๆ เกิน 1 สัปดาห์ขึ้นไป ต้องทำให้มั่นใจด้วยว่า เราทำให้รีเฟรชข้อมูลทุกครั้งด้วยครับ อย่าลืม!!! ตั้ง mt4 ให้เปิดดึงข่าวจากเวปได้ด้วยก่อนนะครับ thaiea.freeforums.net/thread/6/web-request-mt4
|
|
notty
New Member
Posts: 25
|
Post by notty on Jun 27, 2016 22:11:46 GMT 7
ผมมือใหม่มากๆเลยครับ ผมโหลดไปลองแล้วมัน Error อ่ะครับ มีแบบสำเร็จรูปไหมครับ คือผมจะเอาแค่ฟังชั่น ข่าว มาแทรกไว้ใน EA ช่วยแนะนำทีครับว่า เอาไฟล์ไหนไว้ไหน เขียนโคดกี่บรรทัด รบกวนด้วยนะคับ ถือว่าช่วยลูกนกลูกกา
|
|
|
Post by iamgotzaa on Jun 27, 2016 22:27:30 GMT 7
ผมมือใหม่มากๆเลยครับ ผมโหลดไปลองแล้วมัน Error อ่ะครับ มีแบบสำเร็จรูปไหมครับ คือผมจะเอาแค่ฟังชั่น ข่าว มาแทรกไว้ใน EA ช่วยแนะนำทีครับว่า เอาไฟล์ไหนไว้ไหน เขียนโคดกี่บรรทัด รบกวนด้วยนะคับ ถือว่าช่วยลูกนกลูกกา ช่วยจนไม่รู้จะช่วยยังไงแล้วครับ เหลือแค่จับมือพิมพ์เท่านั้น ตามนี้นะ thaiea.freeforums.net/post/11/thread
|
|
notty
New Member
Posts: 25
|
Post by notty on Jun 28, 2016 7:47:41 GMT 7
ช่วยจนไม่รู้จะช่วยยังไงแล้วครับ เหลือแค่จับมือพิมพ์เท่านั้น ตามนี้นะ thaiea.freeforums.net/post/11/threadแหม เอาซะผมอายเลย ได้ละครับผม ขาดไฟล์เอาไปใส่ ขอช่วยๆจริงนิดนึดนะครับ ช่วยแปลงเป็นเวลาไทย ให้หน่อยครับ ให้เป็น 24ชม เวลาไทย กราบล่ะค้าบบบบ
|
|
|
Post by iamgotzaa on Jun 28, 2016 9:20:48 GMT 7
เหอๆ เอางั้นเลยเหรอครับ เหอๆ
|
|
|
Post by iamgotzaa on Jun 28, 2016 9:21:13 GMT 7
แปะไฟล์ ea ไว้ล่ะกันครับ เดี๋ยวว่างๆลองแก้ให้
|
|
notty
New Member
Posts: 25
|
Post by notty on Jul 2, 2016 19:15:34 GMT 7
ฟังชั่นนี้เอาไปแปะแล้ว เวลามันจะตรงกับข่าวไหมครับ ต้องปรับเวลา TimeZone ในคอมไหมครับ แล้วฟังชั่น Ontick เหมือน start ไหมครับ
|
|
|
Post by iamgotzaa on Jul 3, 2016 14:36:25 GMT 7
ฟังชั่นนี้เอาไปแปะแล้ว เวลามันจะตรงกับข่าวไหมครับ ต้องปรับเวลา TimeZone ในคอมไหมครับ แล้วฟังชั่น Ontick เหมือน start ไหมครับ feedของข่าวที่มาจาก forexfactory.com นั่นน่าจะ GMT-1 มั้งครับ ต้องเอามาหักลบกับ เวลาของserver broke อีกที (ไม่ใช่เวลาที่คอม )
|
|
marot
New Member
Posts: 43
|
Post by marot on Jul 3, 2016 17:58:18 GMT 7
เป็น GMT+0 ครับ... และไม่ใช้ Daylight Saving Time ...
|
|
|
Post by eNotty on Jul 4, 2016 8:59:20 GMT 7
เป็น GMT+0 ครับ... และไม่ใช้ Daylight Saving Time ... เอ่อ รบกวนถามนิดนึงครับ ต้องแก้โคดตรงไหนไหมครับ เพื่อให้มันใช้ได้ เพราะผมเอาไปแปะเลย แต่เวลามันไม่ตรงกันครับ
|
|
marot
New Member
Posts: 43
|
Post by marot on Jul 4, 2016 9:47:53 GMT 7
เป็น GMT+0 ครับ... และไม่ใช้ Daylight Saving Time ... เอ่อ รบกวนถามนิดนึงครับ ต้องแก้โคดตรงไหนไหมครับ เพื่อให้มันใช้ได้ เพราะผมเอาไปแปะเลย แต่เวลามันไม่ตรงกันครับ ผมยังไม่ได้ดู Code ของ Admin เลยครับ... แค่คิดง่าย ๆ ว่า... เวลาของ Broker ของเรา เท่าไหร่ ( GMT เท่าไหร่ ) ก็เอาไป บวก ลบ กับ ค่าที่ได้จาก Code ในส่วน ของ Admin นะครับ รอ Admin ตอบดีกว่าครับ
|
|
|
Post by iamgotzaa on Aug 20, 2016 22:05:29 GMT 7
เอ่อ รบกวนถามนิดนึงครับ ต้องแก้โคดตรงไหนไหมครับ เพื่อให้มันใช้ได้ เพราะผมเอาไปแปะเลย แต่เวลามันไม่ตรงกันครับ ผมยังไม่ได้ดู Code ของ Admin เลยครับ... แค่คิดง่าย ๆ ว่า... เวลาของ Broker ของเรา เท่าไหร่ ( GMT เท่าไหร่ ) ก็เอาไป บวก ลบ กับ ค่าที่ได้จาก Code ในส่วน ของ Admin นะครับ รอ Admin ตอบดีกว่าครับ เหอๆ ผมไม่ได้ทำเผื่อไว้ครับ พวก +1 -1 ลองไล่เอาเองดีกว่าครับ
|
|
|
Post by keankung on Oct 9, 2016 10:50:43 GMT 7
สอบถามครับ ในกราฟมันแสดงแต่ MEDIUM บางอัน กับ LOW แต่ไม่แสดง HIGH ครับ
ส่วนตรง Expert แสดง ครบหมด
ทำอย่างไรให้แสดงบนกราฟให้ครบครับ หรือว่าตลาดไม่เปิด เลยไม่ทำงานเหรอครับ (วันอาทิตย์)
|
|
|
Post by akeworld on Nov 6, 2017 2:26:28 GMT 7
อยากขอความกรุณา Admin ครับ อยากให้แสดงเวลาของข่าวเป็น GMT +7 เลยอะครับ ต้องเพิ่ม code อะไร ตรงไหนเพิ่มอีกครับ
|
|