bossanovajoe 發表於 13-2-3 11:06

請問,用 easylanguage寫的 BB BandWidth Indicator

再 google   大神之下

找到easylanguage   寫的 個BB BandWidth Indicator可是都不能用

請問誰有可以用的版本   或是幫忙看一下,哪裡有錯

原程式碼   


inputs: Length (20), NumStdDevs (2), Price ((O + H + L + C) / 4);
variables: MidBand (0), StdDev (0);

MidBand = AverageFC (Price, Length);
StdDev = StandardDev (Price, Length, 1) * NumStdDevs;
if MidBand > 0 then
{        TopBand = MidBand + StdDev;
        BottomBand = MidBand - StdDev;
        Plot1 ((TopBand - BottomBand) * 100 / MidBand, "BollBW"); }
        Plot1 (2 * StdDev * 100 / MidBand, "BollBW");



bossanovajoe 發表於 13-2-3 11:28

補充

跳出的錯誤   好像是   Price ((O + H + L + C) / 4);這裡
結果顯示   是    ((((o + h) + l) + c) / 4)

sangi 發表於 13-2-3 13:52

本帖最後由 sangi 於 13-2-3 13:57 編輯

剛跑過程式..沒問題

話說 Price 是否一定要用(O+H+L+C)/4 ? ........先把他改成Close 來試看看吧


提供我的版本給你參考

1. Bollinger Band Width : (UBand-LBand)/ MidBand

Inputs: Length (20) ,NumStdDevs(2) ,PriceValue((O + H + L + C) / 4) ;
Vars: BMidBand(0) ,BUpperBand(0) ,BLowerBand(0) ,BBandWidth(0) ;

BMidBand = AverageFC(PriceValue,Length) ;
BUpperBand = BollingerBand(PriceValue,Length,NumStdDevs) ;
BLowerBand = BollingerBand(PriceValue,Length,-NumStdDevs) ;

BBandWidth = IFF(BMidBand > 0 ,(BUpperBand - BLowerBand)/BMidBand,0)   ;

Plot1(BBandWidth) ;

2. Bollinger Band %B : (Price-LBand)/(UBand-LBand)

Inputs: Length (20) ,NumStdDevs(2) ,PriceValue((O + H + L + C) / 4) ;
Vars: BMidBand(0) ,BUpperBand(0) ,BLowerBand(0) ,BBandPercentB(0) ;

BMidBand = AverageFC(PriceValue,Length) ;
BUpperBand = BollingerBand(PriceValue,Length,NumStdDevs) ;
BLowerBand = BollingerBand(PriceValue,Length,-NumStdDevs) ;

BBandPercentB = IFF(BUpperBand <> BLowerBand,(PriceValue - BLowerBand) / (BUpperBand - BLowerBand),0) ;

Plot1(BBandPercentB) ;   





bossanovajoe 發表於 13-2-3 15:30

請問大大,小弟哪裡出錯

bossanovajoe 發表於 13-2-3 15:32

請問大大,小弟哪裡出錯

共 四張圖   剛剛 手殘,沒發滿四張

bossanovajoe 發表於 13-2-3 15:52

忘記補上我抓來的%bcode         應該是 easylanguage 吧...

inputs:
        Price( Close ),
        Period( 18 ),
        Deviations( 2 ),
        BandColor( Cyan ),
        SignalLineColor( Red ),
        MidPointColor( White ) ;

variables:
        MidLine( 0 ),
        BandOffset( 0 ),
        UpperBand( 0 ),
        LowerBand( 0 ),
        PerB( 0 ) ;

MidLine = Average( Price, Period ) ;
BandOffset = Deviations * StandardDev( Price, Period, 1 ) ;
UpperBand = MidLine + BandOffset ;
LowerBand = MidLine - BandOffset ;

if UpperBand <> LowerBand then
        PerB = 100 * ( Price - LowerBand ) / ( UpperBand -
       LowerBand ) ;

Plot1( PerB, "%b" ) ;
Plot2( 100, "100", BandColor ) ;
Plot3( 0, "0", BandColor ) ;
Plot4( 50, "50", MidPointColor ) ;

sangi 發表於 13-2-3 16:15

後來發現你的軟體好像不是MC/TS....

那我就幫不上忙啦...

tanym0131 發表於 13-2-3 19:10

請問各位大大,我看大家的公式中,都有除MidBand,降會使數字變得比較小,目的是?

(TopBand - BottomBand) * 100 / MidBand

案例1(除一個midband)
如果現在為midband=3000,topband-bottomband=100
與現在為midband=7000,topband-bottomband一樣為100
算出來的值是不一樣的

案例2(不除midband)
如果現在為midband=3000,topband-bottomband=100
與現在為midband=7000,topband-bottomband一樣為100
算出來的值是一樣的

哪一個是大家想要的?and why?

sangi 發表於 13-2-3 19:57

本帖最後由 sangi 於 13-2-3 20:10 編輯

直覺來想...

3000點時(假設這時的價位就在MidBand上),上/下波動N Stdev 的100點,

和7000點時上/下波動N Stdev 的100點是不一樣的...

前者可是3.3%,而後者只有1.4%

透過除以MidBand的操作,兩者才能作比較,

你可以把他看作是一個[標準化]的動作,統計上做標準化的目的在於可以作比較..






bossanovajoe 發表於 13-2-4 01:45


本帖最後由 sangi 於 13-2-3 13:57 編輯


剛跑過程式..沒問題

話說 Price 是否一定要用(O+H+L+C)/4 ? ........先把他改成Close 來試看看吧

真的ㄟ   改成 close就 ok 了

期貨藝術家 發表於 13-2-4 02:14

可以先用 value1=(O+C+H+L)/4

再用MidBand = AverageFC (value1, Length);

tanym0131 發表於 13-2-4 10:43

sangi 發表於 13-2-3 19:57 static/image/common/back.gif
直覺來想...

3000點時(假設這時的價位就在MidBand上),上/下波動N Stdev 的100點,


恩恩,我看兩種方法都有人用,所以好奇各自使用的情境為何。


頁: [1]
查看完整版本: 請問,用 easylanguage寫的 BB BandWidth Indicator