選股正在執行中 不結束,然後連線逾時

  •   224 
  • 最後發表   小鷹號  2021 四月 01
小鷹號 發文於   2021/03/30

小幫手你好,

我一年前可以順利的執行一個選股策略,但今年初開始,執行時常常遇到選股正在執行中,沒有結果,後來就出現連線逾時的紅字。我不明白為什麼,可以幫我找出原因嗎?謝謝。

XQ版本:3.05.02

選股條件為

還原日 一年內股價跌了4成 XS (資料讀取:247筆)

      交易日數=246

      下跌的百分比=40

日 成交金額(億)大於0.1億

 

 

其中自訂的"一年內股價跌了4成"選股Script 為

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

input:ratio(40,"下跌的百分比");

 

 

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

value2=(value1-close)/value1;

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

value4=GetField("本益比");

value5=GetField("股價淨值比");

 

if value2>ratio/100

then ret=1;

//ret=1;

SetOutputName1("下跌比例"); 

OutputField1(value2);

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

outputfield2(value3);

setoutputname3("原還收盤價最高");

outputfield3(value1);

setoutputname4("本益比");

outputfield4(value4);

setoutputname5("股價淨值比");

outputfield5(value5);

XQ小幫手 發文於   2021/04/01

Hello, 小鷹號,

 

我依照您的選股條件測試了一下,問題應該是出在於運算量過大導致運算超過5分種。系統只要超過5分鐘就會回報連線逾時。

由於您用的 simplehighest 函數裡包含了for迴圈,再加上資料讀取了247筆。如果選股範圍大的話將會導致大量的運算。

建議您可以將資料讀取設為1或預設值即可,因為 GetField 函數在選股並不受資料讀取長度影響。除非是有自訂變數[N]或函數[N]的狀況,選股中心才需要設定夠長的資料讀取筆數。如果是這樣的情況您可以將選股的範圍縮小,或是將原本的範圍分批進行篩選即可。

 

發表回覆
Close