TB交易模型标准示例_第1页
TB交易模型标准示例_第2页
TB交易模型标准示例_第3页
TB交易模型标准示例_第4页
TB交易模型标准示例_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TB程序化交易模型示例程序化交易模型示例 TB交易模型标准示例 内容安排内容安排 介绍四套交易模型 一、单均线加通道交易模型 二、四周法则交易模型 三、双均线交叉交易模型 四、RangeBreak日内突破模型 TB交易模型标准示例 例例1:单均线加通道突破系统:单均线加通道突破系统 交易规则: 以简单移动平均线判断趋势,收盘价在均线之上为多 头趋势,在均线之下为空头趋势; 为过滤均线假突破,在均线基础上加减一定百分比形 成围绕均线的上下两条通道; 价格盘中突破上轨,进场做多或平空反多; 价格盘中突破下轨,进场做空或平多反空; 增加跟踪止盈的功能(峰值价回落ATR倍数); 跟踪止盈后突破出场前高

2、(低)点再进场; 交易头寸暂为1手。 TB交易模型标准示例 策略设计策略设计(1) 进出场技术指标的编写: ATRValue = AvgTrueRange(ATRLength); Commentary(ATRValue=+text(ATRValue); MA = AverageFC(Close,Length); UpperBand = MA1 * (1 + FilterPercent / 10000 ); LowerBand = MA1 * (1 - FilterPercent / 10000 ); PlotNumeric(MA,MA); PlotNumeric(UpperBand,Upper

3、Band); PlotNumeric(LowerBand,LowerBand); 其中参数其中参数:ATRLength - 平均真实波幅的计算周期 FilterPercent - 通道的比例(万分之几) TB交易模型标准示例 策略设计策略设计(2) 为了让系统的组合更灵活,把一个完整的交易模型分成 做多和做空两个模型分别编写; 初次进场和再次进场,多空模型分别通过序列变量 bLongStoped和bShortStoped来判断; 进场后,两个变量设为false,重新记录跟踪止损状况 跟踪止盈触发后,设置为true 趋势反转后,有仓位需要止损,但不设置标志 跟踪止损和再次进场创新高(低)的判断,

4、都需要记录盈利 峰值价( 也就是前高或前低),因此需要设置两个序列变 量HigherAfterEntry和LowerAfterEntry,进场后及时记录价 格的新高(低)的变化; TB交易模型标准示例 策略设计策略设计(3) 跟踪止盈采用的是盈利峰值价回落的一定比例后 触发止损,加上本身趋势反转时的止损,两部分代码合 在一起,以多头模型为例说明: 止损价的设置 StopLine = LowerBand; if (StopLine HigherAfterEntry - ATRValue1 * TrailStopNumATR) StopLine = HigherAfterEntry - ATRVa

5、lue1 * TrailStopNumATR; 止损的触发 If(Low = StopLine) MyPrice = StopLine; If(Open MyPrice) MyPrice = Open; Sell(0,MyPrice); bLongStoped = true; TB交易模型标准示例 策略设计策略设计(4) 集合竞价数据过滤 集合竞价时,会产生一个Tick,这个Tick会驱动图表中 加载的公式应用的运算,如果这时符合交易条件,则 会发送委托单。但交易所此时并未开市,从而产生废 单。 为处理这种情况,我们需要在代码中过滤这些数据, 我们在公式中加入以下代码: 分钟周期和Tick周期

6、下 If ( BarType = 1 or BarType = 2 ) 日线周期 If ( BarType = 0 / 初始止损(千分之N) Numeric BreakEvenStop(30); / 保本止损(千分之N) Numeric TrailingStop(50); / 追踪止损(千分之N) 三种止损的代码可以放在一起处理,取最有利的 价格作为止损(赢)价。 TB交易模型标准示例 多头止损部分的代码多头止损部分的代码 / 初始止损 StopLine = EntryPrice * (1-InitialStop/1000); / 达到保本止损条件,将止损位上移到保本的价位 If (Highe

7、rAfterEntry = EntryPrice * (1+BreakEvenStop/1000) StopLine = EntryPrice; / 追踪止损的价位超过保本止损价,止损价随盈利峰值价的上升同步提高 If (StopLine HigherAfterEntry*(1-TrailingStop/1000) StopLine = HigherAfterEntry*(1-TrailingStop/1000); Commentary(止损价:+Text(StopLine); / 止损触发 If(Low = StopLine) MyPrice = StopLine; If(Open =Upp

8、erBand) MyPrice = UpperBand; If(Open MyPrice) MyPrice = Open; Buy(1,MyPrice); Return; TB交易模型标准示例 RBS_V1(2) If(MarketPosition!=-1 If(Open =ExitOnCloseMins/100) Sell(1,Open); BuyToCover(1,Open); SetExitOnClose; End TB交易模型标准示例 必须考虑的特殊情况必须考虑的特殊情况 如果前一日涨停或跌停,则会出现范围很 小。 解决方案: 设定一个范围的最小值,假定为当前价格 的0.2%。 TB交

9、易模型标准示例 代码中的改动代码中的改动 Params Numeric MinRange(0.2); Vars NumericSeries DayOpen; Numeric preDayHigh; Numeric preDayLow; NumericSeries preDayRange; Begin preDayHigh = HighD(1); preDayLow = LowD(1); If(Date!=Date1) DayOpen = Open; preDayRange = preDayHigh - preDayLow; If(preDayRange Open*MinRange*0.01)

10、preDayRange = Open*MinRange*0.01; Else DayOpen = DayOpen1; preDayRange = preDayRange1; TB交易模型标准示例 增加止损增加止损 有可能通道会比较宽,难道非要等到反转 才平仓? 考虑增加止损设置,有2种方案: 1、亏损固定点数。 2、亏损当前价格的百分比。 考虑到商品价格变化的差异,我们采取第 二种方式。 TB交易模型标准示例 止损部分代码止损部分代码 先增加一个变量StopLine,用来保存止损位置。 下面是做多时的止损代码: If(MarketPosition=1) StopLine = AvgEntryP

11、rice-DayOpen*StopLossSet*0.01; If(Low = StopLine) MyPrice = StopLine; If(Open = StopLine) MyPrice = StopLine; If(Open MyPrice) MyPrice = Open; BuyToCover(Lots,MyPrice); TB交易模型标准示例 入场时间的考虑入场时间的考虑 突破的时效性,发生在上午和下午意义是 不同的。 不同的商品时效属性不尽相同 为此我们增加最后交易时间参数,可供优 化测试来确定最佳值。 TB交易模型标准示例 实现代码实现代码 增加参数: Numeric Las

12、tTradeMins(14.00); 开仓条件处增加一个时间条件。 If(MarketPosition!=1 Else / 止损 StopLine = AvgEntryPrice-DayOpen*StopLossSet*0.01; If(Low = StopLine) MyPrice = StopLine; If(Open =UpperBand Buy(1,MyPrice); bLongStoped = False; Return; TB交易模型标准示例 / 做空再次入场代码: If(bShortStoped If(Open MyPrice) MyPrice = Open; SellShort

13、(1,MyPrice); bShortStoped = False; Return; TB交易模型标准示例 涨跌停的控制涨跌停的控制 接近涨跌停板不应开仓。 若有持仓,价格到达涨跌停板马上平仓。 TB交易模型标准示例 判断是否接近涨跌停判断是否接近涨跌停 我们新建一个布尔变量bInBoardRange, 默认值设置为False。 bInBoardRange = (Open Q_UpperLimit - DayOpen*StopLossSet*0.02); 在开仓条件中加入 (bInBoardRange=false) TB交易模型标准示例 涨跌停板平仓涨跌停板平仓 为了在价格达到涨跌停价马上平仓,我们 需要在增加如下代码: 做多时: If(Open = Q_UpperLimit) Sell(1,Open); 做空时: If(Open = Q_LowerLimi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论