系统交易 게시글

MetaTrader 4 的 exp_iCustom_v1 专家顾问详解

첨부파일
7632.zip (41.38 KB, 다운로드 0회)

EA 的目的

这个EA是专为与任何能够绘制买入/卖出箭头的自定义指标配合使用而设计的,不过不支持带有字符串参数的指标

在EA的参数中指定了自定义指标的名称,以及用于绘制买入/卖出箭头的指标参数列表和缓冲区编号。

尽管使用了字符串参数列表,但仍然可以优化多达五个指标参数。您可以使用Opt_1_Value至Opt_5_Value中的任何一个变量值来替代iCustomParam字符串列表中的变量。

专家顾问的参数

  • TimeFrame - EA的工作时间框架:0 - 当前图表的时间框架,或者测试中选择的时间框架。或者特定值 1,5,15,30,60,240,1440...
  • iCustomName - 自定义指标的名称。
  • iCustomParam - 参数列表,以“/”分隔。对于布尔变量,使用1代替true,0代替false。如果指标参数包含字符串变量,EA将无法工作!
  • iBuyBufIndex - 买入箭头的缓冲区索引。
  • iSellBufIndex - 卖出箭头的缓冲区索引。
  • iShift - 指标的偏移量。1 - 在已形成的柱上工作,0 - 在正在形成的柱上(不推荐)。也可以输入值2,3,4...
  • Opt_1_Use - 启用优化变量1的使用。当要优化的变量被激活时,Opt_X_Index变量定义的iCustomParam字符串中的值将被Opt_X_Value变量的值替代。
  • Opt_1_Index - 要在参数数组中优化的变量2的索引(在iCustomParam字符串中)。编号从零开始。
  • Opt_1_Value - 要优化的变量1的值。
  • Opt_2_Use - 启用优化变量2的使用。
  • Opt_2_Index - 要在参数数组中优化的变量2的索引(在iCustomParam字符串中)。编号从零开始。
  • Opt_2_Value - 要优化的变量2的值。
  • Opt_3_Use - 启用优化变量3的使用。
  • Opt_3_Index - 要在参数数组中优化的变量3的索引(在iCustomParam字符串中)。编号从零开始。
  • Opt_3_Value - 要优化的变量3的值。
  • Opt_4_Use - 启用优化变量4的使用。
  • Opt_4_Index - 要在参数数组中优化的变量4的索引(在iCustomParam字符串中)。编号从零开始。
  • Opt_4_Value - 要优化的变量4的值。
  • Opt_5_Use - 启用优化变量5的使用。
  • Opt_5_Index - 要在参数数组中优化的变量5的索引(在iCustomParam字符串中)。编号从零开始。
  • Opt_5_Value - 要优化的变量5的值。
  • MMMethod - 资金管理方法:0-手数,1-自由保证金的部分(风险),2-以均值步长规范化的自由保证金的部分(例如,风险=0.1,均值步长=1000,如果保证金低于2000,手数等于0.1,如果保证金大于或等于2000则为0.2,3000或以上为0.3手,以此类推)。
  • Lots - MMMethod=0时的手数。
  • Risk - 风险。基于资金的值,FixedLot=false时。
  • MeansType - 用于手数计算的资金类型。1 - 余额,2 - 资金,3 - 自由保证金。
  • MeansStep - 资金的步长。用于MMMethod=2。
  • LotsDigits - 手数值的小数位数。
  • Slippage - 允许的价格偏差。
  • StopLoss - 止损。
  • TakeProfit - 止盈。
  • Magic_N - 魔法编号。
  • MaxOrdersCount - 允许的打开订单总数。-1 - 不限制。
  • MaxBuyCount - 允许的打开买单数量。-1 - 不限制。
  • MaxSellCount - 允许的打开卖单数量。-1 - 不限制。
  • SleepBars - 开单后的超时,以工作时间框架的柱数表示。
  • CancelSleeping - 在开单时激活超时取消,方向相反。
  • CloseOnRev - 在开单前关闭相反方向的订单。
  • TrailingStop_Use - 激活跟踪止损功能。
  • TrailingStopStart - 激活跟踪止损的订单利润。
  • TrailingStop - 跟踪止损水平。
  • BreakEven_Use - 激活保本功能。
  • BreakEvenStart - 激活保本的订单利润。
  • BreakEvenLevel - 从保本激活价格设置止损的水平。

注意

该专家顾问的压缩包中包含了test_example.set文件,提供了使用ind_Test指标(两条MA的交叉)和待优化变量的示例设置。ind_Test指标附在其中。

版本 2

1. 增加了使用不同指标进行开单和闭单信号的能力。开单指标的参数以前缀_O_开头,闭单指标的参数以_C_开头。

使用开单和闭单指标有三种可能模式(由_OС_Mode变量定义):

  • 模式 1 - 不使用指标进行闭单。闭单仅可能通过止损和止盈完成。
  • 模式 2 - 不使用闭单指标。除了止损和止盈外,通过开单信号进行相反订单的闭单。止损和止盈可以禁用 - 将StopLoss和/或TakeProfit变量的值设为0(适用于所有模式)。
  • 模式 3 - 使用基于闭单指标(_C_)的单独闭单信号。在此模式下,可以使用额外的模式将开单指标的参数复制到闭单指标的参数中(C_UseOpenParam变量),同时复制指标名称及其参数。该模式旨在加快优化速度(优化的参数也会被复制)。

2. 不仅可以使用带箭头的指标,还可以使用带线的指标。可以使用两条线(主线和信号线交叉)和一条线 - 与水平线交叉。使用_O_Mode变量(闭单块中的_C_Mode)来选择指标类型。

  • 模式 1 - 指标绘制箭头。使用_O_M1_iBuyBufIndex和_O_M1_iSellBufIndex变量来指定缓冲区编号,在闭单块中使用_C_M1_iCloseBuyBufIndex和_C_M1_iCloseSellBufIndex。
  • 模式 2 - 使用指标的主线和信号线。如果主线从下方穿过信号线 - 开买或闭卖的信号。使用_O_M2_iMainBufIndex、_O_M2_iSignalBufIndex和_C_M2_iMainBufIndex、_C_M2_iSignalBufIndex变量来指定缓冲区。
  • 模式 3 - 使用一条指标线。缓冲区编号在_O_M3_iBufIndex变量中指定(或在闭单块中使用_C_M3_iBufIndex)。_O_M3_BuyLevel和_O_M3_SellLevel(闭单块中的_O_M3_CloseBuyLevel和_C_M3_CloseSellLevel)用于指定水平值。从下方突破买入水平 - 买入,从上方突破卖出水平 - 卖出。

版本 3

添加了另一个_O_Mode模式(和_S_Mode)

模式 4 - 通过三个点的极值。使用一条指标线。缓冲区编号在_O_M4_iBufIndex(或闭单块中的_C_M4_iBufIndex)变量中指定。



版本 4

1. 增加了对挂单的处理功能。
2. 在属性窗口中增加了分隔符(从字符串变量中)。

订单类型的选择由OrdType变量进行:0 - 市场,1 - 止损,2 - 限价(该变量在“订单”部分)。

用于管理挂单操作的“挂单”变量部分:

  • PendLevel - 从当前市场价格到放置挂单的水平
  • PendPromPrice - 放置挂单的价格由零柱的价格计算,PendPromPrice=0时 - 从收盘价(对应当前市场价格),1 - 从开盘价计算。
  • PendNewSigMode - 在新交易信号上的挂单控制方法:0 - 如果订单已被下单,则在出现新交易信号时不采取任何行动,1 - 在新信号时替换订单,2 - 在新信号时仅替换为“更好的水平” - 买入止损仅向下,买入限价仅向上,卖出止损仅向上,卖出限价仅向下。
  • PendPriceFollow - 价格跟随模式。每当PendPromPrice变量发生变化时,订单被修改,订单仅替换为“更好的价格”(见PendNewSigMode变量的描述)。
  • PendDelete - 在相反交易信号时删除挂单。在值为false时,可以同时存在两个不同方向的挂单。
  • PendExpiration - 挂单的过期时间(以分钟为单位,最小值为11分钟)。

연관 포스트

댓글 (0)