ในบทความนี้เราจะมาพูดถึงแนวคิดเกี่ยวกับการใช้ New Bar Event Handler ที่ช่วยให้เราสามารถคำนวณค่าใหม่ได้เฉพาะเมื่อแท่งเทียนใหม่ปรากฏขึ้นเท่านั้น ซึ่งเป็นทางเลือกที่สะดวกสบายกว่าในการใช้ฟังก์ชัน OnCalculate() ตรงๆ ครับ
ตัวอย่างที่เรานำมาให้ดูในวันนี้คือ Indicator ง่ายๆ ที่จะแสดงเส้นเมื่อมีแท่งเทียนใหม่เกิดขึ้น:
//+------------------------------------------------------------------+ //| OnNewBarCalculate.mq5 | //| Copyright 2010, Lizar | //| Lizar@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright 2010, Lizar" #property link "Lizar@mail.ru" #property version "1.00" #property indicator_chart_window #include <OnNewBarCalculate.mqh> // นี่คือความลับในการเรียกใช้ฟังก์ชัน OnNewBarCalculate()//+------------------------------------------------------------------+ //| New bar event handler for the indicator | //+------------------------------------------------------------------+ int OnNewBarCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spread[]) { //--- ที่นี่คุณสามารถเขียนโค้ดได้คล้ายกับ OnCalculate(); //--- แต่ฟังก์ชันนี้จะถูกเรียกใช้เฉพาะเมื่อแท่งเทียนใหม่เกิดขึ้น (ไม่ทุกที) PrintFormat("New bar: %s",TimeToString(TimeCurrent(),TIME_SECONDS)); //--- คืนค่าของ prev_calculated สำหรับการเรียกครั้งถัดไป return(rates_total); }
โพสต์ที่เกี่ยวข้อง
- เครื่องมือ Open Range Breakout สำหรับ MetaTrader 5
- Volume Profile + Range v6.0: เครื่องมือวิเคราะห์การซื้อขายใน MetaTrader 5
- ID Lite Info MA – ตัวช่วยวิเคราะห์ Moving Average สำหรับ MetaTrader 5
- การวิเคราะห์สเปกตรัมเดี่ยว: ตัวชี้วัดแนวโน้มสำหรับ MetaTrader 5
- การใช้งาน Indicator Flat สำหรับ MetaTrader 5 ในการเทรด