この戦略は,過剰購入および過剰販売の条件を特定するために二重RSI指標を使用し,トレード信号を生成するためにボリンジャー帯のブレイクアウトと組み合わせます.これはトレンドフォロー戦略カテゴリーに属します.目標は複数の指標を組み合わせて信号の信頼性を向上させ,明らかなトレンドから利益を得ることです.
この戦略は,短期および長期間の過剰購入/過剰販売状態を判断するために,異なるタイムフレームを持つ2つのRSIを使用する.両方のRSIが同時に
ボリンジャーバンドは,価格ブレイクを識別するためにも使用されます. RSI条件が満たされ,価格がボリンガーバンド上部/下部バンドをブレイクしたときのみ,取引信号が生成されます.ブレイク確認は,トレンドではない市場で信号を避けるのに役立ちます.
最後に,高速および遅いMAsはトレンド方向をチェックします.ブレイクアウトがRSI信号方向に一致するときにのみ取引が開始されます.
複数の指標を組み合わせることで,誤った信号をフィルタリングし,明らかなトレンドのみを取引することができます. 速い/遅いMAsはトレンドフォローも容易にします. 簡単な戦略は短期的なトレンドから利益を得るのに適しています.
主なリスクは,トレンド逆転を迅速に特定できないことです.急激なV型逆転は,適切なストップ損失なしでは重大な損失を引き起こす可能性があります.パラメータ調整もパフォーマンスに影響を及ぼす可能性があります.
ストップ・ロスの戦略を追加して 逆転時に早く退場します
ボリュームなどのフィルタを組み込み 誤ったブレイクを避ける
パラメータを最適化して 最高の組み合わせを見つけます
機械学習モデルを追加して 市場体制を よりよく識別します
ポジションのサイズ,損失管理を含むリスク管理を強化する.
この戦略は,二重RSIとボリンジャーバンドを組み合わせて短期的なトレンドから利益を得ています. シンプルで直接的ですが,遅延した逆転信号のような制限があります. ストップ損失,シグナルフィルタリング,パラメータ最適化を追加することで,その強度と収益性をさらに高めることができます.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-12 04:00:00 period: 2m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Madrugada strat copy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, currency = currency.USD) // === GENERAL INPUTS === // RSI 1 RSIlength = input(10,title="RSI") RSIoverSold = input(65,title="OSold") RSIoverBought = input(35,title="OBought") price = close vrsi = rsi(price, RSIlength) // RSI 2 RSIlength2 = input(6,title="RSI2") RSIoverSold2 = input(65,title="OSold2") RSIoverBought2 = input(35,title="OBought2") price2 = close vrsi2 = rsi(price2, RSIlength2) //Bollinger Bands source = close Bollinger = input(20, minval=1), Desv = input(1.7, minval=0.001, maxval=50) basis = sma(source, Bollinger) dev = Desv * stdev(source, Bollinger) upper = basis + dev lower = basis - dev plot(basis, color=red, title="BB ma") p1 = plot(upper, color=blue, title="BBajo") p2 = plot(lower, color=blue, title="BAlto") fill(p1, p2) //Media movil short = input(3, minval=1, title="Media corta") long = input(10, minval=1, title="Media larga") src = close plot(sma(src, short), color=#00FF00, transp=0, linewidth=1, title="Media rapida") plot(sma(src, long), color=white, transp=0, linewidth=2, title="Media lenta") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => vrsi < 30 and vrsi2 < 27 and cross(lower, price) exitLong() => short < long strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => vrsi > 70 and vrsi2 > 70 and cross(upper, price) strategy.entry(id = "Short", long = false, when = enterShort()) // Definición señales de compra buy_signals = vrsi < 30 and vrsi2 < 27 and cross(lower, price) // Definición señales de venta sell_signals = vrsi > 70 and vrsi2 > 70 and cross(upper, price) // Dibuja las señales de compra venta en franjas de color b_color = (sell_signals) ? color(red,65) : (buy_signals) ? color(green,65) : na bgcolor(b_color) // Dibuja las señales de compra venta coloreando las velas barcolor(buy_signals ? white : sell_signals ? white : na) plot(vrsi, color=white, linewidth=1) plot(vrsi, color=white, linewidth=2) // Crea alarmas usables desde el desplegable para poder enviar mails a haas alertcondition(buy_signals, title='Buy-Signal', message='compra') alertcondition(sell_signals, title='Sell-Signal', message='vende')