SMA dan RSI Strategi Hanya Panjang

Penulis:ChaoZhang, Tanggal: 2023-12-18 10:28:10
Tag:

img

Gambaran umum

Strategi ini diadaptasi dari artikel oleh Enrico Malverti. Strategi ini terutama menggunakan Simple Moving Average (SMA) dan Relative Strength Index (RSI) untuk mengidentifikasi sinyal masuk dan keluar yang panjang.

Logika Strategi

Sinyal masuk dipicu ketika harga penutupan melintasi garis SMA jangka panjang.

Sinyal keluar termasuk:

  1. Tutup jangka panjang ketika RSI melintasi di bawah 70 atau melebihi 75;
  2. Stop loss ketika harga penutupan melintasi di bawah garis SMA periode yang lebih pendek;
  3. Mengambil keuntungan ketika harga penutupan melintasi di bawah garis SMA periode yang lebih pendek.

Garis SMA stop loss dan garis SMA take profit juga digambarkan.

Analisis Keuntungan

Keuntungan dari strategi ini:

  1. Menggunakan kombinasi indikator yang sederhana dan mudah dimengerti;
  2. Hanya pergi panjang untuk menghindari risiko jual pendek;
  3. Memiliki aturan masuk yang jelas, stop loss dan take profit, risiko yang dapat dikendalikan;
  4. Mudah dioptimalkan dengan menyesuaikan periode SMA dll.

Analisis Risiko

Ada beberapa risiko:

  1. Bias psikologis kehilangan kepercayaan diri setelah kehilangan;
  2. Pergeseran garis SMA dapat menyebabkan risiko;
  3. Sinyal divergensi RSI mungkin tidak dapat diandalkan.

Solusi:

  1. Membangun mekanisme perdagangan tetap mengikuti aturan;
  2. Mengoptimalkan periode SMA;
  3. Tambahkan filter lain untuk sinyal RSI.

Arahan Optimasi

Strategi dapat dioptimalkan lebih lanjut:

  1. Uji parameter yang berbeda untuk SMA;
  2. Tambahkan indikator lain sebagai filter;
  3. Tambahkan identifikasi tren untuk membedakan tren dan konsolidasi;
  4. Adaptasi parameter dan optimasi.

Kesimpulan

Ide keseluruhan sederhana dan jelas. Dengan indikator dasar dan kontrol, itu cocok untuk perdagangan jangka menengah dan panjang. Tetapi penyesuaian parameter dan penyaringan indikator membutuhkan banyak pengujian dan optimasi untuk membuat strategi lebih solid dan dapat diandalkan. Ide sederhana membutuhkan upaya besar pada optimasi dan kombinasi untuk membentuk sistem perdagangan yang benar-benar dapat digunakan.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 4
// form the original idea of Enrico Malverti www.enricomalverti.com , trading system 2015  
// https://sauciusfinance.altervista.org
strategy(title="MAs & RSI strategy long only", overlay = true, max_bars_back=500)

///********FROM EMAS TO SIMPLE MA *****
// NON AGGIUNTO SCHAFF INDICATOR, che serve per discriminare quali titoli scegliere dallo screener (segnale già aperto o il primo o, a parità,
//quello più alto) ==> Tolte le bande di Bollinger (che filtrano "poco")

// INPUTS 
emapf = input(14, title ="Ma periodo veloce",  minval=1, step = 1)
emapl = input(14, title ="Ma periodo lungo",  minval=1, step = 1)
emaps = input(7, title ="Ma periodi stop",  minval=1, step = 1)
rsi_period = input(14, title="RSI period", minval = 1, step = 1) 
// CALCULATIONS
maf = sma(close, emapf)
mal = sma(close, emapl)
// rsi
myrsi = rsi(close, rsi_period)
//ema stop long ed ema stop short
//Ema7 messo da "massimo" a "chiusura" come target per posizioni short. Il limite è, in questo caso, sempre ema20 (più restringente - asimmetria)
// in questo t.s., lo short viene soltanto indicato come "rappresentazione grafica", non agito
mass = sma(close, emaps)
masl = sma(low, emaps)
ma200=sma(close,200)
/// Entry
strategy.entry("Long", true, when = crossover(close,mal))

rsi1 = crossunder(myrsi,70)
rsi2 = myrsi > 75
// previously, 80
st_loss_long = crossunder(close,masl)// **chiusura sotto EMA7**
target_long= crossunder(close,maf) //* Chiusura sotto EMA14*
// exits. *RSI**Long: Target if over bandamax, loss if under bandamin. Viceversa, for short
strategy.close("Long", when = rsi1, comment="crossunder RSI")
strategy.close("Long", when = rsi2, comment ="RSI MAX")
strategy.close("Long", when = st_loss_long, comment = "Stop loss")
strategy.close("Long", when = target_long, comment = "target_long" )

plot(masl, title="ma stop long", color=#363A45, linewidth= 1, style=plot.style_cross)
plot(maf, title="MA FAST", color=#FF0000,  linewidth= 1)
plot(mal, title="MA SLOW", color=#0000FF,  linewidth= 2)
plot(mass, title="ma stop short", color=#787B86,linewidth= 1, style=plot.style_cross)
plot(ma200, title="ma200", color=color.black,  linewidth= 1)

Lebih banyak