สวัสดีครับเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เราจะมาพูดถึงคลาส 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; ตัวอย่างการใช้งาน
- ไฟล์ Test_ER_OnArrayRB.mq5 คำนวณตัวชี้วัดจากราคาซึ่งแสดงการใช้งานฟังก์ชัน MainOnArray()
- ไฟล์ 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