เรียนรู้การใช้คลาส CEROnRingBuffer สำหรับคำนวณ Efficiency Ratio (ER) ใน MetaTrader 5

Mike 2013.01.08 23:46 25 0 0
ไฟล์แนบ

สวัสดีครับเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เราจะมาพูดถึงคลาส CEROnRingBuffer ที่ออกแบบมาเพื่อคำนวณตัวชี้วัดทางเทคนิคที่เรียกว่า Efficiency Ratio (ER) โดยใช้วิธีการจาก Ring Buffer ซึ่งเหมาะสำหรับการใช้ใน Adaptive Moving Average (AMA) นะครับ

คำอธิบาย

คลาส CEROnRingBuffer จะช่วยให้เราคำนวณ ER ได้อย่างมีประสิทธิภาพ โดยอิงจากข้อมูลใน Ring Buffer ที่มีการจัดเก็บข้อมูลไว้ในลักษณะของอาเรย์ครับ

การประกาศคลาส

class CEROnRingBuffer : public CArrayRing

การนำเข้าไฟล์

#include <IncOnRingBuffer\CEROnRingBuffer.mqh>

ไฟล์ CEROnRingBuffer.mqh จะต้องถูกบันทึกไว้ในโฟลเดอร์ IncOnRingBuffer ที่ตั้งอยู่ใน MQL5\Include\ นะครับ โดยจะมีตัวอย่างการใช้งานจากไฟล์ในโฟลเดอร์นี้ให้ด้วย

ฟังก์ชันต่างๆ ของคลาส

//--- ฟังก์ชันสำหรับการเริ่มต้น: bool Init(int period = 34, int size_buffer = 256, bool as_series = false);
//--- ฟังก์ชันสำหรับการคำนวณ: int MainOnArray(const int rates_total, const int prev_calculated, const double &array[]);
//--- ฟังก์ชันสำหรับการเข้าถึงข้อมูล: int BarsRequired(); // คืนค่าจำนวนแท่งที่จำเป็นในการวาดตัวชี้วัด

เราสามารถดึงข้อมูลที่คำนวณจากคลาสนี้ได้เหมือนกับการใช้ อาเรย์ ทั่วไปนะครับ

//--- ตัวอย่างการใช้คลาส CEROnRingBuffer: #include <IncOnRingBuffer\CEROnRingBuffer.mqh> CEROnRingBuffer er;

ตัวอย่างการใช้งาน

  1. ไฟล์ Test_ER_OnArrayRB.mq5 คำนวณตัวชี้วัดจากราคาซึ่งแสดงการใช้งานฟังก์ชัน MainOnArray()
  2. ไฟล์ Test_ER_OnValueRB.mq5 แสดงการใช้งานฟังก์ชัน MainOnValue() ซึ่งจะคำนวณและวาดตัวชี้วัด ER จาก Ring Buffer


ผลลัพธ์จากการทำงานของ Test_ER_OnArrayRB.mq5 ขนาดของ Ring Buffer 256 องค์ประกอบ


ผลลัพธ์จากการทำงานของ Test_ER_OnValueRB.mq5 ขนาดของ Ring Buffer 256 องค์ประกอบ

เมื่อเขียนโค้ดนี้เรายังได้รับการพัฒนาจาก MetaQuotes Software Corp. รวมถึง Integer และ GODZILLA ด้วยครับ

รายการ
ความคิดเห็น 0