
Chiến lược này được gọi là Chiến lược giao dịch RSI với hai chỉ số di chuyển trung bình (Double EMA) và chỉ số tương đối mạnh (RSI) là chỉ số giao dịch chính để thực hiện giao dịch cơ giới.
Chiến lược này đầu tiên tính toán đường trung bình di chuyển hai chỉ số của giá ((MA), sau đó tính toán RSI dựa trên MA, sau đó tính toán đường trung bình di chuyển chỉ số của RSI ((Smooth)). Khi RSI vượt qua đường trung bình di chuyển của nó, nó sẽ tạo ra tín hiệu mua; khi RSI vượt qua đường trung bình di chuyển của nó, nó sẽ tạo ra tín hiệu bán.
Phản ứng:
Quy tắc cơ bản của chiến lược này rõ ràng, có độ tin cậy cao và áp dụng cho các giống xu hướng đường dài và trung. Sau khi tối ưu hóa, nó có thể trở thành cơ sở để theo dõi xu hướng chiến lược giao dịch cơ học, rủi ro có thể được kiểm soát, đáng để đánh giá hiệu quả thực tế hơn nữa.
/*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)