- 发布者:
- Vladimir Karputov
- 显示:
- 1453
- 等级:
- 已发布:
- 2018.11.08 09:55
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
思路来自 - vgs
mq5 代码作者 - barabashkakvn
注意:只能用于锁仓账户!净额账户不能使用!
止损和获利是根据 iATR(平均真实范围,ATR)指标动态计算的 - 在柱#0上的指标值乘以Stop Loss (用于取得止损) 和 Take Profit (用于取得获利) 比率。
如果有超过一个开启的仓位,并且没有用于锁仓的订单,就检查是否能够平均此仓位:
- 如果有买入仓位,而当前的卖家报价低于它的建仓价格距离超过了 Distance, 就开启另一个买入仓位。
- 如果有卖出仓位,而当前的买家报价高于其建仓价格距离超过了Distance, 就开启另一个卖出仓位。
Distance 是为四位小数标准值设置的。
开启仓位的交易量可以是常数或者是动态计算的:
- 仓位交易量固定 - Lots 参数大于 0.0, 而 Risk 等于 0.0; Lots 参数设置了仓位的交易量 (手数)
- 仓位交易量是动态的 - Lots 参数是 0.0, 而 Risk 大于 0.0; Risk 设置了每个交易的风险
跟踪止损的任务是把止损移动到盈亏平衡点 (在第一次修改仓位时) 以及作为追踪 (为了之后的修改). Trailing Stop 是在修改之后价格距离止损的最小距离, Trailing Step 是跟踪止损的步长。这两个参数都减少为四位小数货币对的标准值。
Bars Control 参数定义了EA的运行: 只在新柱 ("true") 或者在柱内 ("false").
生成交易信号
交易信号的一般参数: Current Bar 是当前柱
趋势过滤器
趋势过滤器比较当前柱(Current Bar)和前一个柱(Current Bar-1)上 iMA (移动平均,MA)的值。
价格和 MA 指标的最小距离. 为了建立买入仓位,MA 应当在价格下方,而对于建立卖出仓位,MA应当高于价格。
RSI 过滤器
RSI 过滤器是比较当前柱(Current Bar)上的RSI (相对强弱指数,RSI)指标值和 RSI level UP 以及 RSI level DOWN 水平值。对于 卖出仓位的建立信号,RSI应当超过 RSI level UP, 而对于买入信号,它应当低于RSI level DOWN.
锁仓
如果有已经开启的仓位,并且最近的相同方向上的收盘价接近亏损,这是锁仓的先决条件。让我们这样做:
- 如果有买入仓位,而之前买入亏损平仓,而当前的卖家报价距离与买入仓位开盘价等于或者大于Distance ,就再开一个买入仓位。不管更高还是更低 - 距离的值使用的是绝对值。
- 如果有卖出仓位,而之前卖出亏损平仓,而当前的买家报价距离之前仓位开盘价等于或者大于Distance,就再开一个卖出仓位。不管更高还是更低 - 距离的值使用的是绝对值。
侦测仓位的平仓时刻是在 OnTradeTransaction 中进行的。
EURUSD, M15:
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/22261
![Exp_XDeMarker_Histogram_Vol_Direct](https://c.mql5.com/i/code/expert.png)
基于 XDeMarker_Histogram_Vol_Direct 指标信号的交易系统
![JSatlCandle_Chl_HTF](https://c.mql5.com/i/code/indicator.png)
在输入参数中带有时段选择选项的 JFatlCandle_Chl 指标