// 2. 跨頻率計算還原月線的威廉指標
// ------------------------------
// 頻率參數 "AM" 代表還原月線
_WPR = xf_PercentR("AM", _Length) - 100;
已使用跨頻率威廉指標,但在週K跟月K顯示的數值不一樣,是否為XQ本身的問題?
// 2. 跨頻率計算還原月線的威廉指標
// ------------------------------
// 頻率參數 "AM" 代表還原月線
_WPR = xf_PercentR("AM", _Length) - 100;
已使用跨頻率威廉指標,但在週K跟月K顯示的數值不一樣,是否為XQ本身的問題?
(1)請留意,計算技術指標可能需要足夠的資料筆數才能算出正確的數值。
(2)若主頻率是日,則一個月大約有22個交易日,_Length若為14,則至少需要準備22*14=308筆資料。
xf_RSI 也一樣遇到問題
期數只有4
settotalbar 跟 SetBackBar 結果都一樣,請問程式碼應該如何寫才能解決?
settotalbar(1500);
SetBackBar(30, "M"); // 確保取得足夠的原始月線資料來計算 RSI
SetBackBar(30, "AM"); // 確保取得足夠的還原月線資料來計算 RSI
跨頻率計算RSI,賦予的收盤價也必須跨頻率。你的問題應該是使用日收盤價計算月RSI,而非用月收盤價計算月RSI。
有關跨頻率、跨商品、跨商品且跨頻率的操作,你可以參考我書本第二版的第三章「時序與流程控制」,裡面有詳盡的說明。
input: _Length(4);
setTotalBar(_Length*22);
var: myRSI(0);
if symbol="2330.TW" then
begin
myRSI = xf_RSI("AM", GetField("收盤價", "AM") , _Length);
ret=1;
outputField1(myRSI,"RSI");
end;
有問題的程式碼其實這部分有定義
// 依據當前主頻率是否為還原頻率,分別以「字串常數」呼叫跨頻率函數
if BarAdjusted = true then begin
// 取得還原月線("AM")的收盤價,並計算還原月線 RSI
_rsiValue = xf_RSI("AM", GetField("Close", "AM"), _rsiLen);
end else begin
// 取得原始月線("M")的收盤價,並計算原始月線 RSI
_rsiValue = xf_RSI("M", GetField("Close", "M"), _rsiLen);
end;
我用你的程式,顯示的指標都正確的。若你的問題仍然沒解決,可能需要提供更詳盡的資訊。




許教授謝謝你,可以麻煩試一下週線圖與還原週線圖的部分嗎??



//警示腳本
setTotalBar(1500);
ret=1;
print(date, xf_RSI("M",getField("Close","M"),4));
7 評論