RSI Axial Moving Average Crossover Strategi

Penulis:ChaoZhang, Tanggal: 2023-11-23 16:45:55
Tag:

img

Gambaran umum

RSI Axial Moving Average Crossover Strategy menghasilkan sinyal perdagangan dengan menghitung indikator RSI dan garis rata-rata bergerak sederhana dan mengamati salib emas dan salib mati antara keduanya. Strategi ini juga menggabungkan Bollinger Bands untuk menambahkan penilaian support/resistance untuk garis rata-rata bergerak aksial RSI.

Logika Strategi

Strategi ini pertama kali menghitung indikator RSI 14 hari, diikuti oleh garis rata-rata bergerak sederhana 8 hari dari indikator RSI. Sinyal beli dihasilkan ketika indikator RSI melintasi di atas garis rata-rata bergerak, sementara sinyal jual dihasilkan ketika RSI melintasi di bawah garis rata-rata bergerak.

Pada saat yang sama, strategi menambahkan Bollinger Bands untuk menentukan apakah garis rata-rata bergerak aksial RSI relatif penuh sesak dengan menghitung standar deviasi, sehingga menghindari membeli puncak dan menjual dasar.

Analisis Keuntungan

RSI Axial Moving Average Crossover Strategy menggabungkan indikator tren RSI dan garis rata-rata bergerak indikator yang mengikuti kurva, yang dapat secara efektif menentukan tren pasar dan keacakan. Rata-rata aritmatika indikator RSI dapat meratakan dampak fluktuasi harga pada sinyal.

Bollinger Bands yang ditambahkan dalam strategi ini menggunakan prinsip standar deviasi untuk menyesuaikan lebar trek atas dan bawah secara otomatis, secara efektif mencegah sinyal perdagangan yang salah. Ketika Bollinger Bands menyempit, itu menunjukkan bahwa perubahan secara bertahap melambat, yang cocok untuk mencari peluang pembalikan. Ketika Bollinger Bands memperluas, itu menunjukkan periode fluktuasi pasar yang ganas, yang cocok untuk melacak tren.

Analisis Risiko

Risiko terbesar dari strategi crossover rata-rata bergerak aksial RSI adalah ketinggalan indikator RSI dan garis rata-rata bergerak itu sendiri. Ketika pergerakan pasar yang cepat terjadi, perhitungan indikator dan penilaian tren akan tertinggal sampai batas tertentu. Ini akan menyebabkan titik beli meningkat dan titik jual menurun.

Risiko utama lainnya adalah kesalahan indikator ketika tren pasar berubah dari bull ke bear atau sebaliknya, sementara indikator RSI dan MA gagal bereaksi tepat waktu, yang mengakibatkan kehilangan perdagangan.

Solusi termasuk menyesuaikan parameter RSI dengan tepat, memperpendek periode MA, menambahkan indikator tren untuk membantu penilaian, dan memperluas rentang stop loss dengan tepat.

Arahan Optimasi

RSI Axial Moving Average Crossover Strategy dapat dioptimalkan dalam aspek berikut:

  1. Optimalkan parameter RSI: Sesuaikan panjang RSI untuk menyeimbangkan sensitivitas dan stabilitas

  2. Optimalkan parameter MA: Sesuaikan parameter jenis MA dan periode untuk mengoptimalkan trend-mengikuti

  3. Tambahkan mekanisme stop loss: Atur bergerak atau waktu stop loss untuk mengontrol kerugian tunggal

  4. Menggabungkan indikator tren: Tambahkan MACD, KDJ dll untuk menghindari kesalahan penilaian pembalikan

  5. Verifikasi beberapa kerangka waktu: Gunakan kerangka waktu yang lebih panjang untuk menentukan tren untuk menghindari terjebak

Kesimpulan

RSI Axial Moving Average Crossover Strategy adalah strategi perdagangan kuantitatif yang secara keseluruhan matang. Strategi ini menggabungkan keuntungan dari beberapa indikator teknis dan dapat menangkap pergerakan pasar arus utama melalui penyesuaian parameter dan optimasi multi-dimensi. Risiko terbesar adalah ketinggalan indikator, yang perlu ditangani dengan stop loss untuk mengendalikan kerugian. Ketika diterapkan dengan benar, strategi ini dapat menghasilkan laba investasi yang relatif stabil.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Copyright (c) 2020-present, Alex Orekhov (everget)
// Corrected Moving Average script may be freely distributed under the terms of the GPL-3.0 license.
strategy('rsisma', shorttitle='rsisma')

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"

plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.blue)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")


long = ta.crossover(rsi, rsiMA)
short = ta.crossunder(rsi, rsiMA)
if long
    strategy.entry("long", strategy.long)
if short
    strategy.close("long", comment = "long TP")

 
// long1 = close * 9
// long2 = long1 / 100
// long3 = long2 + close


//plot(long3,color=color.blue)
// if short
//     strategy.entry("short", strategy.short)
// if long
//     strategy.close("short", comment = "short TP")




Lebih banyak