如何在一分K的警示中排除偵測漲跌停鎖死的股票

  •   344 
  • 最後發表   股市小貓咪  2025 一月 14
股市小貓咪 發文於   2025/01/07

這是XS自帶的腳本,用分K線警示,如果漲跌停鎖死會一直響警報,如何解決?

// 布林通道超賣訊號

//Input: Length(20), LowerBand(2);

settotalbar(Length + 3);

SetInputName(1, "期數");

SetInputName(2, "通道下緣");

 

Ret = Low <= bollingerband(Close, Length, -1 * LowerBand);

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/01/07

var: intrabarpersist hasOrdered(false);

if Low <= bollingerband(Close, Length, -1 * LowerBand) and hasOrdered=false then

   begin

      hasOrdered=true;

      ret=1;

   end;

  • 按讚來自於
  • kevin33822
股市小貓咪 發文於   2025/01/07

// 布林通道超買訊號

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;

所以我漲停這樣改可以通嗎?

虎科大許教授 發文於   2025/01/07

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;

股市小貓咪 發文於   2025/01/08

實在不好意思,虎科大許教授,再次向您請教,我用了您樓上的程式碼?  沒有任何訊號出現。對不起在麻煩您幫我確認一下

股市小貓咪 發文於   2025/01/08

想請問一下,您這個程式如果當天漲停打開還會有警示訊號嗎?  大概爬文了一下雖然還是不太懂,但大概知道用一個變數去控制,但邏輯我想不通,我看了一下這個程式是不是只要一天碰到第一次布林上軌之後就不會再觸發警告。因為找不到裡面有漲停鎖死的條件,是如何判斷不再觸發警告。

股市小貓咪 發文於   2025/01/08

我的邏輯是這樣的,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;

虎科大許教授 發文於   2025/01/08

(1)我提供的程式確實只要碰到布林上軌之後,只會觸發一次。

(2)布林通道接近0,不代表漲停。只要價格一直橫向整理,幾乎都用同一個價格成交,布林通道就會接近0。

(3)其實一直抓不到你想要的重點。我原本以為,你不希望漲停鎖死一直警示,因此為了避免一直重複警示,所以用變數控制警示一次之後就不再警示。

(4)看你的標題,重點似乎是要排除監控漲停鎖死的股票。若是這樣,只要判斷價格等於漲停價,且賣方沒有掛委賣即可。

if c=GetField("漲停價", "D") and q_BestAskSize=0 then return;

XS小編 發文於   2025/01/14

Hello 股市小貓咪,

 

小編補充,您也可以藉由策略中的觸發設定來避免連續觸發,例如設定為啟動後只觸發一次或是K棒內單次觸發。

網站上有教學區教學影片,裡面包含XS語法的基礎和應用可以參考閱覽。

發表回覆
Close