Strategi ini menggabungkan penunjuk RSI, penunjuk MACD dan purata bergerak berganda untuk mencapai kesan penjejakan trend dan kedudukan dalam pasaran turun naik. Ia menggunakan penunjuk RSI untuk menilai keadaan overbought dan oversold, MACD untuk menentukan titik masuk dan keluar dengan persilangan MA yang cepat dan perlahan, dan MAs berganda untuk menapis beberapa peluang perdagangan yang bising semasa trend.
Mengira perubahan harga trend menaik dan turun
Mengira RSI berdasarkan perubahan harga
Menentukan tahap terlalu banyak beli dan terlalu banyak jual
Mengira MA pantas, MA perlahan dan garis isyarat
Masuk panjang di salib emas dan keluar di salib kematian
Merangka situasi silang
Mengira purata bergerak pantas dan perlahan
Pertimbangkan perdagangan hanya apabila MA cepat melintasi di atas MA perlahan
Menapis bunyi bising dan mengikuti trend
Penapis isyarat kemasukan dengan RSI, MACD dan MA berganda
Meningkatkan ketepatan dan kestabilan strategi
Gabungan pelbagai penunjuk meningkatkan ketepatan
Trend berikut menapis bunyi bising dan meningkatkan kestabilan
RSI melihat titik pembalikan yang berpotensi
Perpindahan MACD menyediakan isyarat kemasukan dan keluar yang mudah
Double MA menghapuskan kebanyakan dagangan countertrend
Mudah difahami dengan beberapa parameter, baik untuk belajar
Risiko pemasangan berlebihan dengan beberapa penunjuk
MA berganda mengorbankan fleksibiliti dan mungkin kehilangan peluang
Parameter RSI dan MACD memerlukan pemilihan yang teliti
Perhatikan stop loss berdasarkan simbol
Memerlukan penyesuaian semula parameter secara berkala
Sesuaikan parameter RSI untuk simbol yang berbeza
Mengoptimumkan tempoh MA berganda untuk pengesanan yang lebih baik
Tambah stop loss untuk mengawal kerugian perdagangan tunggal
Masukkan lebih banyak penunjuk untuk memperkaya combo
Membangunkan model parameter adaptif untuk penyesuaian automatik
Strategi ini menggabungkan RSI, MACD dan double MA untuk mengenal pasti dan mengesan trend, dan menapis isyarat melalui pelbagai lapisan. Ia sangat sesuai untuk pemula untuk belajar dan meningkatkan. Kelebihannya terletak pada kesederhanaan dan daya adaptasi. Penyesuaian parameter yang baik dapat menghasilkan pulangan yang mantap. Langkah seterusnya mungkin termasuk menambah lebih banyak penunjuk, membangunkan model parameter adaptif untuk mengoptimumkan automatik untuk persekitaran pasaran yang berbeza.
/*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)