ボリンジャー・バンド + RSI + EMA ダブル・トレーディング・ストラテジー

作者: リン・ハーンチャオチャン, 日付: 2023-12-29 14:46:57
タグ:

img

概要

この戦略は,ボリンジャーバンド,相対強度指数 (RSI) と指数移動平均 (EMA) の3つの指標を統合し,株の長期保持期間を持つ自動取引戦略を実装する.RSIが過売線以下で価格がボリンジャーバンド下線に近いまたは触れたとき購入信号を生成し,価格が上昇してボリンジャーバンド上線に触れたとき販売信号を生成し,ボリンジャーバンドを使用して市場の動向と過買い/過売状態を2倍確認する.

戦略原則

この戦略は主にボリンジャーバンド,RSIおよびEMAの3つの指標に基づいて判断する.ボリンジャーバンドのミドルレールは価格の単純な移動平均線であり,上下レールは価格の2つの標準偏差範囲である.ボリンジャーバンドは市場の過買い/過売り状態を判断することができる.価格が下下レールに近いとき,それは過売り状態を示し,価格が上下レールに近いとき,それは過買い状態を示します.RSIは株式が過買いまたは過売れているかどうかを判断するための重要な指標の一つです.RSI30未満は過売り状態を示し,RSI70を超える場合は過買い状態を示します.EMAは価格の指数的な重量化移動平均線であり,価格傾向を決定することができます.

この戦略の買い信号は,RSIが30超売り線を下回り,同時に価格が超売り状態でボリンジャーバンドの下部レールに近づいたか触れたときに生成されます.これは誤った信号を回避します.

セールシグナルは,値が上昇傾向中にボリンジャーバンド上部レールに触れたときに生成される.これはボリンジャーバンドを使用して過買い状態を決定し,利益を得るために販売する.

戦略 の 利点

  1. ボリンジャー帯とRSIを統合し,誤った信号を回避し,過買い/過売り状態を2倍確認します.
  2. 価格傾向の方向性を決定するために EMA を使用し,トレンドに反する取引を避ける.
  3. RSI と Bollinger Band のパラメータは,異なる株に対してカスタマイズできます.
  4. シンプルで明快な戦略論理 分かりやすく実行できます

戦略 の リスク

  1. ボリンガー帯とRSIの両方が誤った信号を生成し,誤ったエントリを引き起こす可能性があります.
  2. ストップロスのポジションはさらなる最適化が必要で,リトラセーションリスクが高くなります.
  3. EMAは,見逃したトレンド逆転点で,トレンドを完璧に決定することができません.
  4. 適切なパラメータ設定が正しくない場合,過剰な取引または取引機会の逃れにつながる可能性があります.

解決策:

  1. ボリンジャー・バンドの期間を短縮し RSI パラメータを最適化します
  2. ダイナミック・トラッキング・ストップ・ロスト
  3. トレンド決定のための他の指標を統合する.
  4. 最適な組み合わせを見つけるために 異なるパラメータ設定をテストします

戦略の最適化のための方向性

この戦略は,次の側面においてさらに最適化することができる.

  1. 判断のためにより多くの指標を追加します.例えば,過買い/過売状態のKDです.
  2. リスク管理のために移動ストップ・ロース,ゾーンストップ・ロースなどのストップ・ロースメカニズムを追加します
  3. 販売条件における EMA 傾向決定に基づく退出規則を追加する.
  4. パラメータ設定を最適化して,利益範囲を拡大します.例えば,ボリンジャーバンドの幅を調整します.
  5. 誤ったブレイクを避けるために入力ルールを追加します 例えばボリュームフィルターです

結論

この戦略は,ボリンジャーバンド,RSIおよびEMAを統合し,ダブル確認フィルター付きの長期保有自動取引戦略です.過剰購入/過剰販売状態の二重確認は誤った信号を効果的に回避し,傾向決定のためにEMAを使用することで,トレンドに反して取引を防ぐことができます.一方,柔軟なパラメータ設定により,異なる株に適応できます.ストップ損失および退出メカニズムの側面のさらなる改善は,戦略の効率性とリスク管理を向上させることができます.この戦略は初心者にとって貴重な参照フレームワークを提供し,実用的な意味を持っています.


/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by ChartArt) v1.3", shorttitle="rsi 30 min ADJ Buy", overlay=true)

///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = input(30, title="RSI Oversold Level")  // Adjustable RSI oversold level
RSIoverBought = input(80, title="RSI Overbought Level")  // Adjustable RSI overbought level
price = close
vrsi = rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(231, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

///////////// EMA
useEMA = input(true, title="Use EMA?")
emaLength = input(20, title="EMA Period Length")
ema = useEMA ? ema(close, emaLength) : na

source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)

///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(ema, color=color.orange, title="EMA")  // Plot EMA

///////////// RSI + Bollinger Bands Strategy
long = crossover(vrsi, RSIoverSold) and buyEntry
close_long = close >= BBupper

if (not na(vrsi))
    if long
        strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
    else
        strategy.cancel(id="Buy")
        
    if close_long
        strategy.close("Buy")


もっと