Strategi Pelacakan Rata-rata Pergerakan Ganda Crossover RSI MACD


Tanggal Pembuatan: 2023-10-23 17:00:44 Akhirnya memodifikasi: 2023-10-23 17:00:44
menyalin: 0 Jumlah klik: 824
1
fokus pada
1617
Pengikut

Strategi Pelacakan Rata-rata Pergerakan Ganda Crossover RSI MACD

Ringkasan

Strategi ini menggunakan indikator RSI, indikator MACD dan garis ganda untuk mencapai efek pelacakan tren dan penentuan standar deviasi pasar. Strategi ini menggunakan indikator RSI untuk menilai fenomena overbought dan oversold, MACD untuk mencapai kecepatan dan kecepatan rata-rata untuk menilai waktu pembelian dan penjualan, dan garis ganda untuk memfilter beberapa peluang perdagangan bising, dan menghasilkan keuntungan dalam tren.

Prinsip Strategi

  1. Perhitungan RSI untuk menilai overbought dan oversold
  • Perhitungan perubahan naik turun dalam periode tertentu

  • RSI dihitung berdasarkan perubahan naik turun

  • Membuat penilaian overbuying

  1. Perhitungan MACD menilai crossover
  • Perhitungan garis cepat, lambat, dan sinyal

  • Memungkinkan untuk membeli dan menjual secara lintas batas

  • Tampilkan status persilangan

  1. Menerapkan penyaringan dua arah
  • Perhitungan garis cepat, garis lambat

  • Pertimbangkan untuk bertransaksi hanya dengan menggunakan jalur cepat.

  • Implementasi Trending Tracking Filter Noise

  1. Kombinasi dari beberapa kriteria masuk
  • Komposisi RSI, MACD, dan Garis Dua Persamaan

  • Meningkatkan Stabilitas Strategi

Analisis Keunggulan

  • Komposisi multi-indikator untuk meningkatkan akurasi strategi

  • Mengikuti tren, memfilter kebisingan, dan meningkatkan stabilitas

  • Indeks RSI menilai overbought dan oversold, membantu menangkap titik balik

  • Perhitungan silang MACD, mudah dan efektif untuk menilai pembelian dan penjualan

  • Penyaringan dua arah, menghapus sebagian besar peluang perdagangan di luar arus utama

  • Mudah dipahami dengan parameter yang lebih sedikit, cocok untuk pemula untuk meningkatkan pembelajaran

Analisis risiko

  • Kombinasi dari beberapa metrik, mudah untuk strategi over-optimisasi

  • Dua Jalur Persamaan Mengorbankan Fleksibilitas dan Melewatkan Beberapa Kesempatan

  • Parameter RSI dan MACD perlu dipilih dengan hati-hati

  • Perhatikan Stop Loss dan Kontrol Risiko

  • Penggunaan jangka panjang membutuhkan penyesuaian berulang parameter untuk menyesuaikan dengan pasar

Arah optimasi

  • Menyesuaikan parameter RSI dengan karakteristik varietas yang berbeda

  • Menyesuaikan siklus dua rata-rata untuk mengoptimalkan efek pelacakan tren

  • Menambahkan strategi stop loss untuk mengendalikan kerugian tunggal

  • Kombinasi dengan lebih banyak indikator, lebih banyak kombinasi kondisi

  • Modus adaptasi parameter pengembangan, pengaturan parameter secara otomatis

Meringkaskan

Strategi ini menggabungkan beberapa indikator seperti RSI, MACD dan garis keseimbangan ganda, untuk menilai dan melacak tren, untuk memfilter peluang multi-lapisan, dan merupakan strategi multi-indikator yang sangat cocok untuk pemula untuk belajar dan memperbaiki. Keunggulan strategi ini adalah sederhana dan efisien, mudah dipahami. Adaptasi, dengan menyesuaikan parameter dapat memperoleh keuntungan yang stabil.

Kode Sumber Strategi
/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// strategy(title="RSI MACD", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.25, initial_capital = 1000)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

//standard rsi template
src = ohlc4, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=#87ff1a)
band1 = hline(80)
band = hline(50)
band0 = hline(20)
fill(band1, band0, color=purple, transp=90)

//macd

fast_length = input(title="Fast Length",  defval=9)
slow_length = input(title="Slow Length",  defval=72)
signal_length = input(title="Signal Length",  defval=9)

fast_ma = sma(rsi, fast_length) 
slow_ma = sma(rsi, slow_length) 
shortma = sma(ohlc4, fast_length)
longma = sma(ohlc4, slow_length)
controlmainput = input(title = "Control MA", defval = 234)
controlma = sma(ohlc4, controlmainput)
macdx = fast_ma - slow_ma
signalx = sma(macdx, signal_length)
hist = macdx - signalx
ma_hist = shortma - controlma
macd = macdx + 50
signal = signalx + 50

plot(macd,"macd", color = fuchsia)
plot(hist,"hist", style = histogram, color = fuchsia)
//plot(ma_hist,"ma hist", style = histogram, color = orange)
plot(signal,"signal", color = white)

//input
control_buy_toggle = input(true, "Buy on crossover control MA?", type = bool)
buy_on_control = control_buy_toggle == true? true : false

//conditions
buy = buy_on_control == true? ma_hist > 0 and shortma > longma and crossover(macd,signal) or crossover(shortma, controlma) : ma_hist > 0 and shortma > longma and crossover(macd,signal)
sell = ma_hist > 0 and shortma > longma and crossunder(macd,signal)
stop = crossunder(shortma, longma) or crossunder(shortma, controlma)

plotshape(buy,"buy", shape.triangleup, location.bottom, green, size = size.tiny)
plotshape(sell,"sell", shape.triangledown, location.bottom, red, size = size.tiny)
plotshape(stop,"stop",shape.circle,location.bottom, white, size = size.tiny)

if testPeriod()
    strategy.entry("buy", true, when = buy, limit = close)
    strategy.close("buy", when = sell)
    strategy.close("buy", when = stop)