Strategi Pelacakan RSI MACD Crossover Double MA

Penulis:ChaoZhang, Tanggal: 2023-10-23 17:00:44
Tag:

img

Gambaran umum

Strategi ini menggabungkan indikator RSI, indikator MACD dan rata-rata bergerak ganda untuk mencapai efek pelacakan tren dan penentuan posisi di pasar volatilitas.

Logika Strategi

  1. Perhitungan indikator RSI untuk overbought dan oversold
  • Menghitung perubahan harga tren naik dan turun

  • Menghitung RSI berdasarkan perubahan harga

  • Tentukan tingkat overbought dan oversold

  1. Menghitung MACD untuk crossover
  • Menghitung MA cepat, MA lambat dan garis sinyal

  • Masuk panjang di salib emas dan keluar di salib kematian

  • Menggambar situasi silang

  1. Mengimplementasikan filter MA ganda
  • Menghitung rata-rata bergerak cepat dan lambat

  • Hanya mempertimbangkan perdagangan ketika MA cepat melintasi di atas MA lambat

  • Menyaring kebisingan dan mengikuti tren

  1. Kombinasi indikator untuk masuk
  • Sinyal masuk filter dengan RSI, MACD dan MA ganda

  • Meningkatkan akurasi dan stabilitas strategi

Analisis Keuntungan

  • Kombinasi dari beberapa indikator meningkatkan akurasi

  • Tren berikut menyaring kebisingan dan meningkatkan stabilitas

  • RSI melihat titik pembalikan potensial

  • MACD crossover memberikan sinyal masuk dan keluar yang sederhana

  • Double MA menghilangkan sebagian besar perdagangan kontra-trend

  • Mudah dimengerti dengan beberapa parameter, baik untuk belajar

Analisis Risiko

  • Risiko overfit dengan beberapa indikator

  • MA ganda mengorbankan fleksibilitas dan mungkin kehilangan kesempatan

  • Parameter RSI dan MACD perlu dipilih dengan hati-hati

  • Perhatikan stop loss berdasarkan simbol

  • Membutuhkan pengaturan ulang parameter secara berkala

Arahan Optimasi

  • Sesuaikan parameter RSI untuk simbol yang berbeda

  • Mengoptimalkan periode MA ganda untuk pelacakan yang lebih baik

  • Tambahkan stop loss untuk mengendalikan kerugian perdagangan tunggal

  • Masukkan lebih banyak indikator untuk memperkaya combo

  • Mengembangkan model parameter adaptif untuk auto-tuning

Ringkasan

Strategi ini menggabungkan RSI, MACD dan double MA untuk mengidentifikasi dan melacak tren, dan menyaring sinyal melalui beberapa lapisan. Ini sangat cocok untuk pemula untuk belajar dan meningkatkan. Keuntungannya terletak pada kesederhanaan dan kemampuan beradaptasi. Penyetelan halus parameter dapat menghasilkan pengembalian yang stabil yang layak. Langkah selanjutnya mungkin termasuk menambahkan lebih banyak indikator, mengembangkan model parameter adaptif untuk mengoptimalkan otomatis untuk lingkungan pasar yang berbeda.


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



Lebih banyak