VWAPとRSIの組み合わせ戦略


作成日: 2024-01-23 14:37:22 最終変更日: 2024-01-23 14:37:22
コピー: 1 クリック数: 1521
1
フォロー
1617
フォロワー

VWAPとRSIの組み合わせ戦略

概要

この戦略は,追跡型の価値加重平均価格と相対的に強い指標の組み合わせ戦略と呼ばれています.この戦略は,価値加重平均価格 ((VWAP) と相対的に強い指標 ((RSI) の2つの指標を使用し,トレンドを追跡する入場と超買い超売り退出の組み合わせ戦略を実現しています.

戦略原則

この戦略の取引論理は以下の通りです.

  1. 50日指数移動平均を使って上から200日線を突破し,上向きの動きを判断する信号
  2. 取引日のVWAP値より高い閉店価格と開店価格より高い閉店価格で,市場が強くなると考えられ,入場できます.
  3. 前10のK線のうち,RSIが少なくとも1つのK線を10を下回っている場合,これは超売り状態であり,強力な入場信号です.
  4. RSIが90を再び下方へ交差すると,オフを選択します.
  5. 5%のストップラインを設定し,過大な損失を避ける

以上,この戦略の基本取引論理です.EMAによって大トレンドを判断し,VWAPによって当日のトレンドを判断し,RSIによって超買い超売り領域を判断し,複数の指標の有効な組み合わせを実現し,取引の主な方向を正しく確保するとともに,入場と退出シグナル効果を高めます.

戦略的優位分析

この戦略の最大の利点は,指標の組み合わせを使用することにある.単一のVWAPは,すべての市場状況に完璧に対応することはできません.この時点で,RSIの補助を導入することで,短期的な超売り突破点をもたらすいくつかの取引機会を識別することができます.さらに,EMAの適用は,大周期的な上向きの動きのみを選択して入場させ,短期的な調整反転の罠を避けるようにします.

このコンビネーション指標の使用方法も戦略の安定性を高めます. RSIが偽突破1回または2回発生した場合,VWAPとEMAがバックアップし,誤った取引が起こりそうにありません. 同様に,VWAPが偽突破が発生したとき,RSI指標の確認もあります.

戦略的リスク分析

この戦略の主なリスクは,VWAP指標の使用にある。VWAPは当日の平均取引価格を表しているが,毎日の価格変動はVWAPを中心に波動しているわけではない。したがってVWAPの突破信号は,後期市場の価格が本当に継続的に突破できることを必ずしも保証するものではない。偽突破が発生した場合,取引上の損失を引き起こす可能性がある。

また,RSI指標は分岐点に容易である.市場が震荡の収束段階にあるとき,RSIは繰り返し超買い超売り領域に触れて,取引信号の頻繁な出力を引き起こす可能性がある.この場合,RSI信号を盲目的にフォローして取引する場合は,一定のリスクにも直面する.

これに対して,我々は戦略でEMA指数移動平均を大周期判断として採用し,大周期上昇時にのみ取引を考慮する.これは上記の2つの問題が戦略に及ぼす影響をある程度回避することができる.さらに,ストップ・ロスのラインを設定することで,単発損失を一定範囲で制御することもできる.

戦略最適化の方向性

この戦略は,次のいくつかの側面に焦点を当てて,さらに最適化できる余地があります.

  1. カルマン平均線,ブリン帯など,取引信号をより明確で信頼できるようにする.

  2. 取引費用の最適化 既存の戦略は手数料の影響を考慮せず,実取引口座と組み合わせて,開設ポジションのサイズを最適化できます

  3. ストップモデルを調整する.既存のストップ方法は単純で,市場の変化に完璧に適合できない.移動ストップ,ストップ追跡などの方法をテストすることができる.

  4. 異なる品種の適用効果をテストする.現在,標本とナポケータの2つの指数でのみテストする.サンプル範囲を拡大して,この戦略に最も適合する品種を見つけることができる.

要約する

この戦略は,EMA,VWAPおよびRSIの3つの指標の優位性を総合的に利用し,トレンド追跡と超買い超売りの効果的な組み合わせを実現し,大周期上方および短期調整の両方で合理的な入場タイミングを見つけることができ,強い安定性を有する.同時に,戦略の最適化スペースは大きい.より多くの指標を導入し,ストップロスを調整するなどの手段によって戦略の勝利率と利益レベルをさらに向上させる可能性がある.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
strategy(title="VWAP and RSI strategy [EEMANI]", overlay=false)
//This strategy combines VWAP and RSI indicators
//BUY RULE
//1. EMA50 > EMA 200
//2. if current close > vwap session  value and  close>open   
//3. check if RSI3 is dipped below 10  for any of last 10 candles
//EXIT RULE
//1. RSI3   crossing down 90 level
//STOP LOSS EXIT
//1. As configured --- default is set to 5%


// variables  BEGIN

longEMA = input(200, title="Long EMA", minval=1)
shortEMA = input(50, title="short EMA", minval=1)

rsi1 = input(3,title="RSI Period", minval=1)
rsi_buy_line = input(10,title="RSI Buy Line", minval=5)
rsi_sell_line = input(90,title="RSI Sell Line", minval=50)

stopLoss = input(title="Stop Loss%", defval=5, minval=1)

//variables  END




longEMAval= ema(close, longEMA)
shortEMAval= ema(close, shortEMA)
rsiVal=rsi(close,rsi1)
vwapVal=vwap(hlc3)


// Drawings

plot_rsi = plot(rsiVal, title="RSI", color=color.purple, linewidth=1)
//plot_fill = plot(0, color=color.green, editable=false)
//fill(plot_rsi, plot_fill, title="Oscillator Fill", color=color.blue, transp=75) 
hline(rsi_buy_line, color=color.green, title="Buy Line", linewidth=2, linestyle=hline.style_dashed)
hline(rsi_sell_line, color=color.purple, title="Sell Line", linewidth=2, linestyle=hline.style_dashed)
//plot(value_ma, title="MA", color=color_ma, linewidth=2)

longCondition=  shortEMAval > longEMAval and  close>open and  close>vwapVal
rsiDipped =  rsiVal[1]<rsi_buy_line or rsiVal[2]<rsi_buy_line or rsiVal[3]<rsi_buy_line  or rsiVal[4]<rsi_buy_line  or rsiVal[5]<rsi_buy_line  or rsiVal[6]<rsi_buy_line or rsiVal[7]<rsi_buy_line  or rsiVal[8]<rsi_buy_line  or rsiVal[9]<rsi_buy_line  or rsiVal[10]<rsi_buy_line  

//Entry
strategy.entry(id="VWAP_RSI LE", comment="VR LE" , long=true,  when= longCondition and rsiDipped )

//Take profit Exit
strategy.close(id="VWAP_RSI LE", comment="TP Exit",   when=crossunder(rsiVal,90) )


//stoploss
stopLossVal =   strategy.position_avg_price -  (strategy.position_avg_price*stopLoss*0.01) 
strategy.close(id="VWAP_RSI LE", comment="SL Exit",   when= close < stopLossVal)