Strategi perdagangan kombinasi SMA dan RSI

Penulis:ChaoZhang, Tanggal: 2023-10-08 11:40:49
Tag:

Gambaran umum

Strategi ini didasarkan pada indikator Simple Moving Average (SMA) dan Relative Strength Index (RSI). Strategi ini berjalan pendek ketika RSI melintasi di atas level entry yang ditentukan dan harga penutupan berada di bawah SMA, dengan trailing stop loss atau RSI triggered stop loss. Strategi ini menggabungkan indikator trend berikut dan overbought/oversold, yang bertujuan untuk menangkap peluang pembalikan dalam jangka menengah.

Logika Strategi

  1. Gunakan SMA (200 periode) untuk menentukan arah tren secara keseluruhan. Cari peluang shorting ketika harga di bawah SMA.

  2. Gunakan RSI (14 periode) untuk mengidentifikasi kondisi overbought/oversold.

  3. Setelah membuka posisi short, atur stop loss trailing pada harga penutupan terendah.

  4. Ada tiga jenis stop loss: price stop, RSI stop dan profit stop.

Kekuatan

  1. Menggabungkan indikator trend berikut dan overbought/oversold meningkatkan akurasi waktu untuk entri.

  2. Trailing stop loss dapat melindungi keuntungan sesuai dengan perubahan harga real-time, menghindari stop loss yang kaku.

  3. RSI pemicu dua arah membantu mengunci dalam keuntungan dan mencegah kerugian pullback yang berlebihan.

  4. Menggunakan indikator sederhana dengan parameter tetap membuatnya mudah diterapkan untuk perdagangan jangka menengah.

Risiko

  1. Parameter SMA dan RSI mungkin tidak cocok untuk semua produk dan kerangka waktu, yang membutuhkan optimalisasi.

  2. Biaya perdagangan seperti slippage dan komisi diabaikan, mempengaruhi PnL aktual.

  3. Faktor-faktor lain seperti volume dan struktur pasar tidak dipertimbangkan, yang menyebabkan sinyal tidak dapat diandalkan.

  4. Terlalu mengandalkan indikator dan mengabaikan tindakan harga itu sendiri dapat kehilangan waktu pembalikan.

  5. Metode stop loss relatif kaku, tidak mampu beradaptasi dengan perubahan pasar yang besar.

Peningkatan

  1. Uji dan optimalkan periode SMA dan parameter RSI untuk menemukan kombinasi terbaik.

  2. Pertimbangkan untuk menambahkan indikator volume untuk menghindari pecah palsu dengan volume rendah.

  3. Kombinasi tes dengan indikator lain seperti MACD, Bollinger Bands dll.

  4. Tambahkan algoritma pembelajaran mesin, meningkatkan akurasi sinyal dengan pelatihan dengan data historis.

  5. Mengoptimalkan stop loss agar lebih fleksibel, beradaptasi dengan perubahan pasar.

  6. Tambahkan manajemen risiko untuk mengontrol jumlah kerugian perdagangan tunggal.

Kesimpulan

Strategi ini mengintegrasikan kekuatan indikator SMA dan RSI, menyaring beberapa peluang perdagangan yang bising. Logika sederhana yang mudah diterapkan tetapi masih membutuhkan optimasi parameter dan aturan, bersama dengan pengendalian risiko yang tepat untuk beroperasi secara stabil dalam jangka panjang.


/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 2d
basePeriod: 1d
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/
// © abdllhatn

//@version=5
// strategy("Alpha Short SMA and RSI Strategy", overlay=true, initial_capital=10000, default_qty_value=100)

// Inputs
sma_length = input(200, title="SMA Length")
rsi_length = input(14, title="RSI Length")
rsi_entry = input(51, title="RSI Entry Level")
rsi_stop = input(54, title="RSI Stop Level")
rsi_take_profit = input(32, title="RSI Take Profit Level")

// Indicators
sma_value = ta.sma(close, sma_length)
rsi_value = ta.rsi(close, rsi_length)

var float trailingStop = na
var float lastLow = na

// Conditions
shortCondition = ta.crossover(rsi_value, rsi_entry) and close < sma_value
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    trailingStop := na
    lastLow := na

if (strategy.position_size < 0)
    if (na(lastLow) or close < lastLow)
        lastLow := close
        trailingStop := close

if not na(trailingStop) and close > trailingStop
    strategy.close("Sell")

if (rsi_value >= rsi_stop)
    strategy.close("Sell")

if (rsi_value <= rsi_take_profit)
    strategy.close("Sell")

// Plot
plot(sma_value, color=color.red, linewidth=2)




Lebih banyak