この戦略は,暗号通貨のRSIインジケーターを暗号市場インジケーターのRSIインジケーターと比較して,暗号通貨の相対的価値を暗号市場と比較して判断することによって取引信号を生成します.
この戦略は,最初に暗号市場インデックス,例えば総市場キャップ,ビットコインを除く総市場キャップ,他のコインの市場キャップなどを選択することを可能にします.また,暗号指標のより高い時間枠,デフォルトから毎日を選択します.その後,選択した暗号通貨のRSIと暗号指標のRSIを計算し,その比率に基づいて相対強度インデックスを生成します.相対強度インデックスが指定されたパラメータを超えると,購入信号が生成されます.下を通ると,販売信号が生成されます.
基本的な論理は,暗号通貨のRSIが暗号指数よりも強いとき,それはコインが市場と比較して比較的過大評価され,過大評価される可能性があることを意味し,購入することができます.コインのRSIが市場指数よりも弱いとき,それはコインが市場と比較して比較的過大評価され,過大評価される可能性があることを意味し,売却することができます.相対強度指数はより正確な評価判断を可能にします.
この戦略の最大の利点は 比較強度指数を使用することで 仮想通貨の価値が より正確に評価され 決定を下すには 単一のコインの技術指標だけに 頼るのではなく 孤立した視点で 物事を考えるような 罠を避けることです
相対強度指数は,市場環境全体が個々のコインに与える影響を考慮し,市場の回転リズムと部門の回転を把握し,市場から価値のあるコインを掘り出すことができます.
また,この戦略は複数のインデックスを選択し,戦略の有効性を確保するために異なる市場環境に最適化することができます.
この戦略の主なリスクは,相対強度指数は単なる評価ツールであり,個々のコインの技術パターンから生じる取引リスクを完全に回避することはできません.
例えば,コインが目に見える頭と肩のトップ逆転パターンに入り,市場構造が変化した場合,相対強度のみを頼りにする購入信号は損失につながる可能性があります.
したがって,戦略は,個々の暗号通貨の技術的なパターンを組み合わせて,重要な技術的なポイントで不利な取引を避ける必要があります.
もう一つのリスクは,選択されたインデックスが不適切で,仮想通貨との相関性が低い場合,相対強度インデックスの指標力が大幅に損なわれることです.これは,異なるコインと市場インデックスとの相関に基づいてインデックス選択を最適化する必要があります.
戦略は以下の側面で最適化できます.
ストップ・ロスの戦略を追加して 価格が逆転するときに 時間をかけて損失を削減します
インデックス選択を最適化し 異なるコインの異なるインデックスとマッチし 関連性を高めます
複数のタイムフレームの組み合わせを追加し,信号の信頼性を高めるため,日々の信号を4h信号で確認します.
固定パラメータを使う代わりに 相対強度指数の限界値を 適応的に決定するための機械学習アルゴリズムを追加します
より包括的な評価システムを形成するために 感情分析や 基本的分析などの他の指標を組み込むことです
相対強度指数戦略は,市場指数と比較して暗号通貨の相対評価を判断し,取引信号を生成する.その利点は市場分析の次元を組み込み,市場のリズムを把握することにある.しかし,パフォーマンス向上のためにストップ損失,タイムフレーム組み合わせ,適応しきい値などの最適化を必要とするリスクも備わっている.適切に実装された場合,この戦略は暗号アルゴリズム取引において重要な役割を果たすことができる.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('RSI correlation with cryptoindices [strategy version]', overlay=false) // Testing Start dates testStartYear = input(2016, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) //Stop date if you want to use a specific range of dates testStopYear = input(2030, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(30, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false len = input(4, title='length of rsi comparison') correlationcrossover = input(1, title='correlation crossover') IndexSwitch = input.string('CRYPTOCAP:TOTAL2', title='Index selection', options=['CRYPTOCAP:TOTAL2', 'CRYPTOCAP:TOTAL', 'CRYPTOCAP:OTHERS', 'CRYPTOCAP:USDT', 'CRYPTOINDEX:CIX100', 'CRYPTOCAP:BTC.D', 'CRYPTOCAP:BTC']) IndexHTF = input.string('120', title='higher time frame reference index', options=['1', '2', '5', '10', '15', '30', '45', '60', '90', '120', '150', '240', '360', '720', 'D', '3D', 'W', 'M']) switchColor = input(true, 'Color Hull according to trend?') ref = request.security(IndexSwitch, IndexHTF, close[1], lookahead=barmerge.lookahead_on) RSI_ref = ta.rsi(ref, len) RSI_close = ta.rsi(close, len) relative = RSI_ref / RSI_close plot(relative, color=color.new(color.blue, 0)) long = ta.crossover(relative, correlationcrossover) short = ta.crossunder(relative, correlationcrossover) corr = plot(correlationcrossover, color=color.new(color.green, 0), linewidth=1) hullColor = switchColor ? relative > correlationcrossover ? #00ff00 : #ff0000 : #ff9800 //PLOT ///< Frame Fi1 = plot(relative, title='relative', color=hullColor, linewidth=1, transp=50) fill(Fi1, corr, title='Band Filler', color=hullColor, transp=50) if long and testPeriod() strategy.entry("long", strategy.long) if short and testPeriod() strategy.entry("long", strategy.short) // alertcondition(long, title='long', message='long') // alertcondition(short, title='short', message='short')