流動性スイープとトレンドフォローの定量取引戦略

SMA ATR 流动性扫荡 趋势跟踪 止损止盈 波动率 高低点突破 移动平均线
作成日: 2025-08-19 11:48:02 最終変更日: 2025-08-19 11:48:02
コピー: 0 クリック数: 383
2
フォロー
319
フォロワー

流動性スイープとトレンドフォローの定量取引戦略 流動性スイープとトレンドフォローの定量取引戦略

概要

流動性掃描とトレンド追跡量化取引戦略は,市場流動性掃描とトレンド追跡を組み合わせた二重技術分析方法である.この戦略は,主に,最近の高低点に対する価格の突破 (流動性掃描) と,移動平均の相対的な位置 (トレンド確認) を識別することによって入場シグナルを決定する.この戦略は,単純移動平均 (SMA) をトレンド判断ツールとして使用し,平均実況範囲 (ATR) を動的に使用し,市場の変動に適応するために止損と止まり値を設定する.

戦略原則

この戦略の核心となる原理は,流動性の掃き散らとトレンドの方向という2つの重要な市場行動に基づいています.

  1. 流動性の掃討を特定する:

    • 戦略的使用swingLookback参数 ((デフォルト3) は,最近の高低の回帰周期を定義します.
    • 価格が近年の高値を破るときは,ブルスウィープとして識別される
    • 価格が近年の低点を破るときは,下落流動性のスイープとして識別される.
  2. トレンド確認:

    • 傾向参照として単純移動平均 ((デフォルト周期は20) を使用する
    • 移動平均より高い終盤は上昇傾向と見なされる
    • 移動平均より低い終盤は下落傾向と見なされる
  3. 入口信号:

    • 多頭入場:価格が近年の高点を突破し,上昇傾向にある
    • 空頭入場:価格が近年の低点を突破し,下落傾向にある.
  4. リスク管理:

    • 動的停止:ATR ((デフォルト周期は14) に基づいて設定され,1.5倍ATRをデフォルトで設定
    • 動態停止:同じATR設定で,ATRの3倍をデフォルトで設定し,リスク/報酬の比率を2:1で提供
  5. 視覚化コンポーネント:

    • トレンド移動平均値
    • 流動性の掃描マーク
    • トレンドの背景の色
    • 買いや売りのシグナルを警告する

戦略的優位性

  1. 市場構造とトレンドの組み合わせ流動性掃描 (市場構造) と移動平均 (トレンド) を組み合わせることで,この戦略はより信頼性の高い取引シグナルを捕捉し,偽のブレイクを回避します.

  2. ダイナミックなリスク管理ATRを使用し,停止と停止のレベルを調整し,リスク管理が市場の波動に適応できるようにし,波動が大きい市場でより緩やかな停止を提供し,波動が少ない市場でより厳しい停止を提供します.

  3. シンプルで有効なパラメータ: 戦略は,移動平均周期,ATR周期,ストップダスト倍数,ストップストップ倍数,および回帰周期などの少数の重要なパラメータを使用し,戦略を容易に理解し,最適化します.

  4. ビデオフィードバック戦略は,トレンドの背景の色,流動性の掃描標識,移動平均を含む直感的な視覚的な指示を提供し,トレーダーが市場の状況を迅速に評価するのを助けます.

  5. 内部にメモリが組み込まれています戦略は,取引機会の早期通知を便利にするために,買賣シグナルのリマインダーを統合しています.

  6. 資金管理統合戦略: 口座の利回り率を使ってポジションを管理し,10%をデフォルトで設定し,口座の成長に合わせてポジションの規模を調整します.

戦略リスク

  1. 偽の突破の危険性解決方法: 取引量確認や変動率フィルターなどの追加のフィルタリング条件の追加を検討する. 解決方法: 取引量確認や変動率フィルタリングなどの追加のフィルタリング条件の追加を検討する.

  2. 過剰取引のリスク“その時はswingLookbackパラメータが小さすぎると ((デフォルトの3) であれば,取引信号が多すぎます. 解決策:取引品種の特性や時間枠に応じてこのパラメータを調整するか,信号確認機構を追加します.

  3. ストップダメージが狭すぎ/広いリスク固定ATR倍数は,特定の市場条件下では柔軟性がない可能性があります. 解決方法:市場の状況 (例えば変動率の変化またはトレンドの強さ) に応じてATR倍数を動的に調整することを検討してください.

  4. トレンド反転リスク: 移動平均は遅滞の指標として,トレンドが逆転したときに十分に迅速に反応しない可能性があります. 解決策: 傾向を判断するために,ALMAまたは双EMA交差などのより敏感な指標を使用することを検討してください.

  5. 固定リスクリターン比率の制限策略: 固定ATR倍数を使用する (デフォルトのストップは1.5倍,ストップは3倍),市場構造のサポート抵抗点を考慮しない. 解決策: 市場構造の動向に応じて目標価格を調整するために改善することができます.

戦略最適化の方向性

  1. 複数の時間枠分析: より高い時間枠のトレンド確認を導入することで,戦略の信頼性が著しく向上する.例えば,より大きな時間枠のトレンド方向が一致しているときにのみ取引を行うことで,逆向きの取引のリスクを減らすことができます.

  2. 動態参数調整: 市場変動や取引量の変化による動態調整swingLookbackストップとストップの倍数.例えば,波動性の高い市場では,反転周期を増やして,誤報信号を減らす.

  3. 音量を上げる確認取引量を確認指標として使用し,取引量の増加に伴う流動性の掃描のみで信号が確認され,偽の突破取引を大幅に減らすことができます.

  4. 市場構造の識別を導入する価格構造の理解を強化する戦略,例えば,高い高点/低い低点の形状を識別する,または,エントリーポイントとターゲット価格を最適化するためにサポート/レジスタンス領域を識別する.

  5. 移動平均に適応する:異なる市場条件により良く適応するために,KAMAやALMAのような適応移動平均を使用することを検討する.

  6. タイムフィルタータイムフィルターを追加し,アジア盤の横盤期や重要経済データ発表前後の波動期などの低効率な取引を回避します.

  7. ポジション管理の最適化:現在の戦略は固定権益パーセント ((10%)) を使用し,波動率やリスクモデルに基づいてポジションサイズを動的に調整することを考慮するか,ピラミッド加仓戦略を実施する.

要約する

流動性掃描とトレンド追跡の量化取引戦略は,技術分析とリスク管理を組み合わせた総合的な取引システムである.この戦略は,市場内の流動性掃描行為を識別し,トレンド確認と組み合わせることで,高確率の取引機会を捉えることを目的としている.そのダイナミックなリスク管理機構は,市場変動に適応するためにATRを使用し,自主的に適応した止損と停止レベルを提供します.

この戦略の主要な優点は,シンプルで効果的なパラメータ設定と豊富な視覚的フィードバックで,あらゆるタイプのトレーダーに適しています.しかしながら,戦略には偽の突破リスクと過剰取引の可能性があり,追加のフィルタリング条件とマルチタイムフレーム分析を追加することで最適化できます.

将来の最適化の方向は,多時間枠分析,動的パラメータ調整,取引量確認,および市場構造の認識の強化などである.これらの最適化によって,戦略の信頼性と収益性をさらに向上させ,偽信号と不必要な取引頻度を減らすことができる.

この戦略は,市場構造とトレンド追跡の組み合わせを求めるトレーダーにとって,個人リスクの好みや取引スタイルに合わせてカスタマイズ・拡張できる,堅固な基礎の枠組みを提供します.

ストラテジーソースコード
/*backtest
start: 2025-01-01 00:00:00
end: 2025-02-07 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_OKX","currency":"ETH_USDT","balance":5000}]
*/

//@version=5
strategy("Liquidity Sweep & Trend Following BTCUSD (Signals Visible)", overlay=true)

// ==== Inputs ====
length = input.int(20, "Trend MA Length")
atrLength = input.int(14, "ATR Length")
stopLossATR = input.float(1.5, "Stop Loss ATR Multiplier")
takeProfitATR = input.float(3, "Take Profit ATR Multiplier")
swingLookback = input.int(3, "Recent High/Low Lookback") // shorter for more signals

// ==== Indicators ====
ma = ta.sma(close, length)
atr = ta.atr(atrLength)

// ==== Trend Detection ====
trendUp = close > ma
trendDown = close < ma

// ==== Detect Liquidity Sweeps ====
// Relaxed condition
recentHigh = ta.highest(high, swingLookback)
recentLow = ta.lowest(low, swingLookback)

bullSweep = high >= recentHigh
bearSweep = low <= recentLow

// ==== Entry Rules ====
longCondition = bullSweep and trendUp
shortCondition = bearSweep and trendDown

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// ==== Exit Rules ====
strategy.exit("Exit Long", "Long", stop=close - atr*stopLossATR, limit=close + atr*takeProfitATR)
strategy.exit("Exit Short", "Short", stop=close + atr*stopLossATR, limit=close - atr*takeProfitATR)

// ==== Plot Trend MA ====
plot(ma, color=color.yellow, linewidth=2, title="Trend MA")

// ==== Plot Sweep Markers ====
plotshape(bullSweep, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small, title="Bull Sweep Marker")
plotshape(bearSweep, style=shape.triangledown, location=location.belowbar, color=color.red, size=size.small, title="Bear Sweep Marker")

// ==== Background Trend Color ====
bgcolor(trendUp ? color.new(color.green, 85) : trendDown ? color.new(color.red, 85) : na)

// ==== Alert Conditions ====
alertcondition(longCondition, title="Buy Signal", message="BTCUSD Buy Signal – Liquidity Sweep + Trend")
alertcondition(shortCondition, title="Sell Signal", message="BTCUSD Sell Signal – Liquidity Sweep + Trend")