RSI ボリンジャーバンド取引戦略


作成日: 2023-09-18 22:13:18 最終変更日: 2023-09-18 22:13:18
コピー: 0 クリック数: 782
1
フォロー
1617
フォロワー

概要

この戦略は,RSI指数によって超買超売状況を判断し,ブリン帯の指数と協働して価格の振動通路で取引信号を形成する. RSI指数が超買または超売現象を示し,価格がブリン帯の下位に近づいたり触れたときに,買出信号を生成する. 戦略は,総合的なトレンド分析と振動判断,ダイナミックでチャンスを探す.

戦略原則

この戦略は以下の2つの指標に基づいて判断されます.

  1. RSIは過剰買いと過剰売れを判断する

周期内における相対的に強い弱指数であるRSIを計算し,それが超買区か超売区に入っているかどうかを,超買区の上限が40で,超売区の下限が45で設定されたように,設定されたパラメータに基づいて判断する.

  1. ブリン帯の指標は価格変動の範囲を示している.

周期内のブリン帯を計算し,その上軌道と下軌道を通じて価格通路を形成し,価格の揺れの範囲を記述する.

この戦略は,次の取引ルールを提示しています.

RSIが45を突破して超売り区に入ると,価格がブルリン帯を突破して下落すると,買い信号が生じます. RSIが40を突破して超売り区に入ると,価格がブルリン帯を突破して軌道に乗ると,売り込みシグナルが生じます.

優位分析

この戦略は,RSIとブリン帯の指標を組み合わせて,以下の利点があります.

  1. RSIは超買い状態を判断し,ブリン帯は価格傾向の方向を判断し,両者は互いを補完する.

  2. ブリン帯の上下線は,リスク管理に有利な止損位置位置として位置づけられる.

  3. パラメータの設定はシンプルで,実行し,測定しやすい.

  4. RSIのパラメータを最適化して,最適の超買超売区間を決定します.

  5. 市場環境に合わせて,異なる価格入力を選択できます.

リスクと解決策

この戦略にはいくつかのリスクがあります.

  1. ブリン帯域の過幅により,ストップダメージの予想差が引き起こされた.

    • ブリン帯域幅のパラメータを適切に調整し,止損範囲を最適化
  2. RSIパラメータが正しく設定されず,超買超売区間判断が間違っています.

    • RSIパラメータを最適化して,最適取引区間を決定する
  3. 市場を動かすために,市場を動かすために,市場を動かすために

    • ブリン帯周期パラメータを適切に短縮して,トレンドの逆転を早期に捉える
  4. 損失を効果的にコントロールできず,大きな市場衝撃の停止リスクがある

    • 移動停止または動的な停止戦略を追加し,停止方法を最適化します.

最適化の方向

この戦略は以下の点で最適化できます.

  1. RSIパラメータを最適化して,最適の超買超売区間を決定します.

  2. ブリン帯域幅のパラメータを最適化し,止損範囲を制御する

  3. 変化の兆しを見逃さないために,他の指標を足す.

  4. 機械学習のアルゴリズムで 買い物や売却のタイミングを判断

  5. 異なる市場状況に応じて異なるパラメータの組み合わせを使用する

  6. ダイナミック・ストップ・メカニズムの追加

  7. 開発パラメータの自動最適化プログラム

要約する

全体として,この戦略は,RSIとブリン帯の指標の配合による使用により,比較的安定した取引意思決定の根拠を形成する.戦略の論理は単純で明確で,リスク管理に有利だが,ある程度の最適化余地もある.パラメータ最適化,止損最適化,アルゴリズムの導入などの方法によって,戦略の効果をさらに強化し,複雑な市場環境に適したものにすることができる.この戦略は,取引システムの構築のためのアイデアを提供し,さらなる研究と応用に値する.

ストラテジーソースコード
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 2h
basePeriod: 15m
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/
// © Mdemoio


//@version=4
strategy("Madri", shorttitle="Madri", overlay=true)


// Version 1.1


///////////// RSI
RSIlength = input(2,title="A") 
RSIoverSold = 45
RSIoverBought = 40
price = close
vrsi = rsi(price, RSIlength)


///////////// Bollinger Bands
BBlength = input(150, minval=1,title="B")
BBmult = 2// input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)


///////////// Colors
//switch1=input(true, title="Enable Bar Color?")
//switch2=input(true, title="Enable Background Color?")
//TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na
//barcolor(switch1?TrendColor:na)
//bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long, stop=BBlower,  comment="Buy")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short, stop=BBupper, comment="Sell")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)