VWAPとRSIの組み合わせ戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-23 14:37:22
タグ:

img

概要

この戦略は"価値重度の平均価格と相対強度指数組み合わせ戦略"と名付けられている.これは,エントリー後のトレンドと過買い過売出口の組み合わせ戦略を実装するために,価値重度の平均価格 (VWAP) と相対強度指数 (RSI) の指標を使用する.

戦略原則

この戦略の主な論理は次の点に基づいています

  1. 市場トレンドが上昇している兆候として 200日線上の50日指数的な移動平均値を使用します.
  2. 閉じる価格が当日のVWAP価格より高く,閉じる価格が開場価格より高くなった場合,市場は強くなっていると考えられ,市場に入場できる.
  3. 過去10のK線のうち少なくとも1つのRSIインジケーターが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. 異なる品種のアプリケーション効果をテストする.現在,S&P 500およびナスダック指数のみでテストされている.この戦略に最も適合する品種を見つけるためにサンプル範囲を拡大することができます.

概要

この戦略は,トレンドトラッキングとオーバー買いオーバーセールシグナルの効果的な組み合わせを達成するために,EMA,VWAPおよびRSI指標の利点を統合し,大きなサイクルアップと短期調整の両方で合理的なエントリー機会を見つけることができます.同時に,戦略には最適化のためのかなりの余地があり,より多くの指標を導入し,ストップ損失方法を調整し,戦略の勝ち率と利益水準をさらに向上させることを約束しています.


/*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)



もっと