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の間であるときにショートで.
RSIとBBを組み合わせると,より信頼できる信号が表示されます.RSIはトレンドと過買い/過売値を測定し,BBはブレイクアウトを識別します.
30期間のRSIは市場のノイズをフィルタリングし 主要なトレンドに焦点を当てます
標準偏差0.2の50期BBは 鞭打ちをフィルターにします
偽の脱出をフィルターする
52-65 と 35-48 の RSI ロング/ショートゾーンは,見逃した取引を避けるための一定なバッファを提供します.
ストップ・ロスのリスク管理が必要です ストップ・ロスのリスク管理は
バックテストの結果は過剰に作られ リアルタイムでのパフォーマンスも変化する可能性があります
極端な市場動向はストップロスを打って大きな損失をもたらす可能性があります.
期間や
注文価格が ライブパフォーマンスに 大きく影響する
RSI と BB パラメータの異なる組み合わせをテストして最適な設定を見つけます.
信号フィルタリングのためにMACD,KDなどの他の指標を追加します.
RSIのロング/ショートゾーンを最適化してより多くのノイズをフィルタリングします
偽造のフィルタを良くするために動的BBIの
トレンドフィルターを追加して,主要なトレンドに対して取引を避ける.
最適なリスク制御を見つけるために 異なるストップ・ロスト・テクニックをテストします
スリップの影響を最小限にするために,異なるオーダータイプをテストします.
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)