RSI-BB モメントブレイクストラテジー

作者: リン・ハーンチャオチャン開催日:2023年11月3日 15:02:19
タグ:

img

概要

RSI-BBモメントブレイクアウト戦略は,ブレイクアウト取引のための相対強度指数 (RSI) とボリンジャーバンド (BB) の指標を組み合わせます. RSIを使用して市場の動向と過買い/過売値,BBを使用してブレイクアウトポイントを特定します. RSIとBBの信号の両方が一致すると,戦略はそれに応じて長または短取引に入る.

戦略の論理

このコードはまずRSIとBB指標を計算します.

RSI は以下のように計算されます.

up = rma(max(change(close), 0), 30)
down = rma(-min(change(close), 0), 30) 
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

上向きは30期間の上向きの価格動きを測定し,下向きは下向きの価格動きを測定し,rsiは上向きと下向きの比率に基づいて計算されます.

BBは以下のように計算されます.

basis = sma(close, 50)
dev = 0.2 * stdev(close, 50)
upper = basis + dev
lower = basis - dev

ベースは50期移動平均値で,devは標準偏差の0.2倍で,上と下は帯です.

bbi は,以下のように計算されるボリンガー帯域幅指数です.

bbr = close>upper? 1 : close<lower? -1 : 0 
bbi = bbr - bbr[1]

bbrは,近距離が上部または下部帯を突破するかどうかをチェックします.突破は1,分解は−1,そうでなければ,0. bbiは現在のbbrと以前のbbrの差です. ポジティブなbbiは上部突破を示し,ネガティブなbbiは下部を示します.

戦略シグナルは以下のとおりです.

long = rsi>52 and rsi<65 and bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and bbi<-0.11 and bbi>-0.7 

RSIが52-65とBBIが0.11から0.7の間であるときにロングで,RSIが35-48とBBIが-0.11から-0.7の間であるときにショートで.

利点

  1. RSIとBBを組み合わせると,より信頼できる信号が表示されます.RSIはトレンドと過買い/過売値を測定し,BBはブレイクアウトを識別します.

  2. 30期間のRSIは市場のノイズをフィルタリングし 主要なトレンドに焦点を当てます

  3. 標準偏差0.2の50期BBは 鞭打ちをフィルターにします

  4. 偽の脱出をフィルターする

  5. 52-65 と 35-48 の RSI ロング/ショートゾーンは,見逃した取引を避けるための一定なバッファを提供します.

リスク

  1. ストップ・ロスのリスク管理が必要です ストップ・ロスのリスク管理は

  2. バックテストの結果は過剰に作られ リアルタイムでのパフォーマンスも変化する可能性があります

  3. 極端な市場動向はストップロスを打って大きな損失をもたらす可能性があります.

  4. 期間や値を含む RSI と BB パラメータを最適化する必要があります.

  5. 注文価格が ライブパフォーマンスに 大きく影響する

増進 の 機会

  1. RSI と BB パラメータの異なる組み合わせをテストして最適な設定を見つけます.

  2. 信号フィルタリングのためにMACD,KDなどの他の指標を追加します.

  3. RSIのロング/ショートゾーンを最適化してより多くのノイズをフィルタリングします

  4. 偽造のフィルタを良くするために動的BBIの値を最適化します

  5. トレンドフィルターを追加して,主要なトレンドに対して取引を避ける.

  6. 最適なリスク制御を見つけるために 異なるストップ・ロスト・テクニックをテストします

  7. スリップの影響を最小限にするために,異なるオーダータイプをテストします.

結論

RSI-BB戦略は,トレンドとモメントインジケーターの使用の利点を組み合わせています.バックテスト結果は有望ですが,スリップやストップ損失などの現実世界の要因によりライブパフォーマンスが異なる可能性があります.バックテスト結果に基づいてパラメータとフィルタを最適化する必要があります.ストップ損失とオーダー配置も現実世界の有効性のために評価する必要があります.この戦略にはメリットがありますが,一貫した結果を生み出すために継続的な改善と強度テストが必要です.


/*backtest
start: 2023-10-03 00:00:00
end: 2023-11-02 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy(title="Spyfrat Strat", shorttitle="SpyfratStrat", overlay=true)
src = close, 
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.2, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up = rma(max(change(src), 0), 30)
down = rma(-min(change(src), 0), 30)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.1
bbi = bbr - nz(bbr[1]) 
//Rule
long = rsi>52 and rsi<65 and  bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and  bbi<-0.11 and bbi>-0.7
//Trade Entry
strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)
//Trade Exit
TP = input(250) * 10
SL = input(20) * 10
TS = input(0) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na

strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)

もっと