




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 TB程序化交易模型示例 蔡云华深圳开拓者科技有限公司 内容安排 介绍四套交易模型一 单均线加通道交易模型二 四周法则交易模型三 双均线交叉交易模型四 RangeBreak日内突破模型 2 例1 单均线加通道突破系统 交易规则 以简单移动平均线判断趋势 收盘价在均线之上为多头趋势 在均线之下为空头趋势 为过滤均线假突破 在均线基础上加减一定百分比形成围绕均线的上下两条通道 价格盘中突破上轨 进场做多或平空反多 价格盘中突破下轨 进场做空或平多反空 增加跟踪止盈的功能 峰值价回落ATR倍数 跟踪止盈后突破出场前高 低 点再进场 交易头寸暂为1手 3 策略设计 1 进出场技术指标的编写 ATRValue AvgTrueRange ATRLength Commentary ATRValue text ATRValue MA AverageFC Close Length UpperBand MA 1 1 FilterPercent 10000 LowerBand MA 1 1 FilterPercent 10000 PlotNumeric MA MA PlotNumeric UpperBand UpperBand PlotNumeric LowerBand LowerBand 其中参数 ATRLength 平均真实波幅的计算周期FilterPercent 通道的比例 万分之几 4 策略设计 2 为了让系统的组合更灵活 把一个完整的交易模型分成做多和做空两个模型分别编写 初次进场和再次进场 多空模型分别通过序列变量bLongStoped和bShortStoped来判断 进场后 两个变量设为false 重新记录跟踪止损状况跟踪止盈触发后 设置为true趋势反转后 有仓位需要止损 但不设置标志跟踪止损和再次进场创新高 低 的判断 都需要记录盈利峰值价 也就是前高或前低 因此需要设置两个序列变量HigherAfterEntry和LowerAfterEntry 进场后及时记录价格的新高 低 的变化 5 策略设计 3 跟踪止盈采用的是盈利峰值价回落 的一定比例后触发止损 加上本身趋势反转时的止损 两部分代码合在一起 以多头模型为例说明 止损价的设置StopLine LowerBand if StopLine HigherAfterEntry ATRValue 1 TrailStopNumATR StopLine HigherAfterEntry ATRValue 1 TrailStopNumATR 止损的触发If Low StopLine MyPrice StopLine If Open MyPrice MyPrice Open Sell 0 MyPrice bLongStoped true 6 策略设计 4 集合竞价数据过滤集合竞价时 会产生一个Tick 这个Tick会驱动图表中加载的公式应用的运算 如果这时符合交易条件 则会发送委托单 但交易所此时并未开市 从而产生废单 为处理这种情况 我们需要在代码中过滤这些数据 我们在公式中加入以下代码 分钟周期和Tick周期下If BarType 1orBarType 2 7 模型参数说明 Length 均线周期 默认值为10 ATRLength ATR的周期 默认值为20 FilterPercent 通道幅度比例 万分之几 默认为100 即为百分之一 TrailStopNumATR 追踪止损 回测ATR的倍数 默认值为2 Lots 头寸大小 默认为交易1手 8 例2 四周法则突破系统 交易规则 价格突破最近四周 即日线20根K线 高点 做多 跌破四周低点做空 增加更小周期作为止损 持多单跌破两周低点 即日线10根K线 止损出场 持空突破两周高点止损出局 增加跟踪止盈的功能 峰值价回落ATR倍数 跟踪止盈后突破出场前高 低 点再进场 交易头寸暂为1手 9 策略设计 1 进出场技术指标的编写 HiBand1 highest high 1 Length1 LoBand1 lowest low 1 Length1 HiBand2 highest high 1 Length2 LoBand2 lowest low 1 Length2 PlotNumeric HiBand1 HiBand1 PlotNumeric LoBand1 LoBand1 plotnumeric HiBand2 HiBand2 plotnumeric LoBand2 LoBand2 其中参数 Length1 四周的BAR数Length2 两周的BAR数 10 策略设计 2 突破四周高点进场做多 以多头模型为例 if MarketPosition 0 high HiBand1 多空分开设计 跟踪止盈的设计以及集合竞价数据的过滤都和例1的策略相同 11 模型参数说明 Length1 长周期天数 默认值为20 即四周 Length2 短周期天数 默认值为10 即两周 ATRLength ATR的周期 默认值为20 TrailStopNumATR 追踪止损回撤ATR的倍数 默认值为2 Lots 头寸大小 默认为交易1手 12 例3 双均线交叉系统 交易规则 如果短期均线上穿长期均线 做多 如原来持有空单 则先平空单 再建多仓如果短期均线下穿长期均线 做空 如原来持有多单 则先平多单 再建空单短周期 10长周期 20交易头寸暂为1手 13 出场部分设计 我们使用三种类型的止损设置 进场后设置初始止损 有一定盈利后设置保本止损 盈利增大后使用追踪止盈 峰值价回落ATR倍数 为此 设置三个止损参数 NumericInitialStop 20 初始止损 千分之N NumericBreakEvenStop 30 保本止损 千分之N NumericTrailingStop 50 追踪止损 千分之N 三种止损的代码可以放在一起处理 取最有利的价格作为止损 赢 价 多头止损部分的代码 初始止损StopLine EntryPrice 1 InitialStop 1000 达到保本止损条件 将止损位上移到保本的价位If HigherAfterEntry 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 MyPrice MyPrice Open Sell Lots MyPrice bLongStoped True 止损后设置标志Commentary LongPositionStopedat text MyPrice 其他规则 其他策略和例子1相同 采用多空模型分开设计 再进场必须行情再创新高 低 过滤集合竞价数据 止损处理的细节 无论初次进场还是再次进场 进场后都是把进场价作为开仓后的盈利最高价或最低价 两者的区别之处在于 初次进场 因为是开盘价进场 可以在开仓Bar实现止损 而再次入场 因为在历史K线中 无法确定入场点和最高价最低价在时间次序上的关系 从而无法实现在开仓BAR的止损 因此 必须在记录开仓后最高和最低后 加上Return指令 从而忽略掉后面的止损部分公式 例4 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 RangeBreak指标 RBS V1 1 ParamsNumericPercentOfRange 0 3 NumericExitOnCloseMins 14 59 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 必须考虑的特殊情况 如果前一日涨停或跌停 则会出现范围很小 解决方案 设定一个范围的最小值 假定为当前价格的0 2 代码中的改动 ParamsNumericMinRange 0 2 VarsNumericSeriesDayOpen NumericpreDayHigh NumericpreDayLow NumericSeriespreDayRange BeginpreDayHigh HighD 1 preDayLow LowD 1 If Date Date 1 DayOpen Open preDayRange preDayHigh preDayLow If preDayRange Open MinRange 0 01 preDayRange Open MinRange 0 01 Else DayOpen DayOpen 1 preDayRange preDayRange 1 增加止损 有可能通道会比较宽 难道非要等到反转才平仓 考虑增加止损设置 有2种方案 1 亏损固定点数 2 亏损当前价格的百分比 考虑到商品价格变化的差异 我们采取第二种方式 止损部分代码 先增加一个变量StopLine 用来保存止损位置 下面是做多时的止损代码 If MarketPosition 1 StopLine AvgEntryPrice DayOpen StopLossSet 0 01 If Low StopLine MyPrice StopLine If Open MyPrice MyPrice Open Sell Lots MyPrice 下面是做空的止损代码 ElseIf MarketPosition 1 StopLine AvgEntryPrice DayOpen StopLossSet 0 01 If High StopLine MyPrice StopLine If Open MyPrice MyPrice Open BuyToCover Lots MyPrice 入场时间的考虑 突破的时效性 发生在上午和下午意义是不同的 不同的商品时效属性不尽相同为此我们增加最后交易时间参数 可供优化测试来确定最佳值 实现代码 增加参数 NumericLastTradeMins 14 00 开仓条件处增加一个时间条件 If MarketPosition 1 High UpperBand Time LastTradeMins 100 多头开仓 If MarketPosition 1 Low LowerBand Time LastTradeMins 100 空头开仓 止赢规则 为了防止较大的盈利被吞噬 增加跟踪止赢 设定跟踪止赢的起始点 设定跟踪止赢的回撤值 或者可以选择百分比跟踪止赢 这里我们采取回撤值 跟踪止损的编码可配合前面的止损编码一起控制 If HigherAfterEntry AvgEntryPrice DayOpen TrailingStart 0 01 StopLine HigherAfterEntry DayOpen TrailingStop 0 01 Else 止损 StopLine AvgEntryPrice DayOpen StopLossSet 0 01 If Low StopLine MyPrice StopLine If Open MyPrice MyPrice Open Sell 1 MyPrice 做空的代码类似 再进场原则 当我们止损或跟踪止损之后 有两种情况我们需要加以控制 止损后 再次突破上轨或下轨 追踪止赢后 价格仍符合最初的开仓条件 出场后 马上又会开仓入场 同时 为了不错失大的波段 我们也需要再次入场 只是进场需要更高的条件 我们增加一条 再次进场必须在突破前期的高点 低点 代码的修改 我们需要标记止损动作 并要记录高低位 新建两个布尔型序列变量 BoolSeriesbLongStoped BoolSeriesbShortStoped 在脚本开始位置增加处理 保证其值向后传递 增加HigherAfterEntry和LowerAfterEntry在平仓后的值传递 初次进场和再次进场 在原始开仓位置增加条件 开多仓时bLongStoped不能为True 开空仓时bShortStoped不能为True 发出交易指令处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省昆明市黄冈实验学校高二数学:必修五 2.1数列的概念与简单表示法教学设计
- 化肥厂财务报表审核规定
- 第五章 问题研究 如何让城市不再“看海”-教学设计 2024-2025学年高一上学期 地理 人教版(2019)必修一
- (2024年秋季版)七年级道德与法治下册 第一单元 人与人之间 3.1.礼貌的力量说课稿 教科版
- Unit 6 Lesson 36 Classroom Olympics说课稿 2025-2026学年冀教版八年级英语下册
- 农村土地征用协议3篇
- 2025年度财税代理服务合同-外资企业税务服务
- 高新技术企业垫资借款合同协议书
- 体育产业个人赞助及借款合同
- 存货质押融资合同范本:银行与企业合作模板
- 除颤护理课件
- 【化学 云南卷】2025年云南省高考招生统一考试真题化学试卷(含答案)
- 创伤性硬膜下出血查房
- 2025年廉政法规知识试题及答案
- 拔罐适应症研究-洞察及研究
- 2025《政务数据共享条例》法律法规课件
- Q-SY 02045-2024 柔性压裂管汇使用技术规范
- T/CACEM 31.5-2023高速公路经营管理第5部分:服务区服务要求
- 劳动技术-七年级上册-全册教案-湖南教育出版社
- 外贸矿产代理协议书
- 品质协议书范本
评论
0/150
提交评论