VR移动指标EA:MetaTrader 5的完美交易助手

Mike 2018.06.16 19:15 26 0 0
附件

创意来源: Vladimir Pastushak

MQL5代码由: Vladimir Karputov

这款EA基于移动平均指标进行交易,所有的准备和交易功能都已经实现为一个名为CMoving的交易类,存放在名为Moving.mqh的独立文件中。


输入参数

  • 魔术编号 - EA的唯一标识符;
  • 手数 - 交易手数(手数需大于零或风险大小需大于零);
  • 风险 - 每笔交易风险占用的百分比(手数需大于零或风险大小需大于零);
  • MA: 时间周期 - 移动平均指标的时间框架;
  • MA: 平滑周期 - 移动平均指标的平滑周期;
  • MA: 水平偏移 - 移动平均指标的水平偏移;
  • MA: 平滑类型 - 移动平均指标的平滑方法;
  • MA: 价格类型 - 计算移动平均指标所依据的价格类型;
  • 止盈 - 当一笔交易开放时的止盈点;
  • 系列手数倍增器 - 在一系列交易中增加手数;
  • 与移动平均的距离 - 距离移动平均指标的距离;
  • 有总收益时的附加量 - 如果有总收益则添加的偏移量。

这款EA运用摆动原理,可以增加手数;其操作策略简单明了:

  • 当价格在预设的与移动平均的距离上方时,我们将开设BUY交易;
  • 当价格从移动平均指标向下移动至预设的与移动平均的距离时,我们将以相同的手数开设SELL交易;
  • 如果价格从BUY交易中最高价格向上移动,并达到预设的与移动平均的距离,则我们将开设下一笔BUY交易;
  • 如果价格从BUY交易中最低价格向下移动,并达到预设的与移动平均的距离,则我们将开设下一笔SELL交易;


CMoving类

设置参数
初始化

主要初始化 - 设置以下参数:

  • 符号 - EA将操作的符号名称
  • 魔术 - EA的唯一标识符
  • 滑点 - 滑点。
GetFlag
返回初始化标志的状态。用于从基本EA中调用时检查CMoving类内部m_init变量的状态。
LotsOrRisk
定义手数计算的类型:可以手动(lots参数大于零)或按交易自由保证金的百分比(risk参数大于零)。
CreateMA
创建移动平均指标。
TakeProfit
定义止盈参数。
Multiplier
定义手数增加参数。
DistanceMA
定义与移动平均指标的偏移量。
ProfitPlus
定义在有总收益时的附加偏移量。
主要功能
Processing
主要功能,执行所有计算。
类函数(受保护访问规范)
RefreshRates
更新符号的报价。
CheckVolumeValue
检查输入的手数是否正确(在手动定义手数时使用)。
IsFillingTypeAllowed
检查订单填充模式。
iMAGet
获取具有索引index的K线上的移动平均指标值。
CalculateAllPositions

获取每次调用的头寸信息:

  • count_buys - BUY头寸数量;
  • price_highest_buy - 最高BUY头寸价格;
  • price_lowest_buy - 最低BUY头寸价格;
  • lot_highest_buy - 最高BUY头寸的手数;
  • lot_lowest_buy - 最低BUY头寸的手数;
  • total_lots_buy - 总BUY头寸手数;
  • count_sells - SELL头寸数量;
  • price_lowest_sell - 最低SELL头寸价格;
  • price_highest_sell - 最高SELL头寸价格;
  • lot_lowest_sell - 最低SELL头寸的手数;
  • lot_highest_sell - 最高SELL头寸的手数;
  • total_lots_sell - 总SELL头寸手数。
Prices
获取参考价格,考虑预设的与移动平均的距离
LotCheck
检查并规范化手数(在手动定义手数时使用)。
OpenBuy
开设BUY头寸。
OpenSell
开设SELL头寸。
PrintResult
打印交易操作的结果。
SetTakeProfit
为头寸设置止盈水平或移除所有止盈和止损水平(当delete_take_profit参数为"true")。
CompareDoubles
比较两个实际数字是否相等。
AwerageTakeProfit
计算并设置特定类型头寸的单一止盈水平pos_type

GBPUSD,H1,“每个点基于真实点。”

VR---MUVING

列表
评论 0