Strategi Penjejakan Purata Pergerakan Berganda RSI MACD Crossover


Tarikh penciptaan: 2023-10-23 17:00:44 Akhirnya diubah suai: 2023-10-23 17:00:44
Salin: 0 Bilangan klik: 824
1
fokus pada
1617
Pengikut

Strategi Penjejakan Purata Pergerakan Berganda RSI MACD Crossover

Gambaran keseluruhan

Strategi ini menggunakan indikator RSI, indikator MACD dan garisan dua rata untuk mencapai kesan trend dan penentuan perbezaan piawai. Strategi ini menilai fenomena overbought dan oversold melalui indikator RSI, MACD menilai peluang membeli dan menjual dengan cepat dan perlahan, garisan dua rata menyaring beberapa peluang perdagangan bising dan mendapat keuntungan dalam trend.

Prinsip Strategi

  1. Mengira RSI untuk menilai overbought dan oversold
  • Mengira perubahan turun naik dalam satu kitaran

  • RSI dikira berdasarkan perubahan turun naik

  • Berikan penghakiman yang berlebihan

  1. Mengira MACD penunjuk kesimpulan silang
  • Hitung talian cepat, lambat, dan isyarat

  • Mempermudahkan pembelian dan penjualan merentas talian

  • Tampilkan keadaan persilangan

  1. Penapisan dua hala
  • Mengira garis laju, garis lambat

  • Pertimbangkan untuk berdagang hanya dengan menggunakan talian pantas.

  • Meneroka trend mengikut penapis bunyi

  1. Gabungan beberapa kriteria untuk kelayakan
  • RSI, MACD, penapis pelbagai syarat

  • Meningkatkan kestabilan strategi

Analisis kelebihan

  • Kombinasi pelbagai indikator untuk meningkatkan ketepatan strategi

  • Pengesanan trend, penapisan bunyi, dan peningkatan kestabilan

  • Indeks RSI membantu anda untuk melihat titik perubahan apabila anda terlalu berbelanja

  • Penghakiman silang MACD, mudah dan berkesan untuk menilai pembelian dan penjualan

  • Penapisan dua hala, menghapuskan kebanyakan peluang perdagangan di luar arus perdana

  • Mudah difahami, kurang parameter, sesuai untuk pemula untuk meningkatkan pembelajaran

Analisis risiko

  • Kombinasi pelbagai penunjuk, mudah menyebabkan strategi terlalu optimum

  • Dua garis yang sama-sama mengorbankan fleksibiliti dan kehilangan peluang

  • Parameter RSI dan MACD perlu dipilih dengan berhati-hati

  • Perhatian perlu diberikan kepada titik henti kerugian dalam perdagangan dan mengawal risiko.

  • Penggunaan jangka panjang memerlukan penyesuaian parameter berulang untuk menyesuaikan diri dengan pasaran

Arah pengoptimuman

  • Menyesuaikan parameter RSI untuk menyesuaikan diri dengan ciri-ciri yang berbeza

  • Menyesuaikan kitaran garis rata ganda untuk mengoptimumkan kesan trend

  • Menyertai strategi stop loss untuk mengawal kerugian tunggal

  • Gabungan dengan lebih banyak petunjuk, kombinasi syarat yang lebih kaya

  • Mod penyesuaian sendiri parameter, penyesuaian parameter secara automatik

ringkaskan

Strategi ini menggunakan pelbagai petunjuk seperti RSI, MACD dan garis keseimbangan ganda, untuk menilai dan menjejaki trend, untuk menyaring pelbagai lapisan peluang, merupakan strategi pelbagai petunjuk yang sangat sesuai untuk pemula belajar dan memperbaiki. Keunggulan strategi ini adalah sederhana dan efisien, mudah difahami, boleh menyesuaikan diri, dan dapat memperoleh keuntungan yang stabil dengan menyesuaikan parameter.

Kod 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)