股市投资的困境和对策: 2017(50)12-16+回归起源 (2017-12-17 00:05:48)
来源: 信步华尔街 于 2017-12-17 00:30:39
********************************************************************
*********************************************************************
2017年至今收益:(净收益=毛收益-佣金) 毛收益 :1,735,535 净收益 :1,715,217 净收益率: 72.36% SPX同期:19.52%
第50周 (12-16)收益: 毛收益 :68,399 净收益 :67,821 净收益率:1.63% SPX同期:0.92%
(图中Profits and Losses 是2017年至今。周毛收益要计算一下:1,735,535-1,667,136=68,399)
上期谈到Apirine对Bolling Band改进得到的ESD(Exponential Standard Deviation) Band思路很好,无奈最终效果和Bolling Band几乎一样,改进得不理想。 ESD的改进为什么不成功呢?其一,是Band宽度的衡量还不够理想。其二,还是对过去20天波动幅度进行标准均差的方法不理想。
我们要用Band宽度来衡量市场的波动性。Bollinger Band用过去20天股价的标准均差。ESD用过去20天股价和当天20EMA的距离的标准均差。两者都是用股价和均线的距离直接作为衡量市场的波动性的标准。由于最终的波动性是要作为宽度来叠加到均线上的,这是不是有一点循环论证的悖论?
有没有什么其它方法来衡量市场的波动性?
如果你花些时间Research,你会发现,尽管布林线最出名,但Trading Band的概念其实他不是原创。Bollinger 80年代才有了这个主意(前些年聪明地把它TradeMark起来,这下可以收各平台的授权费了,商业上还是很聪明的。),而另一个传奇人物,Keltner,在1960年的出版的书《How To Make Money in Commodities》里已经系统地提出了Trading Band的概念。当然,他没有给它取一个好名字,而且它的用法和Trading Band思想有不同。
Keltner是这样定义Trading Band的:
每日典型价格(Typical Price) = (high+low+close)/3
平均价格(Average Price) = 10-Day Simple Moving Average (10SMA) of Typical Price
每日波动范围(Range)= high - low
平均波幅(Average Range) = 10-Day Simple Moving Average (10SMA) of Range
中轨:平均价格
上轨:中轨 + 平均波幅
下轨:中轨 - 平均波幅
由于ThinkOrSwim平台没有这个原始指标,我写了个TSScript小程序(KChannel),来显示这个原始的思想。
上图显示的Keltner的Trading Band在2016年初附近波动激烈时的反应。图中可以看出,Trading Band的波动幅度是随着市场波动大幅变化的。
不过,你也看出来了,这个Trading Band好像什么都包不住。而Bollinger Band则几乎包住所有的股价(95%)。这是因为,Keltner的这个交易系统,是用来Follow Trend的,即股价突破上轨,涨;股价突破下轨,跌。和Bollinger Band想达到的效果不同。Bollinger Band表达的是,如果平均波动为Sigma(Standard Deviation),则极限波幅为2*Sigma。按照正态分布的理论,2*Sigma处就有95%的股价在其中。Keltner的波幅用的是简单移动平均,道理不太一样。但是,平均波幅显然不能表达极限波幅的概念。我们简单改进一下,极限波幅是平均波幅的两倍,和Bollinger Band类似,看看是什么效果。
奇迹出现!上下两个Band几乎达到Bollinger Band一样的效果!
接下来我们再详细比较一下2xKeltner Band和Bollinger Band(调整到10日,而非标准的20日)的宽度变化。
上图的下半部是改进后的Enhanced Keltner Band Width 和Bollinger Band Width的比较。红线为BBWidth,蓝线是EKBWidth。均为10日。可见,BBWidth还是一如既往,有规律地时大时小,像我们的余弦教授。而EKBWidth则稳定多了。
最后,我们来验证一下两个Band实际中的作用:
红的是Bollinger Band,蓝的是Enchanced Keltner Channel。中轨基本重合。看到Bollinger Band上窜下跳,是不是EKChannel要可爱得多?
你可能觉得不公平,Bollinger Band的实力在20日均线。而Keltner长处在10日均线。那我们比较一下EKC10日和BB20日:(红的是Bollinger Band,蓝的是Enchanced Keltner Channel。)还是蓝的好吧。既贴近股价,又基本包括了高低点,同时又稳定?
看来我也可以声称一个信步Band的创新乐。。。起码优于著名的Bollinger Band吧。各位Bollinger Band的发烧友,不妨试试我这个Band?
用ThinkOrSwim的股友,这是我的代码,你可以导入到平台:(注意在Study Properties里price要选成(High+Low+Close/3)以显示EKB的原始指标。
KChannel:
input displace = 0;
input factor = 2;
input length = 10;
input price = close;
input averageType = AverageType.SIMPLE;
input rangeAverageType = AverageType.SIMPLE;
def shift = factor * MovingAverage(rangeAverageType, high - low, length);
def average = MovingAverage(averageType, price, length);
plot Avg = average[-displace];
Avg.SetDefaultColor(GetColor(1));
plot Upper_Band = average[-displace] + shift[-displace];
Upper_Band.SetDefaultColor(GetColor(8));
plot Lower_Band = average[-displace] - shift[-displace];
Lower_Band.SetDefaultColor(GetColor(5));
且慢,这才刚刚是个开始呢。遵循Keltner关于波幅的思想,还有很多可以进一步改进的地方。下周我们继续探讨。
|