想針對此做確認,一般程式語言有static的宣告用於靜態變數。
我要用來做一個barcount的設計,如果台股股票開盤前15分鐘做barcount的累計。我是否要將barcount宣告成static?
以下是我的策略片段,計畫寫成是1分鐘k當沖策略,關於程式裡面的variable,是否需要將barcount宣告成static?
因為程式會每分鐘執行一次,這樣barcount又會成為0?想確認此點問題。(註解也寫在下方)
if barfreq <> "Min" or barinterval <> 1 then raiseRunTimeError("本腳本只適用於1分鐘線");
variable:barcount(0),avg15vo(0),openvo(0),totalvo(0),H15(0),L15(0),_range(0);
if date <> date[1] then barcount=1 else barcount+=1;
if barcount = 15 then //AM09:15(09:14:59)
begin
H15 = highest(high,15); //前15分鐘最高價
L15 = lowest(low,15); //前15分鐘最低價
totalvo = volume[0] + volume[1] + volume[2] + volume[3] + volume[4] + volume[5] + volume[6] + volume[7] + volume[8] + volume[9] + volume[10] + volume[11] + volume[12] + volume[13] + volume[14]; //前15分鐘的K棒總成交量(因為前面的程式barcount計算,直到第15根if barcount = 15才會進行此條件式)
avg15vo = totalvo/15; //開盤前15根bar的平均量
end;
if L15 <> 0 then _range=H15/L15-1;
condition1 = false;
if barcount > 15 and close > H15 and _range >= 0.01 and avg15vo/GetField("成交量","D")[1] > 0.10 and GetField("成交量","D")[1] > 1000 then
begin
condition1 = true;
retmsg = "ORB當沖多策略開盤前15根平均成交量與前一日成交量比多10%";
end;
//15分鐘後,當下開盤價大於今日前15分鐘的最高價
//且
//前15分鐘的最高價與最低價差距>1%
//且
//前面15根bar的平均量佔昨日成交量的10%以上
//且
//前日成交量要大於1000張的股票
//這樣衡量開盤平均15分鐘的成交量如果已經佔昨日收盤的成交量的10%,表示交易活躍。
//此為第一層濾網,此第一層濾網用1分k的前15分鐘做判斷,從1800多檔股票篩選出合適的股票。
2 評論