この戦略は,トレンドを決定するためにRSI指標と市場への参入のためのMACD指標を使用するトレンドフォローブル戦略である.また,リスクを管理するためにトレンドフィルターとしてEMAラインと緊急ストップロスを組み込む.
この戦略は,主にRSIインジケーターに依存し,トレンド方向を決定する.RSIが設定されたロングライン (デフォルト21) を越えると,市場は上昇傾向に逆転する可能性があると考えられる.この時点で,MACDが既にダウントレンドにある場合,それは逆転点であると判断することができ,これはロングに行く良い機会である.
さらに,戦略はトレンドフィルターとしてEMAライン (デフォルト200期) も導入している.価格がEMAラインを超える場合にのみ,ロングトレードが考慮される.これはトレンドが不明確または減少しているときに偽の逆転を効果的にフィルタリングすることができます.
ストップ・ロスの側では,ストラテジーは通常のストップ・ロスのラインと緊急ストップ・ロスのラインを設定する.RSIが通常のストップ・ロスのライン (86デフォルト) 以下の値を超えると,ポジションを閉じる.価格が急落し,RSIが緊急ストップ・ロスのライン (73デフォルト) 以下の値を超えると,ポジションを無条件に閉じて最大損失を制御する.
概要すると,この戦略はブル戦略をフォローする比較的伝統的なトレンドである.それはRSIで逆転点を特定し,MACDで誤判をフィルターし,EMAで主要なトレンドを決定し,ストップロスのリスクを制御する.この戦略は非常にシンプルで直感的で,理解しやすいものであり,市場の逆転を判断する上でいくつかの利点があり,アルゴ取引のための良い出発点戦略である.しかし,エントリー信号,トレンド判事,ストップロスのメカニズムを最適化することによってさらなる改善のための大きな余地があります.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dravitch //@version=4 strategy("RSI - BULL RUN (Improved)", overlay=true) // Input UseEmergency = input(true, "Use Emergency Exit?") RSIlong = input(21, "RSI Long Cross") RSIcloseLong = input(86, "RSI Close Long Position") EmergencycloseLong = input(73, "RSI Emergency Close Long Position") UseEMAFilter = input(true, "Use EMA Trend Filter") EMAlength = input(200, "EMA Length for Trend Filter") // Utiliser 200 pour SMMA // RSI rsiValue = rsi(close, 14) // MACD [macdLine, signalLine, _] = macd(close, 12, 26, 9) // EMA Trend Filter emaTrend = sma(close, EMAlength) // Utiliser sma pour la SMMA (Simple Moving Average) // Conditions pour les trades longs trendUp = close > emaTrend trendDown = close < emaTrend longCondition = crossover(rsiValue, RSIlong) and trendDown or crossunder(macdLine, signalLine) and crossover(rsiValue, RSIlong) longCloseCondition = crossunder(rsiValue, RSIcloseLong) and trendUp emergencyLongCondition = crossunder(rsiValue, EmergencycloseLong) // Plots plot(rsiValue, color=color.white, linewidth=2, title="RSI") // Strategy if (longCondition) strategy.entry("Long", strategy.long, alert_message='RSI Long Cross: LONG') if (longCloseCondition) strategy.close("Long", alert_message='RSI Close Long Position') if (emergencyLongCondition and UseEmergency) strategy.close("Long", alert_message='RSI Emergency Close Long') // Plot EMA Trend Filter in a separate pane plot(emaTrend, color=color.rgb(163, 0, 122), title="EMA Trend Filter", linewidth=2, style=plot.style_line, transp=0) hline(0, "Zero Line", color=color.gray)