VIP源码资源

[MT5源码]K线算法系统

分类:VIP源码 权限:免费 更新:2026-06-10

源码介绍

更新:2026-06-10

系统设计介绍:基于 H1 周期与 ATR 的动态趋势跟踪 EA

1. 系统概述

本 EA(智能交易系统)基于 MetaTrader 5 平台开发,核心策略为日间趋势跟踪。它使用 1 小时(H1)K 线图作为数据源,通过比较最近 1 根与 6 根 K 线前的价格变化判断短期趋势方向,并结合 ATR(平均真实波幅) 动态计算止损与止盈距离。系统设计强调每日仅交易一次单笔持仓控制以及波动率自适应风控

2.1 开仓条件

  • 无任何持仓PositionsTotal() == 0

  • 当日尚未开仓(通过 lastTradeDay 变量确保每日最多一笔交易)

  • 历史 K 线充足(至少 10 根 H1 K 线,保证计算第 6 根开盘价)

  • 趋势信号trend = close1 - open6

    • 若 trend > 0 → 开多单

    • 若 trend < 0 → 开空单

    • (注:当前代码片段未显式写出开仓动作,但参数与逻辑指向顺势突破)

2.2 止损与止盈(动态 ATR 倍数)

  • SL_Multiplier = 1.5:止损距离 = 1.5 × ATR

  • TP_Multiplier = 3.0:止盈距离 = 3.0 × ATR

  • 使用当前 ATR 值(基于 H1 周期,周期数 14)计算******点数,然后转换为价格偏移:

方向止损价止盈价做多ask - SL_distanceask + TP_distance做空bid + SL_distancebid - TP_distance

2.3 仓位管理

  • 固定手数:LotSize = 0.1 手(可外部调整)

  • 魔术号(MagicNumber)用于区分该 EA 的订单,便于管理


3. 模块与函数设计

3.1 初始化函数 OnInit()

  • 强制周期检查:若非 H1 图表,弹出报警并停止运行。

  • 创建 ATR 指标句柄iATR(_Symbol, PERIOD_H1, ATR_Period)

  • 设置魔术号trade.SetExpertMagicNumber(MagicNumber)

  • 随机数种子:为可能的随机化扩展提供基础(当前未使用)

3.2 核心数据获取

cpp
复制
下载
double close1 = iClose(_Symbol, PERIOD_H1, 1);   // 前一根已完成K线的收盘价
double open6  = iOpen(_Symbol, PERIOD_H1, 6);    // 6根K线前的开盘价
double atrValue = atrBuffer[0];                  // ******ATR值

3.3 每日交易限制

  • 通过 MqlDateTime 结构提取当前日期的“日”字段,与上次交易日期(lastTradeDay)比较。

  • 注意:TimeDay() 返回当月日期(1~31),跨月时需结合月份比较更严谨;当前实现简单有效,适用于同月份内每日一次。

资源包含

Source Package
完整源码项目核心文件与页面代码
数据库文件建表结构、初始化数据或说明
部署说明本地/服务器运行配置参考
售后参考基础安装与使用问题说明