找回密码
 注册
搜索
查看: 934|回复: 0

[系列贴] 股市投资的困境和对策: 2017(50)12-16+回归起源 (ZT)

[复制链接]
发表于 2017-12-18 03:07 PM | 显示全部楼层 |阅读模式


                            股市投资的困境和对策: 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关于波幅的思想,还有很多可以进一步改进的地方。下周我们继续探讨。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|www.hutong9.net

GMT-5, 2024-3-28 11:24 AM , Processed in 0.031223 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表