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

VWAP と RSI ダイナミック・ボリンガー・バンドは,利益とストップ・ロスの戦略をとる

作者: リン・ハーンチャオチャン,日付: 2024-06-14 15:18:39
タグ:VWAPRSIBBATR

img

概要

この戦略は,VWAP (Volume Weighted Average Price),RSI (Relative Strength Index),Bollinger Bandsという3つの技術指標を組み合わせ,ダイナミックなテイク・プロフィートとストップ・ロスのシンプルで使いやすい定量的な取引戦略を実装する.この戦略の主なアイデアは,RSIとボリンジャー・バンドを用い,価格がオーバー・バイト・オーバー・セール範囲内にあるかどうかを判断し,その結果取引信号を決定する.取引信号が決定されると,戦略はリスクを制御し利益をロックするためにATR (Average True Range) 指標に基づいてダイナミックなテイク・プロフィートとストップ・ロスのレベルを計算する.

戦略原則

  1. VWAP,RSI,Bollinger Bandsの技術指標の値を計算する.
  2. 閉店価格と過去15カ月のVWAPの関係を判断して,価格傾向が上昇,下落,または横向であるかどうかを判断します.
  3. 価格がボリンジャーバンドの下位を下回るなら,RSIは45未満で,VWAP信号は下向きを示し,ロング信号が生成される.価格が上向きボリンジャーバンドを下回るなら,RSIは55以上で,VWAP信号は上向きを示し,ショート信号が生成される.
  4. トレーディング・シグナルが決定されると,戦略はATR指標に基づいて,Take ProfitとStop Lossのレベルを計算し,Take ProfitとStop Lossの比率は1.5:1となります.
  5. ロングポジションを保持すると,RSIが90以上またはそれ以上であれば,戦略はロングポジションを閉鎖し,ショートポジションを保持すると,RSIが10以下またはそれ以上であれば,戦略はショートポジションを閉鎖します.

戦略 の 利点

  1. 複数の技術指標を組み合わせることで,取引シグナルの信頼性が向上します.
  2. ダイナミックな取利益とストップロスの利用は リスクを効果的に制御し 利益を固定することができます
  3. コード構造は明確で理解し最適化するのが簡単です
  4. 傾向市場や横向市場を含む様々な市場環境に適用できる.

戦略リスク

  1. 市場が不安定な時期では,頻繁な取引が高取引コストにつながる可能性があります.
  2. 市場が予期せぬ出来事や不合理な行動を経験すると 戦略は不正な取引信号を生成する可能性があります
  3. 戦略のパラメータ設定は,戦略の有効性を確保するために,異なる市場環境に応じて調整する必要がある場合があります.

戦略の最適化方向

  1. VWAP,RSI,ボリンジャー帯のパラメータ設定を,異なる市場環境と取引手段に適応するように調整してみてください.
  2. 取引シグナルの信頼性をさらに向上させるために,MACD,KDJなど他の技術指標を導入する.
  3. 利回りやストップロスの計算方法を最適化し,リスクを制御し,利益を固定するために,トラッキングストップロスやプロフィート保護ストップロスを使用する.
  4. 戦略の全体的なパフォーマンスを改善するために,経済データや政策の変化などの基本的分析を組み合わせます.

概要

この戦略は,VWAP,RSI,ボリンジャーバンドという3つの技術指標を組み合わせ,シンプルで使いやすい定量的な取引戦略を実装する.この戦略は,リスクを効果的に制御し,利益をロックするために動的利益とストップロスを使用する.この戦略にはいくつかの潜在的なリスクがあるが,合理的なパラメータ設定と継続的な最適化により,この戦略は実際の取引で良い結果を達成できると考えられている.


/*backtest
start: 2024-06-06 00:00:00
end: 2024-06-13 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("VWAP and RSI Strategy", overlay=true)

// VWAP calculation
vwap = ta.vwap(close)

// RSI calculation
rsi_length = 16
rsi = ta.rsi(close, rsi_length)

// Bollinger Bands calculation
bb_length = 14
bb_std = 2.0
[bb_middle, bb_upper, bb_lower] = ta.bb(close, bb_length, bb_std)

// Variables for VWAP signal calculation
backcandles = 15
float vwapsignal = na

// Function to check if last 15 candles are above or below VWAP
calc_vwapsignal(backcandles) =>
    upt = true
    dnt = true
    for i = 0 to backcandles - 1
        if close[i] < vwap[i]
            upt := false
        if close[i] > vwap[i]
            dnt := false
    if upt and dnt
        3
    else if upt
        2
    else if dnt
        1
    else
        0

// Calculate VWAP signal for each bar
vwapsignal := calc_vwapsignal(backcandles)

// Calculate total signal
totalsignal = 0
if vwapsignal == 2 and close <= bb_lower and rsi < 45
    totalsignal := 2
else if vwapsignal == 1 and close >= bb_upper and rsi > 55
    totalsignal := 1



// Define strategy entry and exit conditions
slatr = 1.2 * ta.atr(7)
TPSLRatio = 1.5

if (totalsignal == 2 and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long, stop=close - slatr, limit=close + slatr * TPSLRatio)

if (totalsignal == 1 and strategy.opentrades == 0)
    strategy.entry("Short", strategy.short, stop=close + slatr, limit=close - slatr * TPSLRatio)

// Additional exit conditions based on RSI
if (strategy.opentrades > 0)
    if (strategy.position_size > 0 and rsi >= 90)
        strategy.close("Long")
    if (strategy.position_size < 0 and rsi <= 10)
        strategy.close("Short")


関連性

もっと