VWAPブレイクアウトフォロー戦略


作成日: 2023-12-20 16:18:50 最終変更日: 2023-12-20 16:25:18
コピー: 1 クリック数: 888
1
フォロー
1621
フォロワー

VWAPブレイクアウトフォロー戦略

概要

VWAPブレークトラッキング戦略は,VWAP指標を使用してトレンドの方向を特定する追跡戦略である.それは,最近5つのK線の閉盘価格がVWAPを突破した状況を分析することによって,価格のブレーク方向を判断する.連続3つのK線が同じ方向でVWAPを突破したときに,その方向の3つのK線の最高価格または最低価格を記録する.その後,価格がこの最高価格または最低価格を突破した場合,取引シグナルを生成する.

この戦略の主な利点は,価格突破の機会を迅速に捉え,超ショートラインの追跡取引を実現することです.しかし,ポジションがあまりにも速く蓄積される一定のリスクもあります.ポジションパラメータを適切に調整することによって最適化することができます.

戦略原則

指標計算

この戦略で使用される主な指標はVWAPである.VWAPは,取引量加重の価格平均線である価格を表す平均取引価格である.市場が認めている価格レベルをよく反映している.

策略内では,5つの閉盘価格のK線とVWAP指標をリアルタイムで計算し,価格が指定された数の連続した突破を発生しているかどうかを検出するための一連の論理判断変数を定義する.

取引信号

戦略の取引シグナルは,価格の突破によって生み出される新しい高値または新しい低値から来ます.具体的論理は:

  1. 最近の5つのK線のうち,前3つの線がVWAPを連続して同じ方向で突破しているかどうかを判断します.
  2. もしそうなら,その方向の3番目のK線の最高値または最低値を記録します.
  3. 取引シグナルを生成します.

したがって,この戦略の核心は,価格の突破方向を識別し,突破から生じる新しい高値や新しい低値を追跡して取引することです.

位置制御

デフォルトのポジションサイズは,アカウントの利便率の100%である。これは,全ポジションの取引をとることを意味する。戦略の高周波ショートライン特性を考慮して,ポジションのサイズを適当に低くして,リスクを制御することができる。

平仓条件は,価格がVWAP指数を再突破することである.つまり,VWAPをストップ・ロスの追跡点として使って,損失拡大を避けることである.

優位分析

VWAPのブレイクトラッキング戦略の最大の利点は,短期的な価格トレンドを迅速に捉え,ブレイクトレードをトラッキングすることです.主な利点は以下の通りです.

  1. 価格の突破に迅速に対応し,最新のトレンドを追跡する
  2. VWAPの指数で判断する方向には,ある程度の信頼性がある.
  3. 標準の全仓取引で最大利益を得ることができます.
  4. VWAPは,単一損失を制限するストップポイントです.

この戦略は,高周波ショートライン取引に特に適しており,短期利益を迅速にロックすることができます.明らかな波動性のある品種 (原油,金など) で最も効果的です.

リスク分析

VWAPの侵入追跡戦略は迅速で効率的ですが,注意すべきリスクがあります.

  1. 複数回追跡したポジションが蓄積され,損失の危険が高まる
  2. VWAPの効果は限られており,損失を完全に回避するには不十分です.
  3. 高頻出入取引コストのプレッシャー
  4. デフォルトの全仓取引はリスクが高いため,大きな撤回が必要

これらのリスクに対して,次の方法でさらに最適化できます.

  1. ポジションの割合を適切に縮小し,単発損失の影響を軽減する.
  2. 判断のフィルタリングを追加し,意思決定の正確性を向上させる
  3. 停止線の距離を適正に緩め,過度の停止を減らす
  4. 収益を固定するPROTECTの停止装置を追加する

最適化の方向

VWAPの突破追跡策は,追跡型の超短線策として,以下のいくつかの次元からさらに最適化することができる.

  1. 多指標統合: 波動率,MACDなどの他の指標を統合し,より厳しい取引信号フィルタリング条件を設定し,誤判の可能性を減らす

  2. 動的ポジション:市場の波動程度に応じて,動的にポジションのサイズを調整する.大株が揺れ動いているときにポジションを減らす,傾向が明らかであるときにポジションを増加させる

  3. 損失を食い止めるための適応: 固定VWAPストップラインを動的なトラッキングストップポイントに変更し,ATR指標と組み合わせてストップ距離を計算し,ストップラインの自律調整を実現する

  4. 風力制御装置取引を制限するために,最大保有時間,一日利回り制限,撤回率ラインなど,複数のリスク管理指標を設定します.

  5. 機械学習戦略パラメータを深度学習モデルで最適化し,より高い安定性を追求する

要約する

VWAPのブレイクトラッキング戦略は,全体的に非常に実用的な高周波取引戦略である.それは,短期的な価格のブレイクチャンスに迅速に反応し,全ポジションの追跡を利用して超ショートラインのブレイクを実現する.同時に,VWAPの内蔵のトラッキングストップメカニズムは,リスクをうまく制御する.

多指標統合,ダイナミックポジション管理,自己適応のストップライン,風力制御メカニズムなどの最適化手段により,この戦略の取引決定をより安定させ,追跡効率を高めることができます.機械学習パラメータの最適化と連携し,VWAPの突破追跡戦略の効果を大きく向上させる余地があります.

これは,高周波取引を好む投資家にとって,検討し,継続的に最適化する価値のある戦略です.

ストラテジーソースコード
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-19 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy(title="VWAP Push", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true)


//VWAP
vwap = ta.vwap(close)
plot(vwap, color=color.black, title="vwap")

//Last 5 Closes
closeBarPrevious5 = close[5]
closeBarPrevious4 = close[4]
closeBarPrevious3 = close[3]
closeBarPrevious2 = close[2]
closeBarPrevious1 = close[1]
closeBarCurrent = close


//is_1530 = (hour == 15) and (minute == 30)

is_push_up = (closeBarCurrent > closeBarPrevious1) and (closeBarPrevious1 > closeBarPrevious2) and (closeBarPrevious2 > closeBarPrevious3) and (closeBarPrevious4 < vwap) and (closeBarPrevious3 > vwap)  
is_push_down = (closeBarCurrent < closeBarPrevious1) and (closeBarPrevious1 < closeBarPrevious2) and (closeBarPrevious2 < closeBarPrevious3) and (closeBarPrevious4 > vwap) and (closeBarPrevious3 < vwap)  

var float hi = na
var float lo = na

hi := is_push_up ? high : hi
lo := is_push_down and (close < vwap) ? low : lo

plot(hi, "High", color.green, 1, plot.style_circles)
plot(lo, "Low", color.red, 1, plot.style_circles)

// Conditions

longCondition = ta.crossover(close,hi)
exitLong = ta.crossunder(close,vwap)

shortCondition = ta.crossunder(close,lo) and (close < vwap)
exitShort = ta.crossover(close,vwap)

// Entries Exits


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

if (shortCondition)
    strategy.entry("Sell", strategy.short)
if (exitShort)
    strategy.close("Sell")