สำหรับ ระบบเทรดอัตโนมัติ (EA) เมื่อได้รับข้อมูลราคาใหม่ ("ติ๊ก") ผ่าน MetaTrader ฟังก์ชันการจัดการเหตุการณ์มาตรฐาน OnTick() จะถูกเรียกใช้โดยโปรแกรม แต่ไม่มีฟังก์ชันจัดการเหตุการณ์มาตรฐานสำหรับการเริ่มต้นแท่งเทียนใหม่
ในการตรวจจับการเริ่มต้นของแท่งเทียนใหม่ เราจำเป็นต้องติดตามเวลาการเปิดของแท่งเทียนล่าสุด เมื่อเวลานี้เปลี่ยนแปลง นั่นหมายความว่าแท่งเทียนใหม่ได้เริ่มขึ้นแล้ว และเราสามารถตอบสนองต่อสถานการณ์นี้ได้ โดยตัวอย่างโค้ดด้านล่างนี้เป็นวิธีหนึ่งที่สามารถทำได้ ซึ่งรองรับทั้ง MQL4 และ MQL5:
// การจัดการเหตุการณ์ติ๊กมาตรฐาน void OnTick() { // ตรวจสอบการเริ่มต้นแท่งเทียนใหม่ (รองรับ MQL4 และ MQL5). static datetime dtBarraCorrente = WRONG_VALUE; datetime dtBarraPrecedente = dtBarraCorrente; dtBarraCorrente = iTime( _Symbol, _Period, 0 ); bool bEventoBarraNova = ( dtBarraCorrente != dtBarraPrecedente ); // ตอบสนองต่อเหตุการณ์แท่งเทียนใหม่และจัดการสถานการณ์ if( bEventoBarraNova ) { // ตรวจจับว่าติ๊กนี้เป็นครั้งแรกที่ได้รับหรือไม่ /* เช่น เมื่อมันถูกนำไปใช้กับกราฟครั้งแรกและแท่งเทียนอยู่กลางกระบวนการ */ if( dtBarraPrecedente == WRONG_VALUE ) { // ทำบางอย่างเมื่อเป็นติ๊กแรกหรืออยู่กลางแท่งเทียน ... } else { // ทำบางอย่างเมื่อแท่งเทียนปกติเพิ่มขึ้น ... }; // ทำบางอย่างที่ไม่เกี่ยวข้องกับเงื่อนไขก่อนหน้า ... } else { // ทำบางอย่างอื่น ... }; // ทำสิ่งอื่น ๆ ... };
ในโค้ดข้างต้น ตัวแปร static จะช่วยเก็บเวลาการเปิดแท่งเทียน แม้เมื่อกลับมาจากฟังก์ชัน OnTick() ซึ่งแตกต่างจากตัวแปรปกติ มันจะจดจำข้อมูลของมันไว้และไม่ปล่อยข้อมูลเมื่อออกจากฟังก์ชัน นี่คือกุญแจสำคัญในการตรวจจับการเปลี่ยนแปลงเวลาการเปิดของแท่งเทียนปัจจุบัน
นอกจากนี้ยังมีความสำคัญที่เมื่อ EA ถูกวางบนกราฟเป็นครั้งแรก โค้ดก่อนหน้านี้จะตอบสนองเหมือนกับว่าแท่งเทียนเพิ่งเปิดขึ้น ซึ่งเงื่อนไขนี้ต้องได้รับการจัดการเป็นพิเศษหากสถานการณ์ต้องการการจัดการที่แตกต่างออกไป
โปรดทราบว่าโค้ดต้นฉบับสำหรับการเผยแพร่ทั้งหมดของ CodeBase ตอนนี้สามารถเข้าใช้ได้ผ่านทาง MetaEditor 's "Public Projects" ภายใต้ชื่อ "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