创意来源: Vladimir Pastushak。
MQL5代码由: Vladimir Karputov。
这款EA基于移动平均指标进行交易,所有的准备和交易功能都已经实现为一个名为CMoving的交易类,存放在名为Moving.mqh的独立文件中。
输入参数
- 魔术编号 - EA的唯一标识符;
- 手数 - 交易手数(手数需大于零或风险大小需大于零);
- 风险 - 每笔交易风险占用的百分比(手数需大于零或风险大小需大于零);
- MA: 时间周期 - 移动平均指标的时间框架;
- MA: 平滑周期 - 移动平均指标的平滑周期;
- MA: 水平偏移 - 移动平均指标的水平偏移;
- MA: 平滑类型 - 移动平均指标的平滑方法;
- MA: 价格类型 - 计算移动平均指标所依据的价格类型;
- 止盈 - 当一笔交易开放时的止盈点;
- 系列手数倍增器 - 在一系列交易中增加手数;
- 与移动平均的距离 - 距离移动平均指标的距离;
- 有总收益时的附加量 - 如果有总收益则添加的偏移量。
这款EA运用摆动原理,可以增加手数;其操作策略简单明了:
- 当价格在预设的与移动平均的距离上方时,我们将开设BUY交易;
- 当价格从移动平均指标向下移动至预设的与移动平均的距离时,我们将以相同的手数开设SELL交易;
- 如果价格从BUY交易中最高价格向上移动,并达到预设的与移动平均的距离,则我们将开设下一笔BUY交易;
- 如果价格从BUY交易中最低价格向下移动,并达到预设的与移动平均的距离,则我们将开设下一笔SELL交易;
CMoving类
| 设置参数 | |
初始化 |
主要初始化 - 设置以下参数:
|
GetFlag |
返回初始化标志的状态。用于从基本EA中调用时检查CMoving类内部m_init变量的状态。 |
LotsOrRisk |
定义手数计算的类型:可以手动(lots参数大于零)或按交易自由保证金的百分比(risk参数大于零)。 |
CreateMA |
创建移动平均指标。 |
TakeProfit |
定义止盈参数。 |
Multiplier |
定义手数增加参数。 |
DistanceMA |
定义与移动平均指标的偏移量。 |
ProfitPlus |
定义在有总收益时的附加偏移量。 |
| 主要功能 | |
Processing |
主要功能,执行所有计算。 |
| 类函数(受保护访问规范) | |
RefreshRates |
更新符号的报价。 |
CheckVolumeValue |
检查输入的手数是否正确(在手动定义手数时使用)。 |
IsFillingTypeAllowed |
检查订单填充模式。 |
iMAGet |
获取具有索引index的K线上的移动平均指标值。 |
CalculateAllPositions |
获取每次调用的头寸信息:
|
Prices |
获取参考价格,考虑预设的与移动平均的距离。 |
LotCheck |
检查并规范化手数(在手动定义手数时使用)。 |
OpenBuy |
开设BUY头寸。 |
OpenSell |
开设SELL头寸。 |
PrintResult |
打印交易操作的结果。 |
SetTakeProfit |
为头寸设置止盈水平或移除所有止盈和止损水平(当delete_take_profit参数为"true")。 |
CompareDoubles |
比较两个实际数字是否相等。 |
AwerageTakeProfit |
计算并设置特定类型头寸的单一止盈水平pos_type。 |
GBPUSD,H1,“每个点基于真实点。”

评论 0