為何計算一年前的還原股價GetField("收盤價","AD"),傳回的值全是0?

  •   212 
  • 最後發表   小鷹號  2019 九月 24
小鷹號 發文於   2019/09/20

XQ管理員您好,我寫了一隻選股腳本

input:d1(246,"交易日數");

input:ratio(10,"新高的區間百分比");

input:ratio_increase_1yago(20,"比一年前價高百分比");

 

value1=GetField("收盤價","AD");

value6=simplehighest(value1, d1); 

value2=(value6-close)/value6;

value3=GetField("成交金額(億)","D");

value4=value1[d1]; //這個值是0,很奇怪

 

ret=1;

 

SetOutputName1("新高比例"); 

OutputField1(value2);

setoutputname2("成交金額(億)");

outputfield2(value3);

setoutputname3("一年內收盤最高(還原)");

outputfield3(value6);

setoutputname4("收盤價");

outputfield4(close);

setoutputname5("一年前收盤價(還原)");

outputfield5(value4);

 

可是我的value4都是0,請問我哪裏寫錯了嗎?謝謝。

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2019/09/24

Hi 小鷹號

依照您的語法,您的d1為246

value4=value[d1],也就是value1的往前第246筆資料

若預設您的選股的"資料筆數設定"為246以上(假設247),也就是value1會有247筆資料(value1[0]至value[246])

然後value4就會是value1序列的最後一筆資料。

若您的資料小於247筆,則會因為資料長度不夠

value1不足247筆資料,因此value4為0。

 

以上說明,謝謝。

附加文件

小鷹號 發文於   2019/09/24

謝謝,的確是資料筆數設定不足導致。

這個問題已決決,謝謝你的幫忙。

發表回覆
Close