




免费预览已结束,剩余53页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TB公式高级应用,黄柳,深圳市拓瑞邦泽科技有限公司,第一部分,持仓交易系统的分析和实现,持仓交易系统的设计要素,设计思路:趋势跟踪;设计原则:不能错过主要趋势;设计细节:减少盘整时的连续亏损和最大资金回撤。总结:Cutlossshort,letprofitrun截短亏损,让利润奔跑!,常见的持仓交易系统,高低点突破系统(四周法则)双均线系统(DualMA)波动性突破系统(ATR)布林通道突破系统(BOLL)抛物线转向系统(SAR)顾比倒数线系统(CBL),KeltnerChannelSystem,基于KeltnerChannel(肯特纳通道)的持仓交易系统。由价格均线和ATR形成通道,当价格突破通道产生入场讯号。,KeltnerChannel原理,肯特纳通道(KC)是一个移动平均通道,由三条线组合而成(上轨、中线及下轨),若价格突破边界,即表示出现开仓机会。肯特纳通道是基于平均真实波幅原理而形成的指标,对价格波动反应灵敏,基于KC的系统可以实时开仓,不需要等待下一个Bar。,KeltnerChannel算法,中线=TypicalPrice的N周期平均值;TypicalPrice=(High+Low+Close)/3;上轨=中线+通道;通道=NumATRs*平均真实波幅。,KeltnerChannel指标,ParamsNumericLength(20);NumericNumATRs(1);VarsNumericSeriesTPrice;NumericAvgValue;NumericShiftValue;NumericUpperBand;NumericLowerBand;BeginTPrice=(High+Low+Close)/3;AvgValue=AverageFC(TPrice,Length);ShiftValue=NumATRs*AvgTrueRange(Length);UpperBand=AvgValue+ShiftValue;LowerBand=AvgValue-ShiftValue;PlotNumeric(UpperBand,UpperBand);PlotNumeric(LowerBand,LowerBand);PlotNumeric(MidLine,AvgValue);End,KCS版本1(1),ParamsNumericLength(20);NumericNumATRs(1);VarsNumericSeriesTPrice;NumericAvgValue;NumericSeriesShiftValue;NumericUpperBand;NumericLowerBand;NumericMyPrice;BeginTPrice=(High1+Low1+Close1)/3;AvgValue=AverageFC(TPrice,Length);ShiftValue=NumATRs*AvgTrueRange(Length);UpperBand=AvgValue+ShiftValue1;LowerBand=AvgValue-ShiftValue1;,KCS版本1(2),If(MarketPosition!=1End,KCS_V1测试结果汇总,KCS_V2(1),KeltnerChannel的指标发明人是ChesterKeltner,最初的版本中线和ATR的参数都是20,即我们现在看到的版本。KC指标由琳达-拉什克(LindaRaschke)再度优化改进,她采用10周期ATR值计算上下轨.因此我们将ATR的参数和MidLine的参数分开;,KCS_V2(2),增加参数ATRLength。ShiftValue=NumATRs*AvgTrueRange(ATRLength);通过橡胶指数的测试我们发现,净利润减少2615,但最大资金回撤也减少了1760。风险降低的比例明显大于收益减少的比例,所以这样的调整是有意义的。,KCS_V3(1),以橡胶测试结果为例,从报表中我们看到,最大回撤发生的日期是2006/7/18,我们仔细查看交易记录和讯号,可以看到最大的资金回撤是由于一次盈利平仓过慢,以及两次假突破导致。因此我们有必要增加一个跟踪止损的设置。我们选择固定点数跟踪止损(吊灯止损)。,KCS_V3(2),KCS_V3(3),增加参数TrailingStop,默认值设为400;增加变量MinPoint,用来保存最小变动单位。MinPoint=MinMove*PriceScale;增加序列变量HigherAfterEntry,LowerAfterEntry用来保存开仓后的最高价或最低价。为了避免在一个较长Bar上出现错误的止损信号,我们在计算时不考虑当前Bar的最大盈利。,KCS_V3(4),If(BarsSinceEntry=1)HigherAfterEntry=AvgEntryPrice;LowerAfterEntry=HigherAfterEntry;ElseIf(BarsSinceEntry1)HigherAfterEntry=Max(HigherAfterEntry1,High1);LowerAfterEntry=Min(LowerAfterEntry1,Low1);Commentary(HigherAfterEntry=+Text(HigherAfterEntry);Commentary(LowerAfterEntry=+Text(LowerAfterEntry);,KCS_V3(5),If(MarketPosition=1)If(Low=LowerAfterEntry+TrailingStop*MinPoint)MyPrice=LowerAfterEntry+TrailingStop*MinPoint;If(OpenMyPrice)MyPrice=Open;BuyToCover(1,MyPrice);,KCS_V3(6),我们将编译后的系统重新运行,会看到净利润上升了13295,最大资金回撤下降了14575,改进的效果是非常明显的。我们再回顾2006年7月的图表,KCSV3的讯号如下图:如图中红圈位置,在跟踪止损之后,价位还在KC上轨之上,系统再次入场。我们应该思考一种新的入场规则,在跟踪止损或止损后再次入场。,KCS_V3(7),KCS_V4(1),重新入场规则:做多时突破前期高点再次入场;做空时突破前期低点再次入场。为了实现重新入场,我们需要记录跟踪止损的状态。还需要记录最近的最高、最低点。,KCS_V4(2),新增序列变量:BoolSeriesbLongTrailingStoped;BoolSeriesbShortTrailingStoped;初始化:If(BarStatus0)bLongTrailingStoped=bLongTrailingStoped1;bShortTrailingStoped=bShortTrailingStoped1;Commentary(bLongTrailingStoped=+IIFString(bLongTrailingStoped,True,False);Commentary(bShortTrailingStoped=+IIFString(bShortTrailingStoped,True,False);,KCS_V4(3),增加一个条件分支,记录HigherAfterEntry和LowerAfterEntry的值。再次入场的代码:If(bLongTrailingStoped,KCS_V4(4),修改之后的系统测试结果没有明显的变化,但是这次修改去掉了明显不合理的入场,对于系统的连续性和稳健性有了一定的提升。前面我们使用了固定400点的跟踪止损,在整个测试周期里面,橡胶价格最高接近3万,最低6600。所以使用固定的点数明显不合理,因此我们决定采取根据当前价格的某个比值进行吊灯跟踪止损。,KCS_V5,将原来的TrailingStop修改为百分比值。取前一Bar的中线值的百分比值为跟踪止损值。我们也可以取当前Bar的Open,或者开仓价,或者昨收等很多固定的价格作为参照。代码修改很简单,只需要替换固定止损值的算法即可。,实战要注意的问题,涨跌停:本系统应用周期为日线,一般的止损幅度也超过5%,因此,程序中没有涨跌停板的控制。如果出现不利的涨跌停,可以考虑手工处理。迁仓:对于现货升水的合约,做多的头寸尽量晚一点,做空的头寸尽量早一点。现货贴水的合约反之。,第二部分,日内交易系统的分析和实现,日内交易的优势,有较高的获利潜力,可充分利用保证金,对于资金实力的要求较低。不用考虑隔夜的价格波动,可以安心入睡。日内交易限制了盈利,同时也限制了亏损的空间,不会出现一把亏光的风险。,坚持对日内交易的重要性,坚持是你能够在亏损或连续亏损之后仍然能够正常的交易。坚持是你在赢利时能够拿住头寸,亏损时能够及时平仓。坚持是你能够坦然接受亏损,把亏损当成交易成本。当然,坚持是建立在你有一个正确稳健的系统的基础上。,RangeBreak系统,RangeBreak基于昨日振幅和今日开盘价的关系。昨日振幅=昨日最高价-昨日最低价上轨=今日开盘价+N*昨日振幅下轨=今日开盘价-N*昨日振幅当价格突破上轨,买入开仓。以开盘价减去一定的值作为下轨,价格跌穿下轨,卖出开仓。收盘平仓,RangeBreak指标,ParamsNumericPercentOfRange(0.3);VarsNumericDayOpen;NumericpreDayRange;NumericUpperBand;NumericLowerBand;BeginDayOpen=OpenD(0);preDayRange=HighD(1)-LowD(1);UpperBand=DayOpen+preDayRange*PercentOfRange;LowerBand=DayOpen-preDayRange*PercentOfRange;PlotNumeric(UpperBand,UpperBand);PlotNumeric(LowerBand,LowerBand);PlotNumeric(MidLine,DayOpen);End,RBS_V1(1),ParamsNumericPercentOfRange(0.3);NumericExitOnCloseMins(14.55);VarsNumericDayOpen;NumericpreDayRange;NumericUpperBand;NumericLowerBand;NumericMyPrice;BeginDayOpen=OpenD(0);preDayRange=HighD(1)-LowD(1);UpperBand=DayOpen+preDayRange*PercentOfRange;LowerBand=DayOpen-preDayRange*PercentOfRange;If(MarketPosition!=1,RBS_V1(2),If(MarketPosition!=-1End,RBS_V1(3),我们将最初级版本的系统应用于所有品种的指数中(可行性测试,选取了指数的30分钟周期,数据范围为2008.1.1-现在)。除了玉米,小麦等少数价低品种外,绝大部分都是盈利,有些品种还有不错的资金曲线。证明该系统的有不错的胚子,值得继续深入研究。,RBS_V2(1),如果前一日涨停或跌停,则会出现范围很小。两种解决方案:1、设定一个范围的最小值,假定为当前价格的0.2%。2、考虑上当前的开盘价,加上跳空的范围。我们选择第一种方法。,RBS_V2(2),ParamsNumericMinRange(0.2);VarsNumericSeriesDayOpen;NumericpreDayHigh;NumericpreDayLow;NumericSeriespreDayRange;BeginpreDayHigh=HighD(1);preDayLow=LowD(1);If(Date!=Date1)DayOpen=Open;preDayRange=preDayHigh-preDayLow;If(preDayRangeOpen*MinRange*0.01)preDayRange=Open*MinRange*0.01;ElseDayOpen=DayOpen1;preDayRange=preDayRange1;,RBS_V3(1),有可能通道会比较宽,难道非要等到反转才平仓?考虑增加止损设置,也有2种方案:1、亏损固定点数。2、亏损当前价格的百分比。考虑到商品价格变化的差异,我们采取第二种方式。,RBS_V3(2),先增加一个变量StopLine,用来保存止损位置。下面是做多时的止损代码:If(MarketPosition=1)StopLine=UpperBand-DayOpen*StopLossSet*0.01;If(LowMyPrice)MyPrice=Open;BuyToCover(Lots,MyPrice);,RBS_V4(1),突破的时效性,发生在上午和下午意义是不同的。不同的商品时效属性不尽相同为此我们增加最后交易时间参数,可供优化测试来确定最佳值。,RBS_V4(2),增加参数:NumericLastTradeMins(14.00);开仓条件处增加一个时间条件。If(MarketPosition!=1LowerAfterEntry=min(LowerAfterEntry1,Low1);,RBS_V5(4),跟踪止损的编码可配合前面的止损编码一起控制。If(HigherAfterEntry=AvgEntryPrice+DayOpen*TrailingStart*0.01)StopLine=HigherAfterEntry-DayOpen*TrailingStop*0.01;Else/止损StopLine=UpperBand-DayOpen*StopLossSet*0.01;If(Low=StopLine)MyPrice=StopLine;If(OpenMyPrice)MyPrice=Open;Sell(1,MyPrice);做空的代码类似。,RBS_V6(1),当我们止损或跟踪止损之后,价格可能会反向运动,如果不加控制,只要满足初始开仓条件,就会开仓。为了不错失大的机会,我们需要再次入场,但不能在上下轨的位置入场。有以下两种方式可以考虑:1、突破前期的高点低点入场。2、时间入场,做多时停留在上轨N个Bar入场。,RBS_V6(2),这里我们采取第一种方式入场,和前面所讲的持仓系统类似。我们需要标记止损动作,并要记录高低位。新建两个布尔型序列变量:BoolSeriesbLongStoped;BoolSeriesbShortStoped;在脚本开始位置增加处理,保证其值向后传递。增加HigherAfterEntry和LowerAfterEntry在平仓后的值传递。,RBS_V6(3),在原始开仓位置增加条件,开多仓时bLongStoped不能为True,开空仓时bShortStoped不能为True。在各个交易动作的地方处理这两个序列变量。增加再次入场的代码:If(bLongStoped,RBS_V6(4),/做空再次入场代码:If(bShortStoped,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 户外电子广告屏管理制度
- 服装定制公司员工管理制度
- 校外教育培训机构管理制度
- 果树病虫害生物防治策略开发-洞察阐释
- 数字化支付与区块链技术的融合创新研究-洞察阐释
- 金融监管科技研究-第1篇-洞察阐释
- 环保照明产品的功能扩展与用户体验优化-洞察阐释
- 金矿资源开发的可持续发展评估与风险管理研究-洞察阐释
- 高海拔地区索道事故防控-洞察阐释
- 雪景镜像美学-洞察阐释
- 2022-2023学年北京市西城区五年级数学第二学期期末学业水平测试模拟试题含答案
- 前庭周围性眩晕的护理课件
- 某院检验科仪器设备档案
- 中铝中州矿业有限公司禹州市方山铝土矿矿山地质环境保护和土地复垦方案
- 职业卫生知识培训记录
- 起重设备维护保养记录(完整版)
- 网络信息安全培训课件-PPT
- 北京市医药卫生科技促进中心关于印发《首都医学科技创新成果转化优促计划实施方案(试行)的通知》
- (完整版)互联网+项目策划书
- THBLS 0011-2023 荆楚粮油 优质油菜籽生产技术规程
- 2023春国开社会调查研究与方法单元自测1-5试题及答案
评论
0/150
提交评论