สวัสดีเพื่อนๆ เทรดเดอร์ทุกคน! วันนี้เราจะมาพูดถึงคลาส CMomentumOnRingBuffer ซึ่งออกแบบมาเพื่อช่วยในการคำนวณอินดิเคเตอร์ Momentum โดยใช้วิธีการของ Ring Buffer นะครับ
คำอธิบาย
คลาสนี้มีเป้าหมายเพื่อช่วยในการคำนวณ Momentum ได้อย่างมีประสิทธิภาพ โดยเฉพาะสำหรับเทรดเดอร์ที่ใช้ MetaTrader 5
การประกาศคลาส
class CMomentumOnRingBuffer : public CArrayRing
การตั้งค่าไฟล์
ไฟล์ CMomentumOnRingBuffer.mqh จะต้องถูกวางในโฟลเดอร์ IncOnRingBuffer ที่ตั้งอยู่ใน MQL5\Include\ นะครับ และอย่าลืมว่าไฟล์ที่ใช้ตัวอย่างจากคลาสนี้จะต้องอยู่ในโฟลเดอร์นี้ด้วยเช่นกัน
วิธีการของคลาส
//--- วิธีการเริ่มต้น: bool Init(int period = 14, int size_buffer = 256, bool as_series = false);
//--- วิธีการคำนวณจากอาเรย์: int MainOnArray(const int rates_total, const int prev_calculated, const double& array[]);
//--- วิธีการคำนวณจากค่าที่กำหนด: double MainOnValue(const int rates_total, const int prev_calculated, const int begin, const long value, const int index);
การเข้าถึงข้อมูล
การดึงข้อมูลที่คำนวณจาก Ring Buffer สามารถทำได้เหมือนกับอาเรย์ปกติ เช่น:
//--- ตัวอย่างการคำนวณอินดิเคเตอร์: CMomentumOnRingBuffer momentum; int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double& price[]) { momentum.MainOnArray(rates_total, prev_calculated, price); for(int i=start; i<rates_total; i++) Momentum_Buffer[i] = momentum[rates_total-1-i]; return (rates_total); }
ตัวอย่างการใช้งาน
- ไฟล์ Test_Momentum_OnArrayRB.mq5 คำนวณอินดิเคเตอร์จากราคาซีรีส์เวลา โดยแสดงการใช้ MainOnArray()
- ไฟล์ Test_Momentum_OnValueRB.mq5 แสดงการใช้ MainOnValue() โดยเริ่มต้นจากการคำนวณ Momentum แล้วจึงสร้าง Momentum ตัวที่สองจาก Ring Buffer
ผลลัพธ์

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

ผลลัพธ์จากการทำงานของ Test_Momentum_OnValueRB.mq5 ที่มีขนาด Ring Buffer 256 องค์ประกอบ
การพัฒนาครั้งนี้ได้รับแรงบันดาลใจจากผลงานของ MetaQuotes Software Corp., Integer และ GODZILLA
โพสต์ที่เกี่ยวข้อง
- เครื่องมือ Open Range Breakout สำหรับ MetaTrader 5
- Volume Profile + Range v6.0: เครื่องมือวิเคราะห์การซื้อขายใน MetaTrader 5
- การวิเคราะห์สเปกตรัมเดี่ยว: ตัวชี้วัดแนวโน้มสำหรับ MetaTrader 5
- เรียนรู้การคำนวณ MFI ด้วยคลาส CMFIOnRingBuffer ใน MetaTrader 5
- ID Lite Info MA – ตัวช่วยวิเคราะห์ Moving Average สำหรับ MetaTrader 5