資源の読み込みに... 荷物...

VWAPの取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-04-29 14:20:39
タグ:エイマVWAP

img

概要

この戦略は,EMA,VWAP,およびボリュームに基づいた取引戦略である.主なアイデアは,閉じる価格がVWAPとEMAを突破し,取引量は特定の取引時間内に以前のキャンドルのボリュームよりも大きいときに開示信号を生成することである.また,ストップ・ロストとテイク・プロフィートを設定し,特定の時間内にポジションを閉じる条件を設定する.

戦略原則

  1. EMAとVWAPの指標を計算する.
  2. 指定された取引時間内にあるかどうかを確認します.
  3. ロング エントリー条件: 閉じる価格が VWAP と EMA より高く,ボリュームが前のキャンドルより高く,閉じる価格が開く価格より高くなります.
  4. ショートエントリー条件:閉じる価格はVWAPとEMAより低く,ボリュームは前のキャンドルよりも高く,開く価格は閉じる価格よりも高くなります.
  5. 長期出口条件:閉じる価格がVWAPまたはEMAを下回り,ストップ・ロースまたはテイク・プロフィートレベルに達するか,指定された出口時間に達します.
  6. ショート・エグジット条件: 閉じる価格がVWAPまたはEMAを上回り,ストップ・ロースまたはテイク・プロフィートレベルに達するか,指定されたエグジット時間に達します.

戦略 の 利点

  1. 価格動向 (EMA),市場フェアバリュー (VWAP),取引量を同時に考慮し,開設条件を厳しくし,戦略の勝利率を向上させる.
  2. リスクをコントロールし 利益を固定する ストップ・ロスを設定します
  3. 取引時間外やオナイトホールディングでのリスクを回避するため,取引時間と終了時間を制限します.

戦略リスク

  1. この戦略は不安定な市場ではうまく機能しない可能性があります. 頻繁に突破や引き下げが多重な開店と閉店につながり,取引コストとスライドが増加する可能性があります.
  2. ストップロスのレベルは固定されており,市場が急激に波動し,戦略が大きな損失を被る場合,早期に起動することがあります.
  3. この戦略は,実際の取引でスライドや開拓失敗などの問題に直面する実際の市場深さや注文状態を考慮していない.

戦略の最適化方向

  1. 傾向と勢力の強さをさらに確認するために,ATRおよびRSI指標などのより多くのフィルタリング条件を追加することを検討します.
  2. ストップ・ロスのレベルと,収益のレベルを動的に設定できる.例えば,ATRやストップ・ロスの割合を基準に,異なる市場の変動に対応する.
  3. 戦略の安定性と収益性を向上させるために,EMA長,VWAP源,ストップ・ロスト・テイク・プロフィート等パラメータを最適化する.
  4. 総リスクを制御するために,波動性や資本比に応じて開設量を調整するなど,ポジション管理を追加することを検討する.

概要

この戦略は,価格動向,市場フェアバリュー,取引量などを総合的に考慮することで,特定の取引時間内に取引を行う.ストップ・ロスト,テイク・プロフィート,限られた取引時間が設定されているが,実際の適用における変動市場やスライプなどのリスクに注意を払う必要がある.将来,戦略の堅牢性と収益性は,より多くのフィルタリング条件を追加し,パラメータを最適化し,ポジションを管理することによって改善することができる.


/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true)

// Inputs
emaLength = input.int(21, title="EMA Length")
vwapSource = input.source(defval=hlc3, title='VWAP Source')
stopLossPoints = input.float(100, title="Stop Loss (points)")
targetPoints = input.float(200, title="Target (points)")
session = input("0950-1430", title='Only take entry during')
exit = input(defval='1515-1525', title='Exit Trade')

tradein = not na(time(timeframe.period, session))
exit_time = not na(time(timeframe.period, exit))

// Calculate indicators
ema = ta.ema(close, emaLength)
vwapValue = ta.vwap(vwapSource)

// Entry Conditions
longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein
shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein

// Exit Conditions
longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time
shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time

// Plotting
plot(vwapValue, color=color.blue, title="VWAP")
plot(ema, color=color.green, title="EMA")

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

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

if longExitCondition
    strategy.close('Long', immediately=true)

if shortExitCondition
    strategy.close("Short", immediately=true)


関連性

もっと