ฉันต้องการค่า MACD ทั้งหมดพร้อมกัน!
สวัสดีครับ ผมคือ fx น้อยๆ ชิ้นหนึ่ง
ตามชื่อเรื่องเลยนะครับEAつくーるได้สร้างฟังก์ชันเพื่อดึงค่าของ MACD พร้อมกัน จากโค้ดที่ได้สร้างจาก source code ที่ output โดย
ตรงไปตรงมานะครับ ค่อนข้างยังไม่โอเค
งั้นเริ่มเลยนะครับ กับฟังก์ชันดังกล่าว
//--------------------------------------------------------------------------------------------------------+
//| ฟังก์ชันเพื่อดึงค่า MACD และ Signal
//| กระบวนการ: ใช้กรอบเวลา EMA ช่วงเวลา และช่วง SMA ของสัญญาณที่ระบุ เพื่อดึงค่า MACD และเส้น Signal
//| อาร์กิวเมนต์:period - กรอบเวลา (0 ใช้กรอบเวลาชาร์ตปัจจุบัน)
//| fastEMA - ช่วงเวลา EMA ระยะสั้น
//| slowEMA - ช่วงเวลา EMA ระยะยาว
//| signalSMA - ช่วงเวลา SMA ของสัญญาณ
//| shift - ตำแหน่งแท่งที่ดึง (0 คือตำแหน่งแท่งปัจจุบัน, 1 คือต่ำกว่า 1 แท่ง)
//| คืนค่า: โครงสร้าง MACDValues ที่คืนค่า MACD และค่าเส้น Signal
//--------------------------------------------------------------------------------------------------------+
struct MACDValues {
double macd; // ค่า MACD
double signal; // ค่าเส้น Signal
};
MACDValues getMACDValues(string symbol, int period, int fastEMA, int slowEMA, int signalSMA, int shift)
{
MACDValues macdValues;
// ดึงค่า MACD
macdValues.macd = iMACD(symbol, period, fastEMA, slowEMA, signalSMA, PRICE_CLOSE, MODE_MAIN, shift);
// ดึงค่าเส้น Signal
macdValues.signal = iMACD(symbol, period, fastEMA, slowEMA, signalSMA, PRICE_CLOSE, MODE_SIGNAL, shift);
return macdValues;
}
ผมลองใช้ตัวแปรโครงสร้างดูนะครับ
วิธีการใช้งานมีดังนี้
void OnTick()
{
// ตั้งค่าพารามิเตอร์ MACD
string symbol = Symbol();
int fastEMA = 12;
int slowEMA = 26;
int signalSMA = 9;
int period = PERIOD_H1; // ใช้กรอบเวลาชาร์ตปัจจุบัน (รายชั่วโมง)
// ดึงค่า MACD และ Signal
MACDValues macdValues = getMACDValues(symbol, period, fastEMA, slowEMA, signalSMA, 0);
// แสดงค่า MACD และ Signal ในล็อก
Print("MACD: ", macdValues.macd, " Signal: ", macdValues.signal);
}เป็นยังไงบ้างครับ?
ถ้าเคยชินแล้วจะง่ายมากครับ
แล้วพบกันใหม่นะครับ
ไฟล์ดาวน์โหลด อยู่ด้านล่างนี้
× ![]()