RSI dan Moving Average Crossover Trend Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-13 17:50:34
Tag:

img

Gambaran umum

Strategi ini menggunakan indikator RSI dan rata-rata bergerak cepat / lambat untuk menentukan titik masuk dan keluar. Ini pergi panjang ketika RSI naik 5 poin dan di bawah 70; dan ketika MA 9 hari melintasi di atas MA 50 hari. Ini keluar ketika MA 50 hari melintasi di bawah MA 9 hari.

Logika Strategi

Strategi ini terutama menggunakan kombinasi dari indikator RSI dan moving average. Indikator RSI menunjukkan apakah saham atau cryptocurrency terlalu banyak dibeli atau terlalu banyak dijual. Nilai di bawah 30 dianggap terlalu banyak dijual sementara nilai di atas 70 dianggap terlalu banyak dibeli. Strategi ini menggunakan RSI untuk menentukan titik masuk yang sesuai di luar area ekstrem ini.

Rata-rata bergerak digunakan secara luas untuk mengidentifikasi arah tren. Rata-rata bergerak cepat bereaksi lebih cepat terhadap perubahan harga sementara MA lambat menyaring keluar breakout palsu. Ketika MA cepat melintasi di atas MA lambat, sebuah uptrend dimulai. Sebaliknya menandakan downtrend. Strategi ini menggunakan 9 dan 50 hari MA dan persilangan mereka untuk menentukan tren dan entri / keluar.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah menggunakan RSI untuk menghindari pembelian pada tingkat overbought yang ekstrim dan menggunakan kombinasi MAs cepat / lambat untuk menyaring breakout palsu dan mengunci arah tren untuk profitabilitas yang lebih tinggi.

Kondisi tambahan 5 poin kenaikan RSI berturut-turut mencegah pembelian yang tidak perlu di zona overbought.

Risiko dan Pencegahan

Risiko terbesar adalah sinyal yang tertinggal dari RSI dan MAs selama perubahan harga yang ganas, menyebabkan pembelian di puncak atau penjualan di bawah.

Untuk mencegah hal ini, MA yang lebih cepat digunakan untuk menangkap perubahan harga lebih cepat dan mengurangi lag.

Arahan Optimasi

Jalan optimasi yang mungkin:

  1. Periode uji RSI untuk parameter optimal

  2. Uji lebih banyak kombinasi MA cepat/lambat untuk penyaringan yang lebih baik

  3. Mengoptimalkan ukuran posisi dengan parameter yang berbeda

  4. Tambahkan kondisi stop loss untuk mengunci keuntungan

Kesimpulan

Secara keseluruhan, strategi ini sangat cocok untuk perdagangan tren. Ini menghindari area overbought / oversold dengan RSI dan menggunakan MAs cepat / lambat untuk mendeteksi tren dan dukungan / resistensi. Ukuran parsial memungkinkan tingkat kemenangan dan profitabilitas yang tinggi. Optimasi parameter lebih lanjut dan manajemen risiko dapat meningkatkan kinerja.


/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
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/
// © Coinrule

//@version=5
strategy("RSI with Slow and Fast MA Crossing Strategy (by Coinrule)",
         overlay=true,
         initial_capital=10000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0


// RSI
length = input(14)
vrsi = ta.rsi(close, length)

// Moving  Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)


increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
    strategy.entry("Long", strategy.long)


// Moving  Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)


condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)

strategy.close('Long', when = condition and timePeriod)






Lebih banyak