Strategi ini menghasilkan isyarat perdagangan dengan membandingkan penunjuk RSI mata wang kripto dengan penunjuk RSI indeks pasaran kripto untuk menilai nilai relatif mata wang kripto terhadap pasaran kripto.
Strategi ini membolehkan memilih indeks pasaran kripto terlebih dahulu, seperti jumlah cap pasaran, jumlah cap pasaran tidak termasuk Bitcoin, cap pasaran syiling lain, dll. Ia juga memilih bingkai masa indeks kripto yang lebih tinggi, lalai hingga harian. Kemudian ia mengira RSI mata wang kripto yang dipilih dan RSI indeks kripto, dan menghasilkan indeks kekuatan relatif berdasarkan nisbah mereka. Apabila indeks kekuatan relatif melintasi di atas parameter yang ditentukan, isyarat beli dihasilkan. Apabila melintasi di bawah, isyarat jual dihasilkan.
Logika terasnya adalah bahawa apabila RSI mata wang kripto lebih kuat daripada indeks kripto, ini bermakna duit syiling itu agak undervalued berbanding pasaran, dan berpotensi menjadi overvalued, jadi ia boleh dibeli. Apabila RSI duit syiling lebih lemah daripada indeks pasaran, ini bermakna duit syiling itu relatif overvalued berbanding pasaran, dan berpotensi menjadi undervalued, jadi ia boleh dijual. Indeks kekuatan relatif membolehkan penilaian penilaian yang lebih tepat.
Kelebihan terbesar strategi ini adalah bahawa ia menggunakan indeks kekuatan relatif, yang membolehkan penilaian mata wang kripto yang lebih tepat, dan bukannya hanya bergantung pada penunjuk teknikal satu duit syiling untuk membuat keputusan, mengelakkan perangkap melihat perkara secara terpencil.
Indeks kekuatan relatif mengambil kira kesan persekitaran pasaran keseluruhan terhadap syiling individu, dan dapat menangkap irama putaran pasaran dan putaran sektor, dan menggali syiling berharga dari pasaran.
Juga, strategi menyediakan pelbagai pilihan indeks, yang boleh dioptimumkan untuk persekitaran pasaran yang berbeza untuk memastikan keberkesanan strategi.
Risiko utama strategi ini adalah bahawa indeks kekuatan relatif hanyalah alat penilaian, dan tidak dapat sepenuhnya mengelakkan risiko perdagangan yang timbul daripada corak teknikal syiling individu.
Sebagai contoh, jika duit syiling telah memasuki corak pembalikan atas kepala dan bahu yang jelas, dan struktur pasaran telah berubah, hanya bergantung pada isyarat beli kekuatan relatif boleh menyebabkan kerugian.
Oleh itu, strategi perlu menggabungkan corak teknikal cryptocurrency individu itu sendiri untuk mengelakkan perdagangan yang tidak menguntungkan pada titik teknikal kritikal.
Risiko lain adalah jika indeks yang dipilih tidak sesuai, dan mempunyai korelasi yang rendah dengan mata wang kripto, maka kekuatan yang menunjukkan indeks kekuatan relatif akan banyak dikompromikan. Ini memerlukan pengoptimuman pemilihan indeks berdasarkan korelasi antara syiling yang berbeza dan indeks pasaran.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Tambah strategi stop loss untuk mengurangkan kerugian dalam masa apabila harga berbalik.
Mengoptimumkan pemilihan indeks, memadankan indeks yang berbeza untuk syiling yang berbeza untuk meningkatkan korelasi.
Tambah pelbagai kombinasi bingkai masa, seperti mengesahkan isyarat harian dengan isyarat 4h, untuk meningkatkan kebolehpercayaan isyarat.
Tambah algoritma pembelajaran mesin untuk menentukan ambang indeks kekuatan relatif secara adaptif, bukannya menggunakan parameter tetap.
Menggabungkan penunjuk lain seperti analisis sentimen, analisis asas untuk membentuk sistem penilaian yang lebih komprehensif.
Strategi indeks kekuatan relatif menilai penilaian relatif mata wang kripto dengan membandingkan kekuatan mereka terhadap indeks pasaran, dan menghasilkan isyarat perdagangan. Kelebihannya terletak pada menggabungkan dimensi analisis pasaran dan menangkap irama pasaran. Tetapi ia juga mempunyai risiko yang memerlukan pengoptimuman, seperti menambahkan stop loss, kombinasi bingkai masa, ambang adaptif dan lain-lain untuk meningkatkan prestasi. Jika dilaksanakan dengan betul, strategi ini dapat memainkan peranan penting dalam perdagangan algoritma kripto.
/*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')