電子信箱 service [at] bituzi.com
幣圖誌首頁 facebook粉絲團 google plus google plus


開發商品的交易系統 - 基礎篇 [46] - 布林極限


布林極限(%BB)由布林帶衍生而來的,輔助布林帶研判買賣信號的可靠性
布林帶(Bollinger Bands,BBands)也稱為布林通道、包寧傑帶狀、保力加通道或布歷加通道,是由約翰·包寧傑(John Bollinger)在1980年代發明的技術分析工具。應用上結合了移動
平均和標準差的概念,其基本的型態是由三條軌道線組成的帶狀通道(中軌和上、下軌各一條)。中軌為股價的平均成本,上軌和下軌可分別視為股價的壓力線和支撐線。

%BB 指標(Percent b,PBB),以數字形式呈現收盤價在布林帶中的位置,做為交易決策時的關鍵指標。例如:當%BB值為0.5(或以百分比表示50%),代表收盤價處於布林帶的中間位置。


%BB值 = (收盤價−布林帶下軌值) ÷ (布林帶上軌值−布林帶下軌值)

由於收盤價會在上、下軌道震盪遊走,幅度甚至大於軌道範圍(0~1),因此%BB值沒有上下限。當走勢向上突破,收盤價落於上軌上方時,%BB值> 1;而走趨向下突破,收盤價落在下軌下方時,%BB值< 0。 藉由觀察分析「%BB指標」可以提供投資時的參考,依據指標的強弱走勢,作出買賣決策。

在1996 "STOCKS & COMMODITIES" 雜誌中有一篇文章  “Enhancing on-balance and negative volume” 作者Phillip Holt's 介紹了將 OBV指標應用了布林極限的觀念發展了一個新指標 OBVDI " OBV disparity trading system"作為趨勢判斷的元素。這個指標主要是將以價格為基礎的%BB 與以 OBV為基礎的 %BB分別計算後,再求其比值作為策略元素。

Name: OBVDI
Type: User-Function 

Inputs: Length(Numeric);
Vars: BollTop(0), BollBot(0), PerB(0), OBVBollTop(0), OBVBollBot(0), OBVPerB(0); BollTop=BollingerBand(Close,Length,2);
BollBot=BollingerBand(Close,Length,-2);
If (BollTop-BollBot)<>0 then PerB=(Close-BollBot)/(BollTop-BollBot);
OBVBollTop=BollingerBand(OBV,Length,2);
OBVBollBot=BollingerBand(OBV,Length,-2);
If (OBVBollTop-OBVBollBot)<>0 then OBVPerB=(OBV-OBVBollBot)/(OBVBollTop-OBVBollBot);

OBVDI=(1+PerB)/(1+OBVPerB);

也可以從這裡下載 http://www.multicharts.com/support/base/?action=article&id=1354

{系統參數與變數}
input:ExitType(2);
inputs:NBarL(5),NBarS(45),TradeProfit(0.055),TradeStopLoss(0.038),ATRs_L(0.75),ATRs_S(3.5);
vars: IsBalanceDay(False),MP(0),PF(0),PL(0);

inputs: LenA(9),AvgL(16),LenB(20),AvgS(7),HB(1.09),LB(1.2),HighBar(8),LowBar(7);
Vars: OBVL(0),OBVS(0), AvgL1(0), AvgS1(0) ;

MP = MarketPosition ;
if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3
then isBalanceDay = True else isBalanceDay =False ;

PF = AvgPrice*TradeProfit ;
PL = AvgPrice*TradeStopLoss ;
{ 多方 OBVL 計算 }
OBVL = _OBVDI(LenA) ;
AvgL1 = Average(OBVL,AvgL) ;

{ 空方 OBVS 計算 }
OBVS = _OBVDI(LenB) ;
AvgS1 = Average(OBVS,AvgS) ;

{ OBVL 上穿均線則在下根K棒為近期高點時買進作多 }
if MP <> 1 and OBVL Cross over AvgL1 then Buy next bar at Highest(High,HighBar) stop ;

{ OBVsS 下穿均線則在下根K棒為近期低點時賣出作空 }
if MP <> -1 and OBVS Cross under AvgS1 then Sell next bar at Lowest(Low,LowBar) stop ;

if ExitType = 1 then SetStopLoss(PL * BigPointValue) ;

if ExitType = 2 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
end;

if ExitType = 3 then Begin
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;
if ExitType = 4 then Begin
SetStopLoss(PL * BigPointValue) ;
SetProfitTarget(PF * BigPointValue) ;
if MP > 0 and BarsSinceEntry = NBarL then {Sell } ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then {Buy} ExitShort next bar at Market ;
end;

if IsBalanceDay or date = 1150224 then setExitonClose ;
台指期 30 min K 多空留倉 交易週期 2005/3/1~ 2015/2/28 交易成本 1200

加上如意多空網台指期 30 min K 多空留倉 交易週期 2005/3/1~ 2015/2/28 交易成本 1200


OBVDI 指標主要合成了價格與成交量的對應關係,通常搭配成交量開發的策略都有不錯的績效表現,只是應用成交量時要注意到日K以上週期是 Volume ,分K週期是使用 Ticks,所以讀者使用內建 OBV函數時要作修改才能同時應用於日K與分K的策略測試。

0 意見: