某個日期前30天的最高價寫法

  •   183 
  • 最後發表   珠南  2023 十二月 20
珠南 發文於   2023/12/18

小幫手你好
我想找出除息日後30天的最高價,但是卡在取最高價這邊,連print都出不來,請問是哪一部分有問題呢?
麻煩了,感謝你

input:D(30,"歷史幾天內填息?");
value1=getfield("除息日期");//找到最近的除息日
value2=getbarOffset(value1);//距離回測日幾根K棒

value3=highest(close[value2-D],D); //除息日後D根K棒的最高收盤價
print(value3);

XQ小幫手 發文於   2023/12/20

Hello 珠南,

 

請注意除息日期有可能是未來值,此時value2就會取到0,且未滿30日的話value2-30會是負值,會因此錯誤。

故在計算value3時可以限制 value2 的值要大於30。

Highest函數是用節省效能的寫法,所以有一些限制,像這種close[value2-D]會隨著value2變動導致計算出錯。

可以改為使用 simplehighest。

發表回覆
Close