
Strategi ini dinamakan strategi perdagangan RSI dengan indeks bergerak berganda. Strategi ini menggunakan indeks bergerak berganda ((Double EMA) dan indeks bergerak relatif lemah ((RSI) sebagai indikator perdagangan utama untuk melakukan perdagangan mekanisasi.
Strategi ini pertama-tama mengira purata bergerak dua indeks harga ((MA), kemudian mengira RSI berdasarkan MA, dan kemudian mengira purata bergerak indeks RSI ((Smooth)). Apabila RSI melepasi purata bergeraknya, ia menghasilkan isyarat beli; apabila RSI melepasi purata bergeraknya, ia menghasilkan isyarat jual. Opsional, strategi ini juga menetapkan parameter kawalan risiko seperti jumlah dagangan maksimum setiap hari, jumlah modal dagangan, tempoh dagangan, titik berhenti kerugian, dan jumlah titik berhenti kerugian yang dilacak.
Kaedah pencegahan:
Strategi ini mempunyai peraturan mekanik keseluruhan yang jelas, mempunyai kebolehpercayaan yang tinggi, dan digunakan untuk varieti trend garis tengah dan panjang. Setelah dioptimumkan, ia boleh menjadi asas untuk strategi perdagangan mekanikal trend, risiko boleh dikawal, dan ia patut dinilai lebih lanjut untuk kesannya di lapangan.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title='[STRATEGY][RS]DemaRSI V0', shorttitle='D', overlay=false, initial_capital=100000, currency=currency.USD)
src = input(close)
ma_length = input(21)
rsi_length = input(4)
rsi_smooth = input(4)
ma = ema(ema(src, ma_length), ma_length)
marsi = rsi(ma, rsi_length)
smooth = ema(marsi, rsi_smooth)
plot(title='M', series=marsi, color=black)
plot(title='S', series=smooth, color=red)
hline(0)
hline(50)
hline(100)
max_order_per_day = input(6)
// strategy.risk.max_intraday_filled_orders(max_order_per_day)
trade_size_as_equity_factor = input(false)
trade_size = input(type=float, defval=10000.00) * (trade_size_as_equity_factor ? strategy.equity : 1)
take_profit_in_points = input(100000)
stop_loss_in_points = input(100000)
trail_in_points = input(150)
USE_SESSION = input(true)
trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false)
istradingsession = not USE_SESSION ? true : not na(time('1', trade_session))
buy_entry = istradingsession and crossover(marsi, smooth)
sel_entry = istradingsession and crossunder(marsi, smooth)
strategy.entry('buy', long=true, qty=1, when=buy_entry)
strategy.entry('sel', long=false, qty=1, when=sel_entry)
strategy.exit('buy.Exit', from_entry='buy', profit=take_profit_in_points, loss=stop_loss_in_points, trail_points=trail_in_points, trail_offset=trail_in_points)
strategy.exit('sel.Exit', from_entry='sel', profit=take_profit_in_points, loss=stop_loss_in_points, trail_points=trail_in_points, trail_offset=trail_in_points)
strategy.close_all(when=not istradingsession)