countif 語法問題

  •   436 
  • 最後發表   MattLI  2021 三月 10
MattLI 發文於   2021/03/10

condition1 = C > GetField("參考價","D") * 1.07;

countif(condition1[13], 55) <= 3  

意思是過去55天, 每13天一個區間去統計是否有漲過7%   所以是55天內漲7%要次數<=3嘛

每13天區間是指 :  第1天 ~ 第13天 ,  第2天~ 第14天, 第3天~第15天 ?

謝謝

XQ小幫手 發文於   2021/03/10

Hi MattLI,

Q:以下語法,意思是過去55天, 每13天一個區間去統計是否有漲過7%,所以是55天內漲7%要次數<=3嘛?

condition1 = C > GetField("參考價","D") * 1.07;

countif(condition1[13], 55) <= 3  

A:不是,您所撰寫的語法,只是單純往前偏移 13 期去統計是否有漲過 7 %,

若您想要「過去 55 天,每 13 天一個區間去統計是否有漲過 7%,所以是 55 天內漲 7% 要次數 <= 3」語法範例,

可以使用 TrueAny 來代表「每 13 天一個區間去統計是否有漲過 7%」例如以下範例語法,提供給您參考,謝謝:

P.S. 如果您是使用選股腳本,資料讀取筆數記得設定充足唷

//condition1為「每 13 天一個區間去統計是否有漲過 7%」
condition1 = trueAny(C > GetField("參考價","D") * 1.07,13);

//意思是過去 55 天,每 13 天一個區間去統計是否有漲過 7%,所以是 55 天內漲 7% 要次數 <= 3
//每13天區間是指 :  第1天 ~ 第13天 ,  第2天~ 第14天, 第3天~第15天 ... 第 43天 ~ 第55天
if countIf(condition1,55) <= 3 then ret = 1;

outputField1(condition1);
outputField2(countIf(condition1,55));

 

發表回覆
Close