文档介绍:开拓者程序化交易TB公式高级应用[精编文档]第一部分持仓交易系统的分析和实现常见的持仓交易系统高低点突破系统(四周法则)双均线系统(DualMA)波动性突破系统(ATR)布林通道突破系统(BOLL)抛物线转向系统(SAR)顾比倒数线系统(CBL)KeltnerChannelSystem基于KeltnerChannel(肯特纳通道)的持仓交易系统。由价格均线和ATR形成通道,当价格突破通道产生入场讯号。KeltnerChannel原理肯特纳通道(KC)是一个移动平均通道,由三条线组合而成(上轨、中线及下轨),若价格突破边界,即表示出现开仓机会。肯特纳通道是基于平均真实波幅原理而形成的指标,对价格波动反应灵敏,基于KC的系统可以实时开仓,不需要等待下一个Bar。KeltnerChannel算法中线=TypicalPrice的N周期平均值;TypicalPrice=(High+Low+Close)/3;上轨=中线+通道;通道=NumATRs*平均真实波幅。KeltnerChannel指标Params NumericLength(20); umATRs(1);Vars NumericSeriesTPrice; NumericAvgValue; NumericShiftValue; NumericUpperBand; NumericLowerBand;Begin TPrice=(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);EndKCS版本1(1)Params NumericLength(20); umATRs(1);Vars NumericSeriesTPrice; NumericAvgValue; NumericSeriesShiftValue; NumericUpperBand; NumericLowerBand; NumericMyPrice;Begin TPrice=(High[1]+Low[1]+Close[1])/3; AvgValue=AverageFC(TPrice,Length); ShiftValue=NumATRs*AvgTrueRange(Length); UpperBand=AvgValue+ShiftValue[1]; LowerBand=AvgValue-ShiftValue[1];KCS版本1(2)If(MarketPosition!=1&&High>=UpperBand) { MyPrice=UpperBand; If(Open>MyPrice)MyPrice=Open; Buy(1,MyPrice);Return; } If(MarketPosition!=-1&&Low<=LowerBand) { MyPrice=LowerBand; If(Open<MyPrice)MyPrice=Open; SellShort(1,MyPrice);Return; } End