Sumber dimuat naik... memuat...

Trend Indeks Kekuatan Relatif Dipinda Mengikut Strategi

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

img

Ringkasan

Strategi ini menangkap trend pasaran berdasarkan Indeks Kekuatan Relatif Dimodifikasi (RSI Dimodifikasi). Idea utama strategi adalah menggunakan isyarat silang dan isyarat histogram penunjuk RSI Dimodifikasi untuk menentukan trend pasaran dan membuat perdagangan mengikut arah trend.

Prinsip Strategi

  1. Mengira EMA harga sebagai input untuk RSI yang diubah suai
  2. Mengira penunjuk RSI yang diubah suai
  3. Mengira EMA RSI yang diubah suai sebagai garisan isyarat
  4. Mengira perbezaan antara RSI diubah suai dan garis isyarat sebagai histogram
  5. Apabila RSI diubah suai melintasi di atas garis isyarat dan histogram lebih besar daripada 0, menjana isyarat beli
  6. Apabila RSI diubah suai melintasi di bawah garis isyarat dan histogram adalah kurang daripada 0, menjana isyarat jual

Kelebihan Strategi

  1. Penunjuk RSI yang diubah suai dapat menangkap trend dengan lebih baik berbanding dengan penunjuk RSI tradisional
  2. Menggabungkan isyarat silang dan isyarat histogram RSI yang diubah suai dapat menapis isyarat palsu dengan berkesan
  3. Parameter boleh diselaraskan dan boleh digunakan untuk pasaran dan jangka masa yang berbeza
  4. Program ini ringkas dan berkomputer cekap

Risiko Strategi

  1. Indikator RSI yang diubah suai cenderung untuk menghasilkan isyarat palsu di pasaran yang terikat julat
  2. Penangkapan titik perubahan trend mungkin mempunyai kelewatan
  3. Satu penunjuk mudah dipengaruhi oleh bunyi harga

Arahan Pengoptimuman Strategi

  1. Ia boleh digabungkan dengan penunjuk trend lain seperti purata bergerak untuk meningkatkan kebolehpercayaan isyarat
  2. Modul stop-loss dan mengambil keuntungan boleh ditambah untuk mengawal risiko urus niaga tunggal
  3. Parameter boleh dioptimumkan berdasarkan ciri pasaran yang berbeza
  4. Modul pengurusan kedudukan boleh ditambah untuk menyesuaikan kedudukan secara dinamik

Ringkasan

Strategi ini menggunakan ciri-ciri penunjuk RSI yang diubah suai untuk membina sistem perdagangan dari perspektif trend berikut. Penunjuk RSI yang diubah suai mengatasi beberapa kelemahan penunjuk RSI tradisional dan mempunyai keupayaan menangkap trend yang agak kuat. Walau bagaimanapun, strategi berdasarkan satu indikator sering mempunyai batasan dan perlu ditingkatkan dalam kombinasi dengan cara teknikal lain. Dengan mengoptimumkan parameter strategi, memperkaya sumber isyarat, menambah modul kawalan risiko, dan kaedah lain, kestabilan dan keuntungan strategi ini dapat ditingkatkan lagi.


/*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 lanjut