Sumber daya yang dimuat... Pemuatan...

Trend Indeks Kekuatan Relatif yang Dimodifikasi Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-03-29 16:16:37
Tag:

img

Gambaran umum

Strategi ini menangkap tren pasar berdasarkan Modified Relative Strength Index (Modified RSI). Ide utama dari strategi ini adalah menggunakan sinyal crossover dan sinyal histogram dari indikator Modified RSI untuk menentukan tren pasar dan melakukan perdagangan sesuai arah tren.

Prinsip Strategi

  1. Menghitung EMA harga sebagai input untuk RSI yang dimodifikasi
  2. Menghitung indikator RSI yang dimodifikasi
  3. Menghitung EMA dari RSI yang dimodifikasi sebagai garis sinyal
  4. Hitung perbedaan antara RSI yang dimodifikasi dan garis sinyal sebagai histogram
  5. Ketika RSI yang dimodifikasi melintasi di atas garis sinyal dan histogram lebih besar dari 0, menghasilkan sinyal beli
  6. Ketika RSI yang dimodifikasi melintasi di bawah garis sinyal dan histogram kurang dari 0, menghasilkan sinyal jual

Keuntungan Strategi

  1. Indikator RSI yang dimodifikasi dapat menangkap tren dengan lebih baik dibandingkan dengan indikator RSI tradisional.
  2. Menggabungkan sinyal crossover dan sinyal histogram dari RSI yang dimodifikasi dapat secara efektif menyaring sinyal palsu
  3. Parameter dapat disesuaikan dan berlaku untuk pasar dan jangka waktu yang berbeda
  4. Program ini ringkas dan komputasi efisien

Risiko Strategi

  1. Indikator RSI yang dimodifikasi cenderung menghasilkan sinyal palsu di pasar yang terikat rentang
  2. Penangkapan titik balik tren mungkin memiliki keterlambatan
  3. Satu indikator mudah dipengaruhi oleh kebisingan harga

Arah Optimasi Strategi

  1. Hal ini dapat dikombinasikan dengan indikator tren lainnya seperti moving average untuk meningkatkan keandalan sinyal
  2. Modul stop loss dan take profit dapat ditambahkan untuk mengendalikan risiko transaksi tunggal
  3. Parameter dapat dioptimalkan berdasarkan karakteristik pasar yang berbeda
  4. Modul manajemen posisi dapat ditambahkan untuk menyesuaikan posisi secara dinamis

Ringkasan

Strategi ini memanfaatkan karakteristik indikator RSI yang dimodifikasi untuk membangun sistem perdagangan dari perspektif mengikuti tren. Indikator RSI yang dimodifikasi mengatasi beberapa kekurangan indikator RSI tradisional dan memiliki kemampuan menangkap tren yang relatif kuat. Namun, strategi yang didasarkan pada satu indikator seringkali memiliki keterbatasan dan perlu ditingkatkan dalam kombinasi dengan sarana teknis lainnya. Dengan mengoptimalkan parameter strategi, memperkaya sumber sinyal, menambahkan modul pengendalian risiko, dan metode lainnya, stabilitas dan profitabilitas strategi ini dapat ditingkatkan lebih lanjut.


/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © YogirajDange

//@version=5


// Verical lines


// // Define the times
// t1 = timestamp(year, month, dayofmonth, 09, 15) // 9:15
// t2 = timestamp(year, month, dayofmonth, 11, 15) // 11:15
// t3 = timestamp(year, month, dayofmonth, 13, 15) // 1:15
// t4 = timestamp(year, month, dayofmonth, 15, 25) // 3:25

// // Check if the current bar is on the current day
// is_today = (year(time) == year(timenow)) and (month(time) == month(timenow)) and (dayofmonth(time) == dayofmonth(timenow))

// // Draw a vertical line at each time
// if is_today and (time == t1 or time == t2 or time == t3 or time == t4)
//     line.new(x1 = bar_index, y1 = low, x2 = bar_index, y2 = high, extend = extend.both, color=color.red, width = 1)

strategy('Modified RSI')
col_grow_above = input(#02ac11, "Above   Grow", group="Histogram", inline="Above")
col_fall_above = input(#6ee47d, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#e5939b, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#dd0000, "Fall", group="Histogram", inline="Below")
EMA_length = input.int(13, 'Price_EMA', minval=1)
RSI_length = input.int(14, 'RSI_Period', minval=1)
Avg_length = input.int(5, 'RSI_Avg_EMA', minval=1)
fastMA = ta.ema(close, EMA_length)
modrsi = ta.rsi(fastMA, RSI_length)
RSIAVG = ta.ema(modrsi, Avg_length)
plot(modrsi, color=color.rgb(38, 0, 255), linewidth=2)
plot(RSIAVG, color=color.rgb(247, 0, 0))
rsiUpperBand = hline(60, 'RSI Upper Band', color=#099b0e)
//hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(40, 'RSI Lower Band', color=#e90101)

RSI_hist = modrsi - RSIAVG

//plot(RSI_hist,"RSI_Histogram", color = #c201e9, style = plot.style_columns,linewidth= 5)

plot(RSI_hist, title="RSI_Histogram", style=plot.style_columns, color=(RSI_hist>=0 ? (RSI_hist[1] < RSI_hist ? col_grow_above : col_fall_above) : (RSI_hist[1] < RSI_hist ? col_grow_below : col_fall_below)))


/////// Moving Averages 20 50 EMA

fast_ma = input.int(20, minval=2, title="Fast_EMA")
slow_ma = input.int(50, minval=2, title="Slow_EMA")

src = input.source(close, title="Source")

out = ta.ema(src, fast_ma)
out1 = ta.ema(src, slow_ma)

//plot(out, title="20 EMA", color=color.rgb(117, 71, 247), linewidth = 2)
//plot(out1, title="50 EMA", color=color.rgb(0, 0, 0), linewidth = 2)


longCondition = ((ta.crossover(modrsi, RSIAVG)) and (RSI_hist > 0))
if longCondition
    strategy.entry('B', strategy.long)

shortCondition = ((ta.crossunder(modrsi, RSIAVG)) and (RSI_hist < 0))
if shortCondition
    strategy.entry('S', strategy.short)



Lebih banyak