- 显示:
- 13148
- 等级:
- 已发布:
- 2016.05.30 13:42
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
本EA交易的目标
本EA交易是设计用来操作任何画出买入/卖出箭头的自定义指标,除非指标含有字符串型参数。
自定义指标的名称在EA交易的参数中指定,同时也包含指标的参数列表和用于画出买入/卖出箭头的缓冲区的数量。
尽管使用了字符串列表参数,也是有可能优化指标的至多五个参数,并不是使用 iCustomParam 字符串列表中的任何变量,而是使用 Opt_1_Value - Opt_5_Value 中的变量。
EA交易的参数
- TimeFrame - EA的工作时段: 0 - EA所运行的图表的时段, 或者是其他在测试器中选择的时段,或者是指定的数值 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的优化,当变量的优化被激活时,它并不是由iCustomParam字符串中的值激活的,而是在 Opt_X_Index 变量中定义,使用 Opt_X_Value 变量的值。
- Opt_1_Index - 需要优化的变量1在参数数组中的索引(在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-根据可用保证金规范化之后和MeanStep协同计算的方法 (风险) (例如, Risk=0.1, MeansStep=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 - 利润平摊时的止损水平。
注意
EA交易的档案中包含了 test_example.set 文件,带有使用 ind_Test 指标设置的例子(两条MA交叉) 并且变量还需要优化。ind_Test 指标在附件中。
版本 2
1. 增加了使用不同指标来做建仓平仓信号的功能,建仓指标的参数以 prefix _O_ 为前缀, 平仓指标参数以 prefix _C_ 为前缀。
使用建仓和平仓指标有三种模式 (使用 _OС_Mode 变量定义):
- 模式 1 - 指标不用于平仓,平仓只通过止损和获利进行。
- 模式 2 - 不使用平仓指标,除了止损和获利,建仓信号会关闭反向订单,止损和获利可以被禁用 - 把 StopLoss 和/或 TakeProfit 设为0 (应用于所有模式).
- 模式 3 - 使用独立的平仓指标 (_C_) ,在这种模式下,可以使用额外一种模式来把建仓指标的参数复制到平仓指标(C_UseOpenParam 变量), 同时复制指标的名称和参数,这种模式是用于同时生成建仓和平仓信号的指标,用以提高优化的速度(优化的参数也会被复制).
2. 可以不仅使用带有箭头的指标,也使用线形指标。可以使用两条线(主线与信号线的交叉)和一条线的指标 - 它与水平线的交叉。使用 _O_Mode 变量 (以及在平仓模块使用 _С_Mode) 来选择指标类型。
- Mode 1 - 指标画箭头。_O_M1_iBuyBufIndex 和 _O_M1_iSellBufIndex 变量是用于指定缓冲区编号的,而在平仓模块使用 - _C_M1_iCloseBuyBufIndex and _C_M1_iCloseSellBufIndex.
- Mode 2 - 使用指标的主线和信号线。如果主线从下方穿过信号线 - 建立买入仓位或者平掉卖出仓位的信号。_O_M2_iMainBufIndex, _O_M2_iSignalBufIndex 以及 _C_M2_iMainBufIndex, _C_M2_iSignalBufIndex 变量是用于指定缓冲区的。
- Mode 3 - 使用一条指标线。缓冲区编号在 _O_M3_iBufIndex 变量中指定 (或者在平仓模块使用 _С_M3_iBufIndex). _O_M3_BuyLevel 和 _O_M3_SellLevel (在平仓模块中的 _O_M3_CloseBuyLevel 和 _C_M3_CloseSellLevel ) 使用于指定水平数值的。从下往上交叉买入水平 - 买入, 从上往下交叉卖出水平 - 卖出。
版本 3
增加了另外一种 _O_Mode 模式(以及 _S_Mode)
Mode 4 - 根据三个点的极值。使用一条指标线,缓冲区编号在 _O_M4_iBufIndex (或者平仓模块的 _С_M4_iBufIndex ) 变量中。
版本 4
1. 增加了挂单的处理。
2. 增加了在属性窗口中的部分分隔 (来自字符串变量).
订单类型的选择是根据OrdType变量进行的: 0 - 市场即时, 1 - 止损挂单, 2 - 限价挂单 (变量在 "Order" 部分).
"Pending orders" 变量部分用于管理挂单的操作:
- PendLevel - 设置挂单距离当前市场价格的水平
- PendPromPrice - 根据第零柱的价格计算设置挂单的价格,在数值 PendPromPrice=0 - 收盘价 (根据当前市场价格), 1 - 柱的开盘价.
- PendNewSigMode - 根据新的交易信号控制挂单的方法: 0 - 如果已经设置挂单,即使有新的交易信号也不做操作, 1 - 用新的信号替换原有挂单, 2 - 只有在有"更好的水平"时才替换挂单 - buy-stop 下方, buy-limit 上方, sell-stop 上方, sell-limit 下方.
- PendPriceFollow - 价格追随模式。PendPromPrice 每改变一定数值就修改挂单, 只有有"更好的价格"才替换挂单 (参见 PendNewSigMode 变量的描述).
- PendDelete - 在有反方向交易信号时删除挂单. 如果值等于 false, 就可能同时存在两个方向上的挂单。
- PendExpiration - 挂单过期的分钟数 (最小值是 11 分钟).
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/7632
![MAMA_NK](https://c.mql5.com/i/code/indicator.png)
本版本的指标是使用 John Ehlers 所写的 Omega 代码创建的。
![ArtificialIntelligence_Right](https://c.mql5.com/i/code/expert.png)
本EA交易使用了人工智能 - 一个单层的神经网络。使用了用于识别报价变化方向的 "感知器"。