纽约流动性反转交易量化策略

EMA RR SL TP 日内交易 流动性 突破 价格行为
创建日期: 2025-07-24 08:58:12 最后修改: 2025-07-24 08:58:12
复制: 0 点击次数: 171
avatar of ianzeng123 ianzeng123
2
关注
319
关注者

纽约流动性反转交易量化策略 纽约流动性反转交易量化策略

概述

纽约流动性反转交易量化策略是一种专注于纽约交易时段的日内交易系统,主要利用前一交易日高低点作为关键流动性区域,结合价格行为确认信号进行交易。该策略针对突破前一日高低点后的价格反转现象,通过吸收市场流动性后的方向性变化来获利。策略在美国东部时间早上8:00至10:30之间运行,采用固定的风险回报比设置,每个交易品种每个方向每个交易日仅允许一次入场,以控制风险并提高交易质量。

策略原理

纽约流动性反转策略的核心原理基于市场微观结构和流动性狩猎理论。具体来说,策略认为当价格突破前一交易日的高点或低点后,若随后出现反转信号,则很可能表明大型机构完成了流动性收集,市场将向相反方向发展。策略的主要执行逻辑如下:

  1. 时间过滤:仅在纽约交易时段(美东时间8:00-10:30)内交易,这是市场活跃度高且常有方向性行情的时段。
  2. 流动性扫描确认:
    • 多头条件:价格下破前一日低点(sweepLow)后又收回,同时形成看涨吞没形态(bullishEngulf)
    • 空头条件:价格上破前一日高点(sweepHigh)后又收回,同时形成看跌吞没形态(bearishEngulf)
  3. 每日交易限制:每个交易方向每个交易品种每天只允许一次入场
  4. 风险管理:使用固定的止损点数和风险回报比(默认3.0)来设置止盈点位

策略的精髓在于捕捉大型机构在关键价格水平附近的流动性收集行为,这些行为通常会导致价格的短期反转。通过等待确认信号(吞没形态),策略提高了交易成功率。

策略优势

  1. 明确的市场逻辑:策略基于流动性收集和价格行为理论,具有清晰的市场逻辑支撑,不仅仅依赖于统计模型或技术指标。

  2. 时间过滤机制:通过仅在纽约交易时段执行交易,策略专注于市场流动性最佳、信息含量最高的时间段,避免了低流动性时段的噪音交易。

  3. 多重确认机制:策略结合了价格突破前日高低点和吞没形态两种确认信号,显著降低了假突破交易的可能性。

  4. 严格的风险控制:

    • 固定止损点数设置
    • 预定义的风险回报比
    • 每日每方向每资产类别限制一次交易
    • 使用百分比资金管理(策略默认使用账户1%的资金)
  5. 视觉辅助工具:策略在图表上标记交易信号和关键价格水平,便于交易者进行实时监控和策略优化。

  6. 警报功能:内置交易信号警报系统,确保交易者不会错过关键交易机会。

策略风险

  1. 假突破风险:尽管策略使用吞没形态作为确认,但在高波动性市场中,仍可能出现假突破后的反向波动,导致止损被触发。解决方法:可考虑增加额外过滤条件,如成交量确认或更长时间周期的趋势一致性检查。

  2. 时间依赖性:策略仅在特定时间段内运行,这可能导致错过其他时间段的高质量交易机会。解决方法:可以开发互补策略覆盖其他时间段,或根据不同市场特性调整交易时间窗口。

  3. 固定止损限制:使用固定点数止损可能不适合所有市场条件,特别是在波动性突然增加的情况下。解决方法:考虑实现自适应止损机制,根据当前市场波动性动态调整止损点位。

  4. 单一确认机制依赖:策略主要依赖吞没形态作为反转确认,但单一指标可能导致信号质量不稳定。解决方法:整合其他价格行为确认信号或技术指标,如动量指标或支撑阻力水平。

  5. 缺乏波动性过滤:在低波动性环境中,突破前日高低点的行情可能缺乏足够动能导致交易亏损。解决方法:添加ATR(平均真实波幅)过滤器,仅在市场波动性充足时交易。

策略优化方向

  1. 动态止损机制:替换固定点数止损为基于ATR的自适应止损,使策略能够更好地适应不同市场条件下的波动性变化。这样可以在低波动性市场提供更紧的止损,在高波动性市场提供更宽的止损空间。

  2. 整合市场结构分析:将更高时间框架的市场结构(如H4或日线趋势方向)纳入考量,只在与更大趋势一致的方向交易,这可以提高胜率和平均收益。

  3. 成交量确认:添加成交量分析组件,确保流动性突破伴随着足够的成交量支持,过滤掉低质量的突破信号。

  4. 时间优化:对交易时间窗口进行更精细的优化,通过回测确定每个交易品种的最佳交易时段,而不是使用统一的时间窗口。

  5. 多时间框架分析:引入多时间框架确认机制,例如要求较低时间框架的入场信号与较高时间框架的趋势方向一致,以减少逆势交易。

  6. 盈利目标优化:实现动态的盈利目标设置,根据市场结构(如关键支撑阻力位置)或波动性指标调整目标价位,而不是简单使用固定比例。

  7. 部分利润获取:实现阶梯式获利策略,在达到某一盈利水平后移动止损或部分平仓,以锁定部分利润并让剩余仓位追踪更大行情。

总结

纽约流动性反转交易量化策略是一个结构清晰、逻辑明确的日内交易系统,专注于捕捉纽约交易时段内关键价格水平的流动性突破后的反转机会。策略通过结合时间过滤、流动性分析和价格行为确认,构建了一个相对稳健的交易框架。其主要优势在于明确的市场逻辑、严格的风险控制和多重确认机制,但同时也面临假突破风险和固定参数限制等挑战。

通过实施建议的优化方向,尤其是动态止损机制、多时间框架分析和市场结构整合,该策略有潜力进一步提高其性能和适应性。对于日内交易者来说,这一策略提供了一个有价值的框架,可以根据个人风险偏好和市场观点进行定制和扩展。

最终,该策略的成功取决于交易者对市场微观结构的理解和对策略参数的持续优化。通过结合扎实的市场知识和纪律严明的执行,纽约流动性反转策略可以成为交易者武器库中的有效工具。

策略源码
/*backtest
start: 2025-07-16 00:00:00
end: 2025-07-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":2000000}]
*/

//@version=6
strategy("NY Liquidity Reversal - Debug Mode", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1, calc_on_order_fills=true, calc_on_every_tick=true)

// === User Inputs ===
sl_pips = input.int(10, "Stop Loss (pips)", minval=1)
rr_ratio = input.float(3.0, "Reward-to-Risk Ratio", minval=1.0)
tp_pips = sl_pips * rr_ratio
pip = syminfo.mintick * 10

// === Time Definitions ===
ny_start = timestamp("America/New_York", year, month, dayofmonth, 08, 00)
ny_end = timestamp("America/New_York", year, month, dayofmonth, 10, 30)
in_ny = (time >= ny_start and time <= ny_end)

// === Session Limiter ===
currentDay = dayofmonth + (month * 100) + (year * 10000)
var int lastTradeDay = na
canTradeToday = na(lastTradeDay) or (currentDay != lastTradeDay)

// === Previous Day High/Low ===
prevHigh = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
prevLow = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)

// === Simplified Engulfing Logic ===
bullishEngulf = close > open and close > close[1] and open <= close[1]
bearishEngulf = close < open and close < close[1] and open >= close[1]

// === Liquidity Sweep with Confirmation ===
sweepHigh = high > prevHigh and close < prevHigh
sweepLow = low < prevLow and close > prevLow

longCondition = in_ny and canTradeToday and sweepLow and bullishEngulf
shortCondition = in_ny and canTradeToday and sweepHigh and bearishEngulf

// === Trade Execution ===
if longCondition
    entryPrice = close
    stopLoss = entryPrice - sl_pips * pip
    takeProfit = entryPrice + tp_pips * pip
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP/SL", from_entry="Long", stop=stopLoss, limit=takeProfit)
    label.new(bar_index, low, text="BUY", style=label.style_label_up, color=color.green, textcolor=color.white)
    lastTradeDay := currentDay

if shortCondition
    entryPrice = close
    stopLoss = entryPrice + sl_pips * pip
    takeProfit = entryPrice - tp_pips * pip
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP/SL", from_entry="Short", stop=stopLoss, limit=takeProfit)
    label.new(bar_index, high, text="SELL", style=label.style_label_down, color=color.red, textcolor=color.white)
    lastTradeDay := currentDay

// === Visual References ===
plot(prevHigh, title="Prev Day High", color=color.red, linewidth=1)
plot(prevLow, title="Prev Day Low", color=color.green, linewidth=1)

// === Alerts ===
alertcondition(longCondition, title="Long Signal", message="BUY Setup Triggered")
alertcondition(shortCondition, title="Short Signal", message="SELL Setup Triggered")
相关推荐