跨頻率MACD問題

  •   79 
  • 最後發表   Zhenwen  2025 七月 22
Zhenwen 發文於   2025/07/16

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

附加文件

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/07/16

計算跨頻率技術指標,準備資料筆數要足夠,計算的數值才會正確。

Zhenwen 發文於   2025/07/16

感謝您的回覆,我資料讀取筆數放大到10000筆,結果還是不正確,再請您指教

附加文件

虎科大許教授 發文於   2025/07/16

執行的商品是個股?還是期貨?

Zhenwen 發文於   2025/07/16

執行的商品是台指期以及股票期貨,自動交易執行頻率設為五分鐘

虎科大許教授 發文於   2025/07/16

若執行頻率設5分鐘,就不需要跨頻率技術5分鐘的技術指標。

Zhenwen 發文於   2025/07/17

感謝您的回覆,我在日的頻率底下,想要取得5分K的macd,還是會有一樣的問題,請問還有需要特別設定的地方嗎

 

 

虎科大許教授 發文於   2025/07/17

跨頻率一般都是小跨大。

Zhenwen 發文於   2025/07/17

在自動交易底下,如果執行頻率設定成"日",要如何取得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);

目前這樣寫會得不到正確值,再請指正

虎科大許教授 發文於   2025/07/17

有什麼理由非得用日頻率?看你的程式,用5分鐘頻率即可。

Zhenwen 發文於   2025/07/17

老師的意思是執行頻率設定成"5分鐘",然後使用以下函數來取得是嗎

MACD(WeightedClose,12,26,9,DifValue,MACDValue,OscValue);

print出來的結果,依然只有dif正確,macd跟osc都計算錯誤

顯示更多回應 發表回覆
Close