
Strategi ini digunakan untuk menentukan masa untuk membeli dan menjual dengan mengira RSI dan purata bergerak perlahan. Apabila RSI naik 5 mata, dan lebih rendah daripada 70, dan lebih tinggi daripada purata bergerak 50 hari pada purata bergerak 9 hari, dan lebih rendah daripada purata bergerak 9 hari di bawah purata bergerak 50 hari.
Strategi ini menggunakan gabungan RSI dan purata bergerak. RSI boleh menunjukkan sama ada saham atau mata wang digital terlalu tinggi atau terlalu rendah. Apabila RSI di bawah 30 dianggap sebagai oversold, dan apabila lebih tinggi daripada 70 dianggap sebagai overbought.
Rata-rata bergerak digunakan secara meluas untuk menentukan arah trend. Rata-rata bergerak cepat dapat menangkap perubahan harga lebih cepat, sedangkan rata-rata bergerak perlahan dapat menyaring penembusan palsu. Apabila rata-rata bergerak bergerak bergerak perlahan di atas rata-rata bergerak cepat, ia menandakan permulaan trend ke atas; sebaliknya, penembusan ke bawah menandakan trend ke bawah.
Kelebihan utama strategi ini adalah untuk menilai kawasan oversold melalui RSI, mengelakkan pembelian tinggi; dan menggunakan penapis purata bergerak yang cepat dan perlahan untuk memecahkan palsu, mengunci arah trend, untuk mendapatkan kadar keuntungan yang lebih tinggi.
Pada masa yang sama, strategi memasukkan syarat RSI meningkat 5 mata berturut-turut, untuk mengelakkan lebih banyak pembelian yang tidak perlu di kawasan overbought. Di samping itu, strategi menggunakan beberapa cara perdagangan kedudukan, yang dapat mengurangkan risiko kerugian dalam perdagangan tunggal.
Risiko terbesar dalam strategi ini adalah bahawa kedua-dua indikator RSI dan purata bergerak boleh mengalami kemunduran. Apabila harga berubah secara drastik, isyarat mereka mungkin terlewat, menyebabkan risiko membeli tinggi atau menjual rendah.
Untuk mengelakkan risiko ini, strategi ini memasukkan purata bergerak cepat, menggunakan ciri-ciri yang lebih cepat bertindak balas kepada perubahan harga untuk mengurangkan kemungkinan ketinggalan. Selain itu, perdagangan kedudukan sebahagian juga dapat mengurangkan kerugian perdagangan tunggal.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Uji parameter RSI untuk tempoh yang berbeza untuk mencari kombinasi parameter yang optimum
Uji lebih banyak kombinasi rata-rata bergerak perlahan untuk penapisan yang lebih baik
Mengoptimumkan saiz kedudukan, menguji parameter kedudukan yang berbeza
Meningkatkan syarat-syarat stop-loss untuk mengunci keuntungan
Strategi ini sangat sesuai untuk perdagangan trend secara keseluruhan. Mengelakkan kawasan oversold melalui indikator RSI, dan menilai arah trend dan rintangan sokongan penting dengan menggunakan purata bergerak perlahan.
/*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)