- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
ADX均线策略(TB版)
策略概述该策略基于ADX(平均方向性移动指数)和EMA(指数移动平均线)构建交易系统,旨在捕捉市场趋势变化,实现买入和卖出操作。
参数设置DMI_N:14计算DMI指标的周期数。DMI_M:30,用于平滑ADX指标的周期数。AvgLen:30,用于计算EMA的周期数。
EntryBar:2,入场确认后的等待周期数。FastLength:5,快速移动平均线周期数(扩展部分)。SlowLength:20,慢速移动平均线周期数(扩展部分)。
TrailingStart1、TrailingStart2、TrailingStop1、TrailingStop2:跟踪止盈的启动和设置参数(扩展部分)。
StopLossSet:30,固定止损点数(扩展部分)。
入场条件
做多条件:上根K线的收盘价高于30根K线最高价的EMA。ADX指标向上(即当前ADX值大于前一根K线的ADX值)。当前价格大于等于多头触发价(BuyTarget),多头触发价=收盘价+(30根K线最高价的EMA-30根K线最低价的EMA)/2。
满足上述条件后的EntryBar周期内入场。
做空条件:上根K线的收盘价低于30根K线最低价的EMA。ADX指标向上。当前价格小于等于空头触发价(SellTarget),空头触发价=收盘价-(30根K线最高价的EMA-30根K线最低价的EMA)/2。
满足上述条件后的EntryBar周期内入场。
出场条件
多单出场:当前价格下破30根K线最高价的EMA。可选跟踪止盈或固定止损出场。
空单出场:当前价格上破30根K线最低价的EMA。可选跟踪止盈或固定止损出场。
扩展交易规则
两均线交叉买入:当快速移动平均线(FastLength周期)上穿慢速移动平均线(SlowLength周期),且ADX值大于25时,执行买入操作。
两均线交叉卖出:当快速移动平均线下穿慢速移动平均线,且ADX值大于25时,执行卖出操作。
跟踪止盈:根据最高价(多单)或最低价(空单)与入场价的差距,动态调整止损点,以实现跟踪止盈。
代码逻辑策略代码中包含了DMI指标的计算过程、EMA的计算、入场条件的判断、出场条件的判断以及扩展交易规则的实现。实现了对市场趋势的识别和交易信号的生成。
做多代码:
Params
NumericDMI_N(14);
NumericDMI_M(30);
NumericAvgLen(30);
NumericEntryBar(2);
Vars
NumericSeriesoDMIPlus;
NumericSeriesoDMIMinus;
NumericSeriesoDMI;
NumericSeriesoADX;
NumericSeriesoADXR;
NumericSeriesoVolty;
NumericSeriessDMI;
NumericSeriessADX;
NumericSeriescumm;
NumericSeriessVolty;
NumericPlusDM;
NumericMinusDM;
NumericUpperMove;
NumericLowerMove;
NumericSumPlusDM(0);
NumericSumMinusDM(0);
NumericSumTR(0);
NumericSeriesAvgPlusDM;
NumericSeriesAvgMinusDM;
NumericSF;
NumericDivisor;
Numerici;
NumericSeriesTRValue;
NumericSeriesUpperMA(0);
NumericSeriesLowerMA(0);
NumericSeriesADXValue(0);
NumericSeriesChanSpread(0);
BoolBuySetup(False);
NumericSeriesBuyTarget(0);
NumericSeriesMROBS(0);
BoolSeriesCon1;
NumericMinpoint;
Begin
If(!CallAuctionFilter())Return;
Minpoint=Minmove*PriceScale;
SF=1/DMI_N;
TRValue=TrueRange;
If(CurrentBar==DMI_N)
{
Fori=0ToDMI_N-1
{
PlusDM=0;
MinusDM=0;
文档评论(0)