漲停價前五檔

  •   212 
  • 最後發表   StockS  2023 七月 03
StockS 發文於   2023/06/28

value2 = countIf(highd(0) >= addSpread(GetField("漲停價","D"), -5) , 250);

小幫手你好

 

請問為什麼我想要寫250期內,最高價大於漲停價前五檔的次數,print出來每一支股票都是250次?

謝謝

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/06/29

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符合條件的次數。

StockS 發文於   2023/06/29

小幫手你好

您上面寫的語法print 出的數字都是250

此外我用選股腳本PRINT  不同期的 addSpread(GetField("漲停價","D"), -5)全部顯示都是0

XQ小幫手 發文於   2023/07/03

 Hello StockS,

 

您可以參考 addspread 的說明,其分類為交易函數,故只能在交易腳本中使用。

如果要在其他類型的腳本上計算增減幾檔的話,需要自行撰寫判斷式。

附上小幫手撰寫的函數供參考,使用方式為 stockTickCalc(GetField("漲停價","D"), -5) 會計算當日漲停價減5檔。

附加文件

發表回覆
Close