想詢問腳本是否有錯誤

  •   161 
  • 最後發表   股海無涯  2022 十一月 08
股海無涯 發文於   2022/11/05

各位前輩好,

我想詢問我的想法是

1.定義0900-0930的最大量為最大量,盤中若有更大量時則記錄並將此大量更新,若再有突破則持續更新。

2.目前想在滿足下列時跳出警示

   (1)成交量創新高

   (2)此分時大單買賣力 < 成交量一半 (不論多空力道)

   (3)此時漲幅 -7%~7%間

 

請問下列語法是否有需修正處?

input:length(30);   //算K棒數量

    if   barInterval<>1 then raiseRunTimeError("限1分頻率");  

 

    if   issessionFirstBar then value1=0;

    

    if   time= 092900   //語意講9點到9點半,以一分鐘頻率來說 程式應該是要寫成>=09000~ <=092900 或是>=09000~ <093000

    then value1=(FastHighest(v,length));        //紀錄最大量值

    

 

  

    if   time>=093000 

    and  time<=120000

    and  v>value1    

 

    then begin

        value1=v;   //更新最大值,每次出現更大量都會警示

 

value2 = GetField("賣出特大單量", "1") + GetField("賣出大單量", "1");

value3 = GetField("買進特大單量", "1") + GetField("買進大單量", "1");

value4 = value3 - value2;

if 0.93 < c/c[1]

and  c/c[1] < 1.07

and  value4 < v*0.5

    then    

ret=1;

    end;

 

謝謝大神們看完

XQ小幫手 發文於   2022/11/08

 Hello 股海無涯,

 

1.定義0900-0930的最大量為最大量,盤中若有更大量時則記錄並將此大量更新,若再有突破則持續更新。

=> 就描述來看,您的最大量一直都是當天的最大量,並不需要特別針對 0900~0930 來抓最大量。

如果是要 0930 以後才作篩選,可以直接將其當作條件。

舉例來說:

if date <> date[1] then value1 = volume;

if volume > value1 then value1 = volume;

 

condition1 = time >=093000 and value1 > value1[1];  //0930以後且創新高。

 

2. 此分時大單買賣力 < 成交量一半 (不論多空力道)

=> 您應該要用絕對值 absvalue,不然空方是負數,一定小於成交量。

 

3.此時漲幅 -7%~7%間

=> 這部分您的寫法會是1分鐘的成交價變動。(小幫手看您的腳本推測是使用在1分鐘上)

如果是要和昨日的收盤價相比的話,應該是 c/getfield("Close", "D") 才對。

發表回覆
Close