RSI dan Moving Average Crossover Trend Mengikut Strategi

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

img

Ringkasan

Strategi ini menggunakan penunjuk RSI dan purata bergerak cepat / perlahan untuk menentukan titik masuk dan keluar. Ia pergi lama apabila RSI naik 5 mata dan di bawah 70; dan apabila MA 9 hari melintasi di atas MA 50 hari. Ia keluar apabila MA 50 hari melintasi di bawah MA 9 hari.

Logika Strategi

Strategi ini menggunakan gabungan penunjuk RSI dan purata bergerak. Penunjuk RSI menunjukkan sama ada saham atau mata wang kripto 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 kawasan melampau ini.

purata bergerak digunakan secara meluas untuk mengenal pasti arah trend. purata bergerak pantas bertindak balas dengan lebih cepat terhadap perubahan harga manakala MA perlahan menapis pecah palsu. Apabila MA pantas melintasi di atas MA perlahan, trend menaik bermula. sebaliknya menandakan trend menurun. Strategi ini menggunakan MA 9 dan 50 hari dan silangannya untuk menentukan trend dan entri / keluar.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah menggunakan RSI untuk mengelakkan membeli pada tahap overbought yang melampau dan menggunakan gabungan MAs cepat / perlahan untuk menapis pecah palsu dan mengunci arah trend untuk keuntungan yang lebih tinggi.

Syarat tambahan kenaikan 5 mata RSI berturut-turut menghalang pembelian yang tidak perlu di zon overbought.

Risiko dan Pencegahan

Risiko terbesar adalah isyarat yang tertinggal dari RSI dan MAs semasa turun naik harga yang ganas, menyebabkan pembelian di puncak atau menjual di bawah.

Untuk mengelakkan ini, MA yang lebih cepat digunakan untuk menangkap perubahan harga dengan lebih cepat dan mengurangkan lag.

Arahan pengoptimuman

Jalan optimum yang mungkin:

  1. Tempoh ujian RSI untuk parameter optimum

  2. Uji lebih banyak gabungan MA cepat/lambat untuk penapisan yang lebih baik

  3. Mengoptimumkan saiz kedudukan dengan parameter yang berbeza

  4. Tambah syarat stop loss untuk mengunci keuntungan

Kesimpulan

Secara keseluruhan, strategi ini sesuai untuk perdagangan trend. Ia mengelakkan kawasan overbought / oversold dengan RSI dan menggunakan MAs cepat / perlahan untuk pengesanan trend dan sokongan / rintangan. Saiz separa membolehkan kadar kemenangan dan keuntungan yang tinggi. Pengoptimuman parameter dan pengurusan risiko yang lebih lanjut dapat meningkatkan prestasi.


/*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 lanjut