
Strategi ini disebut strategi perdagangan RSI dengan indeks bergerak ganda. Strategi ini menggunakan indeks bergerak ganda (Double EMA) dan indeks relatif lemah (RSI) sebagai indikator perdagangan utama untuk melakukan perdagangan mekanis.
Strategi ini pertama-tama menghitung harga dengan moving average (MA), kemudian berdasarkan MA menghitung RSI, kemudian menghitung moving average RSI (Smooth). Pada saat RSI melintasi moving average, ia menghasilkan sinyal beli. Pada saat RSI melintasi moving average, ia menghasilkan sinyal jual. Opsional, strategi ini juga mengatur parameter pengendalian risiko seperti jumlah maksimum transaksi per hari, jumlah modal yang diperdagangkan, periode perdagangan, stop loss, dan jumlah stop loss yang dilacak.
Tanggapan:
Strategi ini memiliki aturan mekanis yang jelas dan dapat diandalkan untuk varietas tren garis tengah dan panjang. Setelah dioptimalkan, strategi ini dapat digunakan sebagai dasar untuk mengikuti tren perdagangan mekanis, risiko dapat dikendalikan, dan efeknya layak untuk dievaluasi lebih lanjut.
/*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)