這是XS自帶的腳本,用分K線警示,如果漲跌停鎖死會一直響警報,如何解決?
// 布林通道超賣訊號
//Input: Length(20), LowerBand(2);
settotalbar(Length + 3);
SetInputName(1, "期數");
SetInputName(2, "通道下緣");
Ret = Low <= bollingerband(Close, Length, -1 * LowerBand);
這是XS自帶的腳本,用分K線警示,如果漲跌停鎖死會一直響警報,如何解決?
// 布林通道超賣訊號
//Input: Length(20), LowerBand(2);
settotalbar(Length + 3);
SetInputName(1, "期數");
SetInputName(2, "通道下緣");
Ret = Low <= bollingerband(Close, Length, -1 * LowerBand);
// 布林通道超買訊號
Input: Length(20), UpperBand(2);
settotalbar(Length + 3);
SetInputName(1, "期數");
SetInputName(2, "通道上緣");
var: intrabarpersist hasOrdered(false);<<<<<看不懂這段意思
if High >= bollingerband(Close, Length, UpperBand) and hasOrdered=false then
begin
hasOrdered=true;
ret=1;
end;
所以我漲停這樣改可以通嗎?
Input: Length(20), UpperBand(2);
settotalbar(Length + 3);
SetInputName(1, "期數");
SetInputName(2, "通道上緣");
var: intrabarpersist hasOrdered(false); //<<<<<看不懂這段意思 //建議爬文學習intrabarpersist的用法
if date<>date[1] then hasOrdered=false; //<<<<<加上這行,在每天第一根分K還原變數為預設值
if High >= bollingerband(Close, Length, UpperBand) and hasOrdered=false then
begin
hasOrdered=true;
ret=1;
end;
實在不好意思,虎科大許教授,再次向您請教,我用了您樓上的程式碼? 沒有任何訊號出現。對不起在麻煩您幫我確認一下
想請問一下,您這個程式如果當天漲停打開還會有警示訊號嗎? 大概爬文了一下雖然還是不太懂,但大概知道用一個變數去控制,但邏輯我想不通,我看了一下這個程式是不是只要一天碰到第一次布林上軌之後就不會再觸發警告。因為找不到裡面有漲停鎖死的條件,是如何判斷不再觸發警告。
我的邏輯是這樣的,XS系統預設程式 bbandwidth(不林帶寬),當漲跌停鎖死時bbandwidth會逐漸接近0 ,所以加入了bbandwidth至少需要>0的條件請問這樣邏輯跟編碼可以嗎? 再請幫忙指導謝謝您~虎科大許教授
// 布林通道超買訊號
Input: Length(20), UpperBand(2), LowerBand(2);
variable: up(0), down(0), mid(0),bbandwidth(0);
settotalbar(Length + 3);
SetInputName(1, "天數");
SetInputName(2, "上");
SetInputName(3, "下");
up = bollingerband(Close, Length, UpperBand);
down = bollingerband(Close, Length, -1 * LowerBand);
mid = (up + down) / 2;
bbandwidth = 100 * (up - down) / mid;
if High >= bollingerband(Close, Length, UpperBand) and bbandwidth >= 0.2 then ret=1;
(1)我提供的程式確實只要碰到布林上軌之後,只會觸發一次。
(2)布林通道接近0,不代表漲停。只要價格一直橫向整理,幾乎都用同一個價格成交,布林通道就會接近0。
(3)其實一直抓不到你想要的重點。我原本以為,你不希望漲停鎖死一直警示,因此為了避免一直重複警示,所以用變數控制警示一次之後就不再警示。
(4)看你的標題,重點似乎是要排除監控漲停鎖死的股票。若是這樣,只要判斷價格等於漲停價,且賣方沒有掛委賣即可。
if c=GetField("漲停價", "D") and q_BestAskSize=0 then return;
8 評論