本帖最後由 ilpir 於 11-3-12 11:50 AM 編輯
這裡把之前寫過的文章發表上來,並提供指標程式 有興趣可自行下載滙入MC或tradestation 使用~ 布林通道的發明人:John Bollinger 寫了一本書叫:Bollinger on Bollinger Bands(寰宇出版), 裡面從通道操作的歷史開始講,到布林通道的誕生, 當然也提到許多布林通道的運用.個人覺得蠻值得一看的. 其中第17章:布林與其它技術指標.在2年前第一次看到這個想法, 覺得實在是太酷了!!但也可能是自己經驗不足才這麼覺得吧..><
書上寫的觀念就是算出震盪指標的標準差,再相加減定出上下限.
如:一般我們看到的布林通道就是: 價格平均值(通常為20根K) +一段時間(通常為20根K)的價格標準差à上限 價格平均值(通常為20根K -一段時間(通常為20根K)的價格標準差à下限
RSI 加上布林通道就是: RSI+ 一段時間(通常為20根K)的RSI標準差à上限 RSI - 一段時間(通常為20根K)的RSI標準差à下限 那有趣在那裡呢??
RSI 通常使用80-20 ,70-30 當一個判斷線, 但如加上標準差後判斷線就是隨著RSI的起伏做變動,而不局限在固定範圍 如下面圖形一.當然好不好用是見人見智囉~
因為RSI 最大值是100 最小值是0,所以我們也可以把判斷改成:
50I+ 一段時間(通常為20根K)的RSI標準差à上限 50- 一段時間(通常為20根K)的RSI標準差à下限
效果如下圖形二
提供的RSI+BOLL 程式在參數的選項有一個可以自行切換成,圖形一或二 這裡提供RSI+BOLL 的程式碼
其它指標+BOLL就以此類推,直接修改.將程式內的RSI 換掉就行~ 之後會陸續把一些個人的想法或有趣的指標,策略寫上來. 當然可能這些大家都知道了,也覺得沒什麼 .>< 只是當一個心得整理,或交流討論,也或許可以提供一個操作上的靈感~ 圖一
圖二
indicator
[LegacyColorValue = TRUE]; {*******************************************************************
Description : This Indicator plots RSIBOLL
Provided By :Ray 2009
********************************************************************} Inputs: Price(Close), LengthBoll(20),Length(14),SwitchOn(1),StdDevUp(2),Displace(0),StdDevDn(-2),BZColor(Green), SZColor(Magenta);
Variables: BBTop(0), BBBot(0),RR(0),b(0); BBTop = RSIBoll(Price, LengthBoll,Length,StdDevUp,SwitchOn);
BBBot = RSIBoll(Price, LengthBoll,Length,StdDevDn,SwitchOn);
RR=rsi(Price,Length);
If Displace >= 0 OR CurrentBar > AbsValue(Displace) Then Begin
Plot1[Displace](RR, "RSI");
Plot2[Displace](BBTop, "RSIBollTop");
Plot3[Displace](BBBot, "RSIBollBot");
If Plot1 > Plot2 then Begin
Alert("The RSI is in overbought territory");
SetPlotColor(1, SZColor);
End
Else
If Plot1 < Plot3 then Begin
Alert("The RSI is in oversold territory");
SetPlotColor(1, BZColor);
End; {RSI Expert Commentary }
#BeginCmtry
Commentary(ExpertRSI(Plot1, Plot2, Plot3));
#End;
End;
Function
[LegacyColorValue = TRUE]; {*******************************************************************
Description: Relative Strength Indicator into Bolling
Provided By: Ray 2009
********************************************************************Average(RSI(Price,Length), LengthBoll) } Inputs: Price(NumericSeries),LengthBoll(NumericSeries), Length(NumericSimple),StandardDev(NumericSimple),SwitchOn(NumericSimple);
Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0);
if SwitchOn = 1 then
RSIBOLL =50 + (StandardDev * StdDev(RSI(Price,Length), LengthBoll));
if SwitchOn = 2 then RSIBOLL =AverageFC(RSI(Price,Length),20)+ (StandardDev * StdDev(RSI(Price,Length), LengthBoll));
|