สำหรับ ที่ปรึกษาผู้เชี่ยวชาญ (Expert Advisor หรือ EA) เมื่อมีข้อมูลใหม่เข้ามา MetaTrader จะเรียกใช้ฟังก์ชันจัดการเหตุการณ์ OnTick() โดยอัตโนมัติ แต่ไม่มีฟังก์ชันจัดการเหตุการณ์เริ่มต้นแท่งเทียนใหม่โดยตรง
เพื่อที่จะตรวจจับการเริ่มต้นแท่งเทียนใหม่ เราต้องติดตามเวลาการเปิดของแท่งเทียนล่าสุด หากเวลานั้นเปลี่ยนไป แสดงว่ามีการเริ่มต้นแท่งเทียนใหม่เกิดขึ้น และเราสามารถตอบสนองต่อเหตุการณ์นี้ได้ โค้ดตัวอย่างด้านล่างนี้สามารถใช้ได้ทั้งใน MQL4 และ MQL5 แสดงให้เห็นวิธีการหนึ่งในการตรวจจับการเริ่มต้นแท่งเทียนใหม่:
// ฟังก์ชันจัดการเหตุการณ์ของแท่งเทียน void OnTick() { // ตรวจสอบแท่งเทียนใหม่ (ใช้ได้ทั้ง MQL4 และ MQL5) static datetime dtBarCurrent = WRONG_VALUE; datetime dtBarPrevious = dtBarCurrent; dtBarCurrent = iTime( _Symbol, _Period, 0 ); bool bNewBarEvent = ( dtBarCurrent != dtBarPrevious ); // ตอบสนองต่อเหตุการณ์แท่งเทียนใหม่ if( bNewBarEvent ) { // ตรวจสอบว่ามันคือแท่งเทียนแรกที่ได้รับหรือไม่ if( dtBarPrevious == WRONG_VALUE ) { // ทำบางอย่างในแท่งเทียนแรกหรือตรงกลางของแท่งเทียน ... } else { // ทำบางอย่างเมื่อแท่งเทียนปกติเริ่มต้น ... }; // ทำบางอย่างไม่ว่าเงื่อนไขข้างต้นจะเป็นอย่างไร ... } else { // ทำบางอย่างอื่น ... }; // ทำสิ่งอื่น ๆ ... };
ในโค้ดข้างต้น ตัวแปร static จะเก็บเวลาการเปิดของแท่งเทียน แม้ว่าเราจะกลับมาจากฟังก์ชัน OnTick() ก็ตาม ซึ่งแตกต่างจากตัวแปรปกติที่เมื่อออกจากฟังก์ชันจะไม่บันทึกข้อมูลไว้ ตัวแปรนี้ช่วยให้เราตรวจจับการเปลี่ยนแปลงในเวลาการเปิดแท่งเทียนปัจจุบันได้
นอกจากนี้ยังต้องสังเกตว่า เมื่อ EA ถูกวางลงบนกราฟเป็นครั้งแรก โค้ดข้างต้นจะตอบสนองเหมือนกับว่าแท่งเทียนเพิ่งเปิดอยู่ ซึ่งเงื่อนไขนี้ต้องมีการจัดการเป็นพิเศษหากต้องการให้สถานการณ์เป็นไปในรูปแบบที่แตกต่างออกไป
อย่าลืมว่า โค้ดทั้งหมดของฉันใน CodeBase ขณะนี้สามารถเข้าถึงได้ในแท็บ "Public Projects" ของ MetaEditor โดยใช้ชื่อ "FMIC"
โพสต์ที่เกี่ยวข้อง
- สร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณซื้อขายจาก Morning/Evening Stars + MFI
- การสร้าง Expert Advisor ด้วย MQL5 Wizard: สัญญาณการเทรดจาก Morning/Evening Stars + RSI
- ใช้ MQL5 Wizard สร้าง Expert Advisor ด้วยสัญญาณเทรด Morning/Evening Stars + Stochastic
- MQL5 Wizard: สร้างสัญญาณการเทรดจาก Bullish Harami/Bearish Harami พร้อม MFI
- สร้าง Expert Advisor ด้วย MQL5 Wizard สำหรับสัญญาณการเทรด Bullish Harami/Bearish Harami และ RSI