最后由 macdwww 于 2025-10-21 12:46 编辑
使用中遇到问题的留言!!!!!!!!!!!!
策略文件需要自己编写,
程序只提供一个读取运行策略的框架,
策略是否能够盈利取决于策略而不是EA本身,盈亏自负本人概不负责!!!
使用说明(EA 参数与运行)
1)把文件放对位置
EA:放到 `MQL5/Experts/`,编译后加载到你要交易的图表。
策略文件:放到 数据文件夹里的 `MQL5/Files/`(MT5 菜单:`文件` → `打开数据文件夹`)。
2)关键开关
`启用_本地策略引擎`:本地策略评估的总开关
`启用_下单交易`:允许真实下单(关闭时只打印信号)
`订单_注释`:开仓时写入的订单注释(≤约31字符)
`固定规则_文件名`:主策略文件名(默认 `strategy_rules.txt`)
3)定时触发(两套可分开/可同时用)
每日固定时刻(北京时间)
`本地策略_使用每日固定时刻_BJ = true`
`本地策略_每日固定时刻_BJ = "09:30;13:00;21:00"`(多时刻用 `;` 分隔,`HH:MM`)
每隔 N 分钟(北京时间对齐整槽)
`本地策略_使用N分钟循环 = true`
`本地策略_循环间隔_分钟 = 15`(≥1)
总开关:`启用_本地策略_定时读取 = true`
> 触发只代表“读取→评估”,是否下单仍受风控/时间窗/票决等限制。
4)时间限制(以北京时间计算)
每周限制:`启用_每周限制开单` + `允许_周一 … 允许_周日`
每日时段限制:
`启用_每日限制开单 = true`
`每日_允许时间窗_BJ = "09:30-11:30;13:00-23:30;00:30-01:00"`
支持多段与跨午夜。
5)风控与仓位
ATR 参数:`ATR_TF`、`ATR_周期`
止损/止盈(ATR 百分比):`止损_百分比`、`止盈_百分比`
移动止损(ATR 百分比):`移动止损_百分比`(需 `启用_移动止损 = true`)
资金管理:`单笔风险百分比`、`最小手数`、`最大手数`、`最大订单数量`、`一次一单_每信号`
票决阈值:`票决_最小阈值`(策略文件多条规则投票,|vote| < 阈值 不入场)
6)新闻/情绪(如使用)
若使用外部新闻源,请在 MT5 `工具` → `选项` → `顾问` 中将相应 URL 加入 WebRequest 白名单。
---
策略文件(DSL)编写方法
文件位置:`MQL5/Files/<固定规则_文件名>`(默认 `strategy_rules.txt`)
编码建议:纯英文/数字/逗号的 ASCII 内容最稳(FILE_ANSI 读法);中文注释可加在行首 ``(注释行会被忽略)。
一行一条规则,逗号分隔 `键=值`,首个字段为规则类型。示例:
```
TREND_EMA,TF=M15,FAST=20,SLOW=60,DIR=UP
```
通用要点
注释:以 `` 开头整行注释会被忽略。
时间窗:`TIME_WINDOW` 行不计票,用于“只在这些时间段内允许交易”。若文件里出现任意 `TIME_WINDOW`,则至少 有一条 时间窗当前为真,策略才会生效。
票决机制:非 `TIME_WINDOW` 规则各自返回 `+1 / 0 / -1`(看涨/中性/看跌);把所有行相加得到 `vote`:
若设置了 `票决_最小阈值`(如 2),必须满足 `|vote| ≥ 阈值` 才入场。
`vote > 0` 判定为 做多;`vote < 0` 判定为 做空;否则观望。
方向键 `DIR`:可写 `BUY/SELL/LONG/SHORT/多/空/UP/DOWN/牛/熊/上/下`,引擎内部会解析为 左右/上下 两种语义并自动匹配相应规则。
规则类型与键
1)TREND_EMA —— 均线趋势
```
TREND_EMA,TF=<周期>,FAST=<快线>,SLOW=<慢线>,DIR=<UP/DOWN 可选>
```
逻辑:`MA(FAST) vs MA(SLOW)`,快>慢→+1,快<慢→-1;未指定 `DIR` 则直接返回方向;指定 `DIR` 时,只有匹配方向才返回信号,否则 0。
依据 EA 输入:`MA_方法`、`MA_价格`。
2)BREAKOUT —— 区间突破
```
BREAKOUT,TF=<周期>,LOOKBACK=<回看根数>,OFFSET=<点数>,DIR=<BUY/SELL 可选>
```
逻辑:以 前 LOOKBACK 根(排除当前)的最高/最低为通道,上破 `最高+OFFSET*point` → +1;下破 `最低-OFFSET*point` → -1。未指定 `DIR` 默认按多向检测。
3)MEANREV —— 布林+RSI 反转/回归
```
MEANREV,TF=<周期>,BB_N=<布林周期>,BB_K=<倍数>,RSI=<周期>,
RSI_LOW=<低阈>,RSI_HIGH=<高阈>,DIR=<BUY/SELL 可选>
```
逻辑(不指定 `DIR` 时的默认对称规则):
价在中轨下且 RSI<50 → +1
价在中轨上且 RSI>50 → -1
指定 `DIR=BUY`:`价格≤下轨` 且 `RSI≤RSI_LOW` 才 +1;
指定 `DIR=SELL`:`价格≥上轨` 且 `RSI≥RSI_HIGH` 才 -1。
4)TIME_WINDOW —— 规则生效时间(“门槛”)
```
TIME_WINDOW,START=HH:MM,END=HH:MM
```
仅用于 限制交易时段(基于当前图表/服务器时间的时分判断)。若文件里存在任何 `TIME_WINDOW` 行,则必须有至少一条当前成立,投票结果才会被采纳。
---
可直接使用的示例(5 组)
> 复制到 `strategy_rules.txt`(一行一条),可按需删改。
> 配合 `票决_最小阈值 = 2` 的思路:每组里给两条“方向规则”+ 一条“时间窗”。
示例 1:顺势+突破(做多优先),仅白天
```
TREND_EMA,TF=M15,FAST=20,SLOW=60,DIR=UP
BREAKOUT,TF=M15,LOOKBACK=40,OFFSET=6,DIR=BUY
TIME_WINDOW,START=09:00,END=17:00
```
示例 2:顺势+突破(做空优先),仅欧盘后半段
```
TREND_EMA,TF=H1,FAST=50,SLOW=200,DIR=DOWN
BREAKOUT,TF=H1,LOOKBACK=60,OFFSET=8,DIR=SELL
TIME_WINDOW,START=15:00,END=21:00
```
示例 3:布林回归+RSI 超卖反弹(做多)
```
MEANREV,TF=M30,BB_N=20,BB_K=2.0,RSI=14,RSI_LOW=30,DIR=BUY
TREND_EMA,TF=M30,FAST=10,SLOW=30,DIR=UP
TIME_WINDOW,START=10:00,END=23:30
```
示例 4:布林回归+RSI 超买回落(做空)
```
MEANREV,TF=M30,BB_N=20,BB_K=2.0,RSI=14,RSI_HIGH=70,DIR=SELL
TREND_EMA,TF=M30,FAST=10,SLOW=30,DIR=DOWN
TIME_WINDOW,START=09:30,END=23:30
```
示例 5:中性回归(不指定 DIR,靠票决自动决定方向)
```
MEANREV,TF=M15,BB_N=20,BB_K=2.0,RSI=14
TREND_EMA,TF=M15,FAST=20,SLOW=60
TIME_WINDOW,START=08:30,END=23:30
```
---
运行建议
1. 先把 `启用_下单交易=false` 做信号观察,确认票决与时间窗是否如预期;
2. 调整 `票决_最小阈值`(例如 1→2),避免单条规则误触发;
3. 用 `最大订单数量`、`一次一单_每信号` 控制频率;
4. 止损/止盈与移动止损建议跟品种波动做回测微调(`ATR_TF/ATR_周期/百分比`)。
如果你需要,我可以把你现在想法写成一份完整的 `strategy_rules.txt`,或把你现有中文描述“翻译”为 DSL 规则行。
|
参考策略请自行测试盈亏自负:
整理了**5 套优选交易策略**,都是**EA 可直接读取**的 DSL 规则行(**一行一条规则,ASCII 英文,注释用 `#` 开头**)。
建议**每套策略单独放在一个文件**(例如 `strategy_rules_1.txt` … `strategy_rules_5.txt`),或一次只启用其中一套;若把多套放在同一个文件,它们会一起“投票”叠加。
> 使用建议:把 EA 的 `票决_最小阈值` 设为 **2**,这样每套策略里两条方向规则都满足时才会下单;`TIME_WINDOW` 只起“时间门槛”作用,不计票。
---
## 策略 1:M15 顺势 + 突破(偏多,日间)
```
# M15 TREND+BREAKOUT (long bias), day session
TREND_EMA,TF=M15,FAST=20,SLOW=60,DIR=UP
BREAKOUT,TF=M15,LOOKBACK=40,OFFSET=6,DIR=BUY
TIME_WINDOW,START=09:00,END=17:00
```
## 策略 2:H1 顺势 + 突破(偏空,欧/美盘)
```
# H1 TREND+BREAKOUT (short bias), London/NY hours
TREND_EMA,TF=H1,FAST=50,SLOW=200,DIR=DOWN
BREAKOUT,TF=H1,LOOKBACK=60,OFFSET=8,DIR=SELL
TIME_WINDOW,START=15:00,END=21:00
```
## 策略 3:M30 布林回归 + RSI 超卖反弹(做多)
```
# M30 BB mean reversion + RSI oversold (long)
MEANREV,TF=M30,BB_N=20,BB_K=2.0,RSI=14,RSI_LOW=30,DIR=BUY
TREND_EMA,TF=M30,FAST=10,SLOW=30,DIR=UP
TIME_WINDOW,START=10:00,END=23:30
```
## 策略 4:M30 布林回归 + RSI 超买回落(做空)
```
# M30 BB mean reversion + RSI overbought (short)
MEANREV,TF=M30,BB_N=20,BB_K=2.0,RSI=14,RSI_HIGH=70,DIR=SELL
TREND_EMA,TF=M30,FAST=10,SLOW=30,DIR=DOWN
TIME_WINDOW,START=09:30,END=23:30
```
## 策略 5:多周期顺势共振(H1 + M15)
```
# Multi-timeframe trend alignment (H1 + M15), long bias
TREND_EMA,TF=H1,FAST=50,SLOW=200,DIR=UP
TREND_EMA,TF=M15,FAST=20,SLOW=60,DIR=UP
TIME_WINDOW,START=08:00,END=22:00
```
---
# =============================================
# 伦敦金20条优选交易策略 DSL规则文件
# 适用品种:XAUUSD (伦敦金)
# =============================================
# 策略1: 趋势EMA通道
TREND_EMA,TF=H1,FAST=14,SLOW=50,DIR=UP
TREND_EMA,TF=H4,FAST=14,SLOW=50,DIR=UP
# 策略2: 激进黄金突破
BREAKOUT,TF=M15,LOOKBACK=20,OFFSET=15,DIR=BUY
# 策略3: 布林带均值回归
MEANREV,TF=M30,BB_N=20,BB_K=2.0,RSI=14,RSI_LOW=25,RSI_HIGH=75,DIR=BUY
# 策略4: 日内时间窗口
TIME_WINDOW,START=08:00,END=16:00
# 策略5: 多周期共振
TREND_EMA,TF=M15,FAST=10,SLOW=30,DIR=UP
TREND_EMA,TF=H1,FAST=10,SLOW=30,DIR=UP
TREND_EMA,TF=H4,FAST=10,SLOW=30,DIR=UP
# 策略6: 黄金夜间突破
TIME_WINDOW,START=00:00,END=05:00
BREAKOUT,TF=H1,LOOKBACK=15,OFFSET=10,DIR=SELL
# 策略7: 趋势与动量结合
TREND_EMA,TF=H4,FAST=21,SLOW=55,DIR=UP
MEANREV,TF=H1,BB_N=20,BB_K=1.8,RSI=14,RSI_LOW=40,RSI_HIGH=60,DIR=BUY
# 策略8: 布林带收缩突破
BOLLINGER,TF=M15,BOLL_N=20,BOLL_K=2.0,BOLL_UPPER_TH=0.0,BOLL_LOWER_TH=0.0,DIR=BUY
# 策略9: 稳健趋势跟踪
TREND_EMA,TF=H4,FAST=30,SLOW=100,DIR=UP
# 策略10: RSI极端反转
MEANREV,TF=M15,BB_N=14,BB_K=2.2,RSI=14,RSI_LOW=20,RSI_HIGH=80,DIR=BUY
# 策略11: 早盘趋势跟随
TIME_WINDOW,START=07:00,END=10:00
TREND_EMA,TF=M30,FAST=12,SLOW=26,DIR=UP
# 策略12: 双重突破策略
BREAKOUT,TF=H1,LOOKBACK=30,OFFSET=12,DIR=BUY
BREAKOUT,TF=H4,LOOKBACK=30,OFFSET=12,DIR=BUY
# 策略13: 均线粘合爆发
TREND_EMA,TF=H1,FAST=5,SLOW=15,DIR=UP
TREND_EMA,TF=H1,FAST=15,SLOW=30,DIR=UP
# 策略14: 黄金避险策略
TIME_WINDOW,START=14:00,END=18:00
BREAKOUT,TF=M30,LOOKBACK=10,OFFSET=20,DIR=BUY
# 策略15: 回调买入策略
TREND_EMA,TF=H4,FAST=21,SLOW=60,DIR=UP
MEANREV,TF=H1,BB_N=20,BB_K=2.0,RSI=14,RSI_LOW=45,RSI_HIGH=55,DIR=BUY
# 策略16: 超短线黄金
BOLLINGER,TF=M5,BOLL_N=10,BOLL_K=1.5,BOLL_UPPER_TH=0.0,BOLL_LOWER_TH=0.0,DIR=BUY
# 策略17: 趋势确认策略
TREND_EMA,TF=D1,FAST=10,SLOW=30,DIR=UP
TREND_EMA,TF=H4,FAST=10,SLOW=30,DIR=UP
# 策略18: 波动率自适应
MEANREV,TF=H1,BB_N=20,BB_K=2.0,RSI=14,RSI_LOW=30,RSI_HIGH=70,DIR=BUY
MEANREV,TF=H1,BB_N=20,BB_K=2.0,RSI=14,RSI_LOW=30,RSI_HIGH=70,DIR=SELL
# 策略19: 周初动能策略
TIME_WINDOW,START=00:00,END=23:59
BREAKOUT,TF=H1,LOOKBACK=50,OFFSET=15,DIR=BUY
# 策略20: 综合过滤策略
TREND_EMA,TF=H4,FAST=20,SLOW=50,DIR=UP
MEANREV,TF=H1,BB_N=20,BB_K=2.0,RSI=14,RSI_LOW=40,RSI_HIGH=70,DIR=BUY
TIME_WINDOW,START=09:00,END=17:00
放置与启用
1. 把选中的一套内容保存到 `MQL5/Files/strategy_rules.txt`(或改 EA 参数 `固定规则_文件名` 指向你保存的文件名)。
2. EA 输入里打开:`启用_本地策略引擎 = true`、`启用_本地策略_定时读取 = true`。
3. 触发方式二选一或同时启用:
* 每日固定时刻(北京时区):`本地策略_使用每日固定时刻_BJ` + `本地策略_每日固定时刻_BJ`
* 每隔 N 分钟:`本地策略_使用N分钟循环` + `本地策略_循环间隔_分钟`
4. 先将 `启用_下单交易 = false` 做观察,确认信号与时间窗如预期后再开单。
需要我把其中任意一套**再细化参数**(比如更窄/更宽的时间窗、不同的 LOOKBACK/OFFSET/RSI 阈值、或改为你常用周期/品种)吗?我可以按你的品种和交易时段再优化一版。l]
|