為什麼DIF是正確的,MACD卻是錯的。語法如下
xfMin_macd("5",xfMin_weightedclose("5"),12,26,9,value1,value2,value3);
print("DIF: ", value1,"MACD: ", value2,"Osc: ", value3);

跨頻率MACD問題
- 79
- 最後發表 Zhenwen 2025 七月 22
計算跨頻率技術指標,準備資料筆數要足夠,計算的數值才會正確。
執行的商品是個股?還是期貨?
執行的商品是台指期以及股票期貨,自動交易執行頻率設為五分鐘
若執行頻率設5分鐘,就不需要跨頻率技術5分鐘的技術指標。
感謝您的回覆,我在日的頻率底下,想要取得5分K的macd,還是會有一樣的問題,請問還有需要特別設定的地方嗎
跨頻率一般都是小跨大。
在自動交易底下,如果執行頻率設定成"日",要如何取得5分K的MACD?
input: FastLength(12), SlowLength(26), MACDLength(9);
variable: vDIF(0),vMACD(0),vOsc(0);
if getinfo("isrealtime") = 0 then return;
if q_last >= q_BestAsk1 then
TickCountBuy += q_TickVolume //TickCountBuy + 1
else if q_last <= q_BestBid1 then
TickCountSell += q_TickVolume; //TickCountSell + 1;
// 每根新 5 分 K 棒開始時,做統計
if Minute(CurrentTimeMS) <> LastCheckedTime and Mod(Minute(CurrentTimeMS), KBarInterval) = 0 then begin
// 給下一根 K 棒清除用的旗標
statsJustCalculated = true;
LastCheckedTime = Minute(CurrentTimeMS); // 記錄本次已經統計過
end;
value1 = xfMin_MACD("5",xfMin_weightedclose("5"),FastLength,SlowLength,MACDLength,vDIF,vMACD,vOsc);
目前這樣寫會得不到正確值,再請指正
有什麼理由非得用日頻率?看你的程式,用5分鐘頻率即可。
老師的意思是執行頻率設定成"5分鐘",然後使用以下函數來取得是嗎
MACD(WeightedClose,12,26,9,DifValue,MACDValue,OscValue);
print出來的結果,依然只有dif正確,macd跟osc都計算錯誤
12 評論