主頻率為1分,無法取得頻率為D的資料,資料取得有誤

  •   192 
  • 最後發表   神射手  2019 十一月 11
神射手 發文於   2019/11/06

我在XScript裡面利用以下的script想要取得過去五日的總量與均量的數據

value12 = GetField("Volume", "D"); //取得日成交量

value14 = value12[1]; //昨日成交量

value15 = value12[2]; //前天成交量

value16 = value12[3]; //

value17 = value12[4]; //

value18 = value12[5]; //

value19 = summation(value12, 5)[1]; //過去五日總量

value20 = value19 / 5 ; //過去5日均量

value21 = (value14+value15+value16+value17+value18);

value22 = value21 / 5;

print("-", date, time, barinterval, barfreq, 

value12, value14, value15, value16, value17,

 

value18, value19, value20, value21, value22);

我把這個script放在主頻率為1分鐘的警示內去跑,

發現 我指定的  value12 = GetField("Volume", "D"); //取得日成交量

這個敘述無法取得 "日" 成交量,反而變成是每分K的成交量。

根據XQ的 文件所說 ,我取得的應該是"日" 成交量,但看起來並不是這樣

http://xshelp.xq.com.tw/index.aspx?HelpName=GetField&group=FIELDFUNC

這是你們XQ的文件,怎麼你們盤中執行的結果卻不是這樣呢? 是不是你們的XQ程式有問題啊?

還有一個問題,我指定頻率為1分鐘,可是log卻寫了好幾次,難道是一分鐘內執行了N次script嗎? 正常不是應該一分鐘只執行一次script嗎?

附件為我利用print列印下來的資料(symbol為2317鴻海),每一欄的資料順序如上面print script所列,提供給你們修正問題。

另外,如果我在盤中1分K的主頻率內想要取得過去 5"日"的成交量,我該怎麼寫呢?

如果我在盤後寫好script,想要回測一分K的頻率策略,似乎也無法正確的取得正確資料!!!

 

附加文件

XQ小幫手 發文於   2019/11/11

 Hi 神射手

您好,因為主頻率是一分K的關係, 因此print語法也是依照1分K的資料去跑

而您用value儲存值的話,僅能儲存到GetField("Volume", "D"); 的一個值。

因此value[1]也會因為存的也是GetField("Volume", "D"),導致數值相同。

建議您可以將語法改成,其他欄位(value15~value18)就可以解決您的問題

value14=GetField("Volume", "D")[1];//取昨日成交量

謝謝您的詢問。

發表回覆
Close