我用以下寫法執行跨頻率布林通道運算,腳本頻率為1分K,欲計算的是15分K的布林通道,想做1分K價格穿越15分K布林通道上下緣進場的策略回測:
input: BOLLINGBANDPERIOD(20, "布林通道期數");
input: BOLLINGBANDRANGE(2.8, "上下寬度");
var: bollingBandUp(0); // 布林通道上緣
var: bollingBandDown(0); // 布林通道下上緣
bollingBandUp = bollingerband(xfMin_GetValue("15", close, 1), BOLLINGBANDPERIOD, BOLLINGBANDRANGE);
bollingBandDown = bollingerband(xfMin_GetValue("15", close, 1), BOLLINGBANDPERIOD, -1 * BOLLINGBANDRANGE);
print(DateToString(date), TimeToString(time), "bollingBandUp", NumToStr(bollingBandUp,2), "| bollingBandMA20", NumToStr(Average(xfMin_GetValue("15", close, 1), 20),2), "| bollingBandDown", NumToStr(bollingBandDown,2), "| close", NumToStr(close,0), "| xfMin_GetValue('15', close, 1)", NumToStr(xfMin_GetValue("15", close, 1),0));
但回測結果print出來,發現使用 xfMin_GetValue("15", close, 1) 取到的值雖然是正確的,但透過布林通道公式換算出來的結果有明顯的偏差:

同樣腳本如果是執行15分K的話,就能確實計算出與技術分析線圖相同的布林通道數字:

請問為什麼跨頻率明明取得正確的收盤價,卻沒有辦法計算出正確的布林通道數字呢?
查過 xf 系列也沒有布林通道的專用計算語法,是哪個設置有問題嗎?


10 評論