ニューヨーク流動性リバーサルトレーディング定量戦略

EMA RR SL TP 日内交易 流动性 突破 价格行为
作成日: 2025-07-24 08:58:12 最終変更日: 2025-07-24 08:58:12
コピー: 0 クリック数: 171
2
フォロー
319
フォロワー

ニューヨーク流動性リバーサルトレーディング定量戦略 ニューヨーク流動性リバーサルトレーディング定量戦略

概要

ニューヨーク流動性反転取引量化戦略は,ニューヨーク取引時間に特化した日内取引システムであり,主に前取引日の高低を重要な流動性領域として利用し,価格行動確認信号と組み合わせて取引を行う.この戦略は,前日の高低を突破した後の価格反転現象に対応し,市場流動性の後の方向の変化を吸収することによって利益を得る.この戦略は,米国東部時間午前8時から10時30分までの間に採用され,固定されたリスク・報酬比率設定を使用して,取引品種の各方向の取引は,リスクを制御し,取引品質を向上させるために,毎日1回のみの入場が許可される.

戦略原則

ニューヨーク流動性逆転戦略の核心原則は,市場の微細構造と流動性狩猟理論に基づいている.具体的には,戦略は,価格が前日取引日の高点または低点を破った後,その後逆転シグナルが発生した場合,大手機関が流動性の収集を完了したことを示す可能性が高いと考え,市場は逆の方向に進むだろう.戦略の主な実行ロジックは次のとおりである.

  1. タイムフィルター:市場活動が活発で方向性のある時間であるニューヨーク時間 (8:00-10:30 EST) の内での取引のみ.
  2. 流動性スキャンで確認:
    • 多頭条件:価格が前日の低値を下回った後,また引き戻し,同時に看板の飲み込み形を形成した.
    • 空頭条件:価格が前日の高点 (sweepHigh) を破った後,引き下げ,同時に下落の飲み込み形 (bearishEngulf) を形成
  3. 1日の取引制限: 1 つの取引方向 1 つの取引種類 1 日に 1 回のみの入場が許可されます
  4. リスク管理:固定のストップポイント数とリスク・リターン比率 (デフォルト3.0) を使用してストップポイント位置を設定する

戦略の本質は,大手機関が重要な価格水準の近くで流動性収集行動を捕捉することであり,これらの行動は通常,価格の短期的な反転につながる.確認信号を待つことによって,戦略は取引の成功率を高めます.

戦略的優位性

  1. 明確な市場論理:戦略は,流動性収集と価格行動理論に基づいており,統計モデルや技術指標にのみ依存するのではなく,明確な市場論理のサポートがあります.

  2. タイムフィルタリング機構:ニューヨーク取引時間のみで取引を行うことにより,戦略は市場の流動性が最適で情報含有性が最も高い時間帯に集中し,流動性が低い時間の騒音取引を避けます.

  3. 多重確認メカニズム: 策略は,価格突破の前日の高低と吞食形態の2つの確認シグナルを組み合わせ,偽の突破取引の可能性を大幅に減少させる.

  4. リスク管理の厳しさ:

    • 固定ストップポイント設定
    • リスク・リターン・比率の定義
    • 1日1方向1資産カテゴリー1回の取引制限
    • %資金管理を使用する (戦略のデフォルトは,アカウントの資金の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")