この戦略は,ストキャスト指標RSIとストキャストオシレーターと指定されたパラメータを組み合わせて,特定の振動範囲内で購入・販売操作を行う.
このコードは,まずストカスティックオシレーターのK値,D値,SD値,およびRSI指標のサイクルパラメータなどのパラメータを定義する.各キャンドルストックのストカスティックオシレーターおよびRSI値を計算した後,RSIが下限20を下回り,K値も20を下回る場合,それはショートに行くためのオーバーセールシグナルである.RSIが上限80を超え,K値も80を超えると,それはロングに行くためのオーバー買いシグナルである.ダブルインジケーターの確認は,いくつかの偽信号をフィルタリングすることができます.また,ストップ損失と収益条件を設定します.
この二重指標フィルタリング戦略は,共通のストーカスティック戦略におけるウィップソーによって引き起こされる不必要な取引を効果的に削減することができます.トレンド指標RSIと組み合わせると,明確なトレンドのない盲目取引も避けられます.したがって,この組み合わせた指標戦略は,信号品質を改善し,偽信号を削減し,リスクをよりよく制御することができます.
この戦略の最大のリスクは,指定されたパラメータがすべての種類および時間帯に適していない可能性があることです.例えば,RSIとストーカスティックのパラメータは,分別された時間サイクルで調整する必要があります.また,ストーカスティックタイプの戦略は,トレンドが劇的に変化した場合,より大きな損失を負うでしょう.したがって,この戦略は,範囲限定の振動市場環境により適しています.
MACDとストカスティックまたはRSIを組み合わせて複数の指標フィルタリングを形成するなど,より多くの指標の組み合わせをテストすることができます. RSIとストカスティックの特定のパラメータ値は,最適なパラメータの組み合わせを見つけるために調整できます.ストップ損失と利益の範囲は,最近のN日間の変動に基づいて動的に調整できます.パラメータ最適化と指標最適化によって,戦略パフォーマンスは継続的に改善できます.
この戦略は,ストキャスト指標ストキャスト指標とトレンド強度指標RSIを統合し,デュアル指標フィルタリングにより,範囲限定振動市場に適した過買い・過売状況を効果的に特定し,単一のストキャスト指標戦略よりも優れたパフォーマンスを発揮することができる.パラメータと指標組み合わせの最適化によりパフォーマンスの改善にさらに余地がある.
/*backtest start: 2023-11-13 00:00:00 end: 2023-11-14 04:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Estrategia de Oscilador Estocástico y RSI", overlay=false) // Configuración del Oscilador Estocástico fastK = input(14, title="K", minval=1) slowK = input(3, title="D", minval=1) slowD = input(3, title="SD", minval=1) overSold = input(20, title="Oversold") overBought = input(80, title="Overbought") // Configuración del RSI rsiPeriod = input(14, title="RSI Period") // Cálculo del Oscilador Estocástico k = sma(stoch(close, high, low, fastK), slowK) d = sma(k, slowD) // Cálculo del RSI rsi = rsi(close, rsiPeriod) // Lógica de la estrategia if (rsi < overSold and k < overSold) strategy.entry("Compra", strategy.long) if (rsi > overBought and k > overBought) strategy.entry("Venta", strategy.short) // Establecer stop loss y take profit stopLoss = input(100, title="Stop Loss") takeProfit = input(100, title="Take Profit") strategy.exit("Stop Loss / Take Profit", "Compra", stop=close - stopLoss, limit=close + takeProfit) strategy.exit("Stop Loss / Take Profit", "Venta", stop=close + stopLoss, limit=close - takeProfit) // Trama de gráfico plot(k, color=color.blue, title="K") plot(d, color=color.red, title="D") plot(rsi, color=color.green, title="RSI")