選股條件日期問題

  •   207 
  • 最後發表   Primitive  2023 十一月 02
Primitive 發文於   2023/10/17

內建選股程式 "曾經一個月漲超過兩成的股票", 選出來的都是最新月份符合條件的商品,為何沒有過去月份符合條件的商品? 謝謝!

 

內建程式"曾經一個月漲超過兩成的股票"程式碼:

setbarfreq("M");

settotalbar(12);

if close>close[1]*1.2 then 

begin

ret=1;

outputfield(1,intportion(date*0.01),0,"上漲的月份");

end;

 

結果:

使用 XS 

XQ小幫手 發文於   2023/11/02

Hello, Primitive.

因為您條件設定的是目前這根K棒比前一根K棒的1.2倍,故您在十月每天的選股結果都是只有十月跟前一個月相比的結果,

要找到之前的MOM20%標的,簡單的作法是利用回測或者選股選擇指定日期去找到您要的日期選股結果。

當然也可以修改程式去找到近三個月曾經MOM20%的股票,例如:

setbarfreq("M");
settotalbar(12);

if 
    close > close[1] * 1.2
then begin
    ret=1;
    outputfield(1, intportion(date * 0.01), 0, "上漲的月份");
    outputfield(2, (close - close[1]) * 100 / close[1], 2, "月份漲幅%");
end
else if
    close[1] > close[2] * 1.2
then begin
    ret=1;
    outputfield(1, intportion(DateAdd(date, "M", -1) * 0.01), 0, "上漲的月份");
    outputfield(2, (close[1] - close[2]) * 100 / close[2], 2, "月份漲幅%");
end
else if
    close[2] > close[3] * 1.2
then begin
    ret=1;
    outputfield(1, intportion(DateAdd(date, "M", -2) * 0.01), 0, "上漲的月份");
    outputfield(2, (close[2] - close[3]) * 100 / close[3], 2, "月份漲幅%");
end;

但是這種寫法,假設某檔股票9月份漲了20%,10月份也漲了20%,這只會顯示10月份的。

 

謝謝。

發表回覆
Close