Strategi Mengikuti Tren EMA dan RSI


Tanggal Pembuatan: 2023-09-26 15:39:48 Akhirnya memodifikasi: 2023-09-26 15:39:48
menyalin: 0 Jumlah klik: 978
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini memanfaatkan keuntungan dari moving averages dan indikator yang relatif kuat untuk mengidentifikasi dan melacak tren. Hanya membutuhkan dua indikator untuk menilai tren dan memilih waktu masuk / keluar. Strategi ini bertujuan untuk menangkap tren harga dalam garis tengah dan panjang dan menghindari kebisingan pasar jangka pendek.

Prinsip Strategi

Strategi ini menggunakan garis rata-rata EMA dari tiga periode yang berbeda, EMA-A dengan periode terpendek, EMA-B berikutnya, EMA-C dengan periode terpanjang. Ketika periode pendek EMA-A di atas EMA-B dengan periode yang lebih panjang, berarti harga berada dalam tren naik, yang dapat dilakukan lebih banyak; Sebaliknya, ketika EMA-A di bawah EMA-B, berarti harga beralih ke tren turun, yang dapat dilakukan kosong.

Strategi ini juga menggabungkan indikator RSI untuk menentukan titik waktu keluar. Ketika berposisi tinggi, jika RSI melewati 70 garis, maka posisi kosong; Ketika berposisi kosong, jika RSI melewati 30 garis maka posisi kosong. Ini dapat mengunci keuntungan tren dan mencegah kerugian dari perluasan lebih lanjut.

Analisis Keunggulan

  • Menggunakan EMA untuk mengidentifikasi arah tren
  • RSI membantu menentukan titik masuk dan keluar
  • Hanya membutuhkan 2 indikator, strategi ini sederhana dan mudah.
  • Konfigurasi parameter indikator bebas menyesuaikan gaya kebijakan
  • Dapat menghasilkan keuntungan di awal, pertengahan, dan akhir tren

Analisis risiko

  • Rebound di bawah tren besar dapat menghasilkan sinyal palsu
  • Terjadinya gempa bumi dapat menyebabkan kerusakan
  • Parameter RSI yang tidak tepat dapat menyebabkan stop loss prematur
  • Periode EMA harus diatur dengan hati-hati, terlalu pendek akan sensitif kebisingan, terlalu panjang akan kehilangan tren

Risiko ini dapat dikurangi dengan mengoptimalkan parameter RSI, atau dengan menambahkan kondisi penyaringan tambahan. Strategi ini juga dapat dikombinasikan dengan metode analisis teknis seperti tren, dukungan, dan resistensi untuk meningkatkan kinerja strategi.

Arah optimasi

  • Mengoptimalkan parameter RSI, menyeimbangkan stop loss
  • Uji kombinasi siklus EMA yang berbeda
  • Konfirmasi peningkatan energi atau indikator lainnya
  • Metode Stop Loss dapat diatur dengan ATR
  • Dapat mencoba menurunkan posisi di tengah tren
  • Optimalkan waktu masuk, seperti titik tinggi/rendah sebelumnya, atau penyerapan energi
  • Mempertimbangkan untuk bergabung dengan mekanisme masuk kembali

Meringkaskan

Strategi ini mengintegrasikan pelacakan tren dan indikator overbought oversold, hanya membutuhkan dua indikator sederhana untuk mencapai penilaian dan menangkap tren. Dengan optimasi parameter dan optimasi aturan, dapat meningkatkan efektivitas secara signifikan sambil tetap sederhana. Ini adalah template strategi pelacakan tren yang sangat praktis, cocok untuk investor garis menengah dan panjang.

Kode Sumber Strategi
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
basePeriod: 15m
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/
//@author Alorse

//@version=5
// strategy(title='Tendency EMA + RSI [Alorse]', shorttitle='Tendece EMA + RSI [Alorse]', overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01)

// Bollinger Bands
len = input.int(14, minval=1, title='Length', group='RSI')
src = input.source(close, 'Source', group='RSI')
rsi = ta.rsi(src, len)

// Moving Averages
len_a = input.int(10, minval=1, title='EMA A Length', group='Moving Averages')
out_a = ta.ema(close, len_a)
plot(out_a, title='EMA A', color=color.purple)

len_b = input.int(20, minval=1, title='EMA B Length', group='Moving Averages')
out_b = ta.ema(close, len_b)
plot(out_b, title='EMA B', color=color.orange)

len_c = input.int(100, minval=1, title='EMA C Length', group='Moving Averages')
out_c = ta.ema(close, len_c)
plot(out_c, title='EMA B', color=color.green)

// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
closeAfterXBars = input.bool(true, title='Close after X # bars', tooltip='If trade is in profit', group=stratGroup)
xBars = input.int(24, title='# bars')

entryLong = ta.crossover(out_a, out_b) and out_a > out_c and close > open
exitLong = rsi > 70

entryShort = ta.crossunder(out_a, out_b) and out_a < out_c and close < open
exitShort = rsi < 30


bought = strategy.opentrades[0] == 1 and strategy.position_size[0] > strategy.position_size[1]
entry_price = ta.valuewhen(bought, open, 0)
var int nPastBars = 0
if strategy.position_size > 0
    nPastBars := nPastBars + 1
    nPastBars
if strategy.position_size == 0
    nPastBars := 0
    nPastBars
if closeAfterXBars
    exitLong := nPastBars >= xBars and close > entry_price ? true : exitLong
    exitLong
    exitShort := nPastBars >= xBars and close < entry_price ? true : exitShort
    exitShort

// Long Entry
strategy.entry('Long', strategy.long, when=entryLong and showLong)
strategy.close('Long', when=exitLong)

// Short Entry
strategy.entry('Short', strategy.short, when=entryShort and showShort)
strategy.close('Short', when=exitShort)