欢迎访问

FVG结构流动性模板_1

author emer | 147 人阅读 | 0 人评论 |

FVG + 结构 + 流动性确认 策略模板

1. 策略理念

  • 核心目标:在伦敦/纽约活跃时段,捕捉“结构延续或反转 + FVG 回补 + 流动性扫单”形成的高质量入场。
  • 基础假设:价格在打破流动性区域后,常返回未成交区域(Fair Value Gap,FVG)进行填补,再沿结构方向延续。
  • 交易框架:先通过市场结构判定方向 → 等待流动性扫单(外部流动性) → 用 FVG 作为入场触发 → 结合时间过滤与风险模板执行。

2. 信号组件

组件 识别维度 判定逻辑 指标/函数占位
市场结构 HH/HL, LH/LL 最近两对摆动点;若 HH+HL → 看多,LL+LH → 看空,其余震荡 DetectSwings, UpdateStructureBias
FVG(公平价值缺口) 3K 价格差 多头:Low[1] > High[2]Low[1] > High[0];空头反向,记录缺口上下沿 ScanFVG, TrackActiveFVGs
流动性扫单 外部流动性 当前摆动突破前高/前低并迅速回落,Tick 量放大或实体长影线确认 DetectLiquiditySweep
时间过滤 交易时段 伦敦 08:00–11:30、纽约 13:30–16:30(服务器时间可配置) IsWithinSession
风险与执行 手数/止损 缺口另一端或结构点作为 SL,按账户风险百分比计算手数 CalculatePositionSize

3. 运行流程(逐 K 条件)

  1. 更新结构:扫描新 Bar 是否形成摆动高/低,刷新结构方向缓冲。
  2. 检测扫单:若价格突破最近外部结构点(前高/前低)后快速回撤,标记为流动性事件。
  3. 记录 FVG:在扫单触发后,查找出现的 FVG,并登记为有效候选(带时间戳与结构方向)。
  4. 时间过滤:仅当当前时间落在可交易时段窗内才继续评估。
  5. 入场确认:价格回踩至有效 FVG 内部(可用 50% 线或缺口边缘)且结构方向一致时生成信号。
  6. 风险/仓位:根据预设风险百分比与 SL 距离计算手数,输出到面板或全局变量。
  7. 信号输出:在图表上标记入场/止损/目标价位,并写入缓冲以供 EA 或统计模块调用。

4. MT4 实现规划

4.1 数据结构

  • struct SwingPoint { datetime time; double price; bool isHigh; }
  • struct FVGSlot { datetime startTime; double upper; double lower; int direction; bool isActive; }
  • struct LiquidityEvent { datetime time; double level; int direction; }
  • 队列:SwingDeque, ActiveFVGs, LiquidityEvents 控制长度。

4.2 核心函数

  • bool DetectSwings(int index):判断 index 是否结构摆动点。
  • int UpdateStructureBias():返回 +1/-1/0 结构方向。
  • bool DetectLiquiditySweep(int index):确认是否扫过外部流动性。
  • void ScanFVG(int index):识别缺口并写入 ActiveFVGs
  • bool ValidateSession(datetime time):匹配伦敦/纽约时间段。
  • bool ConfirmEntry(const FVGSlot& slot):判断是否触发入场。
  • void RenderSignal(...):绘制箭头/矩形与文本。

4.3 缺口管理

  • 每次新 Bar 更新 ActiveFVGs 状态:若价格完全填补则标记为失效。
  • 可设置最大持有条数(如 MaxActiveFVG)避免内存膨胀。
  • 可选:使用 ObjectCreate 绘制矩形可视化缺口,颜色区分多空。

4.4 优化思路(FVG + 结构)

  • 自适应结构深度:通过 ATR 或平均摆动范围动态调整 SwingDepth,震荡行情提高抗噪能力,趋势行情降低延迟。
  • FVG 评分体系:为每个缺口打分(结构方向一致、扫单力度、缺口宽度、成交量放大权重),只保留得分高于阈值的候选。
  • 多周期对齐:检测高一级周期的结构与 FVG,若同向叠加则提升信心水平,并在信号输出中标记共振等级。
  • 部分回补过滤:设置缺口内关键线(如 50%、70%),只在达到深度回补时触发;浅回补可触发提示但不生成交易信号。
  • 连续缺口聚合:对相邻、方向一致的多个小 FVG 进行合并,避免重复信号并凸显主要失衡区。
  • 扫单确认强化:结合蜡烛形态(如长上下影、盘整假突破)或订单流代理(Tick 量、波动率突增),过滤缺乏动量的扫单。
  • 时间权重:缺口存活时间越长或跨越冷清时段,降低其优先级;伦敦/纽约内快速形成的缺口给予优先。
  • 回测统计闭环:在指标中记录每个缺口是否填补、时间耗时、交易盈亏,形成数据库支撑参数优化。

5. 输入参数建议

参数 默认值 说明
SwingDepth 3 摆动点判定窗口
LiquidityLookback 5 扫单检测回溯摆动数量
FVGMinPips 3 缺口最小尺寸
FVGExpiryMinutes 90 缺口有效期(分钟)
SessionMode Custom 时段模式:All, London, NY, Custom
LondonSession 08:00-11:30 可配置
NYSession 13:30-16:30 可配置
RiskPercent 1.0 单笔风险比例
PartialTPRatio 1.0 第一目标:风险报酬倍数
FinalTPRatio 2.5 第二目标:风险报酬倍数

6. 输出与接口

  • 缓冲区
    • EntryBuffer:入场箭头 (+1/-1)。
    • StopBuffer:止损水平。
    • TargetBuffer:目标价。
  • 图表对象
    • FVG 矩形 + 标签(显示方向、创建时间)。
    • 流动性扫单水平线(不同颜色标注)。
  • 数据交换
    • 可选输出 GlobalVariableSetFileWrite,为 EA 读取。

7. 风险管理

  • 止损放在 FVG 对侧或最新结构点,必要时加 BufferPips
  • 交易手数:Lots = AccountRisk * AccountBalance / (StopLossPips * PipValue)
  • 可选:入场后若达到 PartialTPRatio,使用 OrderModify 推动 SL 至保本。

8. 测试与验证

  • 回测流程:策略测试器 → 可视模式 → 检查结构、缺口、扫单标记是否契合实际价格行为。
  • 统计维度:胜率、RR、最大连续回撤、各时段表现(伦敦 vs 纽约)。
  • 参数敏感度:调整 SwingDepthFVGMinPipsFVGExpiryMinutes 寻找最稳组合。
  • 数据完整性:确保历史数据包含 Tick 量(用于扫单确认)。

9. 后续开发步骤

  1. 与需求方确认逻辑细节、默认参数及输出形式。
  2. 在 MT4 中创建 FVGStructureLiquidity.mq4(指标或 EA)框架,定义输入与缓冲。
  3. 逐个模块编码并单元测试(结构 → FVG → 扫单 → 时间过滤)。
  4. 将信号与仓位管理整合,提供可视化与导出接口。
  5. 进行历史回测与前向测试,记录 65–80% 胜率目标是否达成。
还没有人打赏,支持一下