語法選股

  •   397 
  • 最後發表   藍色雲絲頓  2022 六月 23
藍色雲絲頓 發文於   2022/05/31

input:length(20);

variable:up1(0),down1(0),mid1(0),bbandwidth(0);

up1 = bollingerband(Close, Length, 1);

down1 = bollingerband(Close, Length, -1 );

mid1 = (up1 + down1) / 2;

 

bbandwidth = 100 * (up1 - down1) / mid1;

if bbandwidth crosses above 5 and close > up1 and close> up1[1]

and average(close,20)>average(close,20)[1]

then ret=1;

我修改後好像還是不行

請問我要撰寫語法,可是我調整後還是不行,

想要編寫一個

布林通道震幅A日都在B%內

(上通道除下通道)減一)乘100%=C%

輸入A日語B%選出C

請教大大如何編寫

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/06/06

Hello 藍色雲絲頓,

 

小幫手不太確定您上面的腳本是要用什麼條件篩選,跟您描述的有些差別。

布林通道的中線其實就是移動平均線,所以也可以使用 Average 計算。

至於N日內都要符合條件,您可以參考 TrueAll 函數。

附上選股腳本供您作參考。

附加文件

藍色雲絲頓 發文於   2022/06/09

抱歉,我搞得太複雜了

我想要寫一個腳本,關於布林帶寬的

當天的(上通道/下通道) -1 再乘 百分比

ex:上通道50.12,下通道47.63

50.12除47.63再減1等於0.05

0.05再乘百分比=5%

 

設定n值大於帶寬,篩選出股票

 

 

P.S只單純用上,下通道做數值篩選,不使用中軌

XQ小幫手 發文於   2022/06/15

Hello 藍色雲絲頓,

 

您只需要將條件的部分改為運算出的 Value1 大於限制即可。

附上修改過的選股腳本供您參考。

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

附加文件

藍色雲絲頓 發文於   2022/06/17

好像有點怪怪的

輸入  

%B=N

N輸入後,篩選出來的好像怪怪的,不再預設的帶寬內

我是要輸入A數值大於布林帶寬

A數值選出我設限以內布林帶寬的股票

 

EX:我要震幅5%內

A:上通道100.66 ,下通道97.43再減1後乘100

((100.66/07.43)-1)*100=3.31%  //該股會被選出來

B:上通道100.66 ,下通道80.55再減一後乘100

((100.66/80.55)-1)*100=24.96%  //該股不會被選到

 

我單股看股時指標是這樣寫的

// XQ: BBandWidth指標

//

input: Length(20), UpperBand(2), LowerBand(2), EMALength(3);

variable: up(0), down(0), mid(0), bbandwidth(0), ema(0);

 

SetInputName(1, "天數");

SetInputName(2, "上");

SetInputName(3, "下");

SetInputName(4, "EMA");

 

up = bollingerband(Close, Length, UpperBand);

down = bollingerband(Close, Length, -1 * LowerBand);

mid = (up + down) / 2;

 

bbandwidth = (up / down)  -1;

ema = XAverage(bbandwidth, EMALength);

 

Plot1(bbandwidth , "BBand width(%)");

Plot2(ema, "Band% EMA");

 

這是看個股時的我設定的布林指標,點擊K棒他就顯示帶寬了

XQ小幫手 發文於   2022/06/23

Hello 藍色雲絲頓,

 

您前一次要的條件是 設定n值大於帶寬,篩選出股票。

這次描述的條件是 A數值選出我設限以內布林帶寬的股票。

小幫手不清除您是要以內 (100 * (上通道/下通道) - 1 < N) 還是大於 (100 * (上通道/下通道) - 1 > N)。

不過您可以自行修改:

 

input:bblength(20, "BB計算長度"), _limit(3, "B%");

variable:up1(0),down1(0),mid1(0),bbandwidth(0);

 

up1 = bollingerband(Close, bblength, 1);     //這邊計算的布林帶寬是1個標準差,要不同帶寬可以修改最後一個參數 (ex. bollingerband(Close, bblength, 2))

down1 = bollingerband(Close, bblength, -1 );  //同上

 

value1 = ((up1 / down1) - 1) * 100;   //布林通道震幅

 

condition1 = value1 > _limit;   //布林通道震幅value1大於B%,如果是要小於B%的話可以改成  condition1 = value1 < _limit;

 

if condition1 then ret = 1;

 

outputField1(value1, "布林通道震幅");  

 

小幫手建議您可以先閱覽網站上的教學區,裡面有XS語法的基礎和應用。

發表回覆
Close