[量化经典RangeBreak交易系统模型源代码二.docVIP

[量化经典RangeBreak交易系统模型源代码二.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[量化经典RangeBreak交易系统模型源代码二

入场时间的考虑 ? 突破的时效性,发生在上午和下午意义是不同的。 ?不同的商品时效属性不尽相同 ?为此我们增加最后交易时间参数,可供优化测试来确定最佳值。 ? 实现代码 ? 增加参数: ?Numeric LastTradeMins(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);?? ?} ?做空的代码类似。 ? ? ? 再进场原则 ? 当我们止损或跟踪止损之后,有两种情况我们需要加以控制: ?止损后,再次突破上轨或下轨; ?追踪止赢后,价格仍符合最初的开仓条件,出场后,马上又会开仓入场。 ?同时,为了不错失大的波段,我们也需要再次入场,只是进场需要更高的条件。我们增加一条: ?再次进场必须在突破前期的高点\低点。 ? 代码的修改 ? 我们需要标记止损动作,并要记录高低位。 ?新建两个布尔型序列变量: ?BoolSeries? bLongStoped; ?BoolSeries? bShortStoped; ?在脚本开始位置增加处理,保证其值向后传递。 ?增加HigherAfterEntry和LowerAfterEntry在平仓后的值传递。 ? ? ? 初次进场和再次进场 ? 在原始开仓位置增加条件,开多仓时bLongStoped不能为True,开空仓时bShortStoped不能为True。 ?发出交易指令处理这两个序列变量。 ?增加再次入场的代码: ? If(bLongStoped MarketPosition==0 High =UpperBand High HigherAfterEntry Time LastTradeMins/100) ?{ ? MyPrice = Max(HigherAfterEntry,UpperBand) + MinPoint; ? If(Open MyPrice) MyPrice = Open; ? Buy(1,MyPrice); ? bLongStoped = False; ? Return; ?} ? ? ? // 做空再次入场代码: ?If(bShortStoped MarketPosition==0 Low=LowerBand? Low LowerAfterEntry Time LastTradeMins/100 bInBoardRange==false) ?{ ? MyPrice = Min(LowerAfterEntry,LowerBand) - MinPoint; ? If(Open MyPrice) MyPrice = Open; ? SellShort(1,MyPrice); ? bShortStoped = False; ? Return; ?} ? 涨跌停的控制 ? 接近涨跌停板不应开仓。 ?若有持仓,价格到达涨跌停板马上平仓。 ? 判断是否接近涨跌停 ? 我们新建一个布尔变量bInBoardRange,默认值设置为False。 ?bInBoardRange = ?(Open Q_LowerLimit + DayOpen*StopLossSet*0.02) Or ?( Open Q_UpperLimit - DayOpen*StopLossSet*0.02); ? 在开仓条件中加入(bInBoardRange==false) ? 涨跌停板平仓 ? 为了在价格达到涨跌停价马上平仓,我们需要在增加如下代码: ?做多时: ?If

文档评论(0)

34shart09 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档