value2 = countIf(highd(0) >= addSpread(GetField("漲停價","D"), -5) , 250);
小幫手你好
請問為什麼我想要寫250期內,最高價大於漲停價前五檔的次數,print出來每一支股票都是250次?
謝謝
value2 = countIf(highd(0) >= addSpread(GetField("漲停價","D"), -5) , 250);
小幫手你好
請問為什麼我想要寫250期內,最高價大於漲停價前五檔的次數,print出來每一支股票都是250次?
謝謝
Hello StockS,
小幫手不知道您使用的頻率為何,但 highd(0) 會隨著執行頻率變動 (ex. highd(0)[1] 會是上一根Bar的日頻率最高價)。
且 addspread 是系統函數,故 addSpread(GetField("漲停價","D"), -5)[1] 會和 addSpread(GetField("漲停價","D"), -5) 相同。
您要計算前250日頻率Bar的條件的話,會建議您使用 for 迴圈來計算,舉例來說:
value1 = 0;
for valeu2 = 0 to 249 begin
if getfield("High", "D")[value2] >= addSpread(GetField("漲停價","D")[value2], -5) then value1 += 1;
end;
這樣value1就會是近250根日頻率Bar符合條件的次數。
小幫手你好
您上面寫的語法print 出的數字都是250
此外我用選股腳本PRINT 不同期的 addSpread(GetField("漲停價","D"), -5)全部顯示都是0
3 評論