想請問警示如何連續抓出我想要的選股

  •   75 
  • 最後發表   沖沖沖  2023 五月 16
沖沖沖 發文於   2023/05/15

variable:MeetTarget(0), C1(0), C2(0), C3(0);

settotalBar(1);

 

//偵側跨日

if date<>date[1]then

begin

Meettarget=0;

if getField("refprice","D")>20

and getField("refprice","D")<95

and getField("volume","D")[1]>3000

then MeetTarget=1;

end;

 

if meetTarget=1 //假上上面成立

then 

begin 

C1=0;

if time<=091000 //抓9.10分以前的

and getField("high","D")<getField("refprice","D")*1.07

and getField("high","D")>getField("open","D")*1.02 // 抓7%以下2%以上

then C1 = 1;

end;

 

if C1 = 1

then

begin

C2=0;

if getField("low","D")<getField("open","D") //今天最低點小於開盤價

then C2=1;

end;

 

if c2=1

then

begin

C3=0;

if high>(getField("high","D")+getField("low","D"))/2//最高價大於(當日高點+當日低點)/2

then C3=1;

end;

 

if C3=1 then ret=1;



剛自學沒幾天 想寫出一個可以連續過濾股票的警示雷達
但是實測一直不盡人意

想要一個雷達是可以

先抓出 價格跟量 在範圍內的選股

再來抓出範圍內選股

9點10分以前

上漲7% 以內

上漲2% 以上

的股票

再來從上述範圍抓出今天最低點小於開盤價的

再抓出最高價大於當日低點/2的股票

 

還請高人指點怎麼寫比較好

XQ小幫手 發文於   2023/05/16

Hello 沖沖沖,

 

小幫手會建議您變數在警示後再歸0。

舉例來說:

if meetTarget=1 then begin 

    C1=0;

    if time<=091000 and getField("high","D")<getField("refprice","D")*1.07

        and getField("high","D")>getField("open","D")*1.02

        then C1 = 1;

    end;

 

這種寫法會讓當 meetTarget=1 但裡面條件不符合時 C1 = 0。

換句話說,就算091000以前條件有達成,到了 091000 以後 C1又會變成0。

 

所以可以在當日開始時 (if date<>date[1]) 和 警示條件達成時 (if C3=1) 將變數歸0,避免上述狀況發生。

發表回覆
Close