Chiến lược giao dịch RSI đường trung bình động hàm mũ kép


Ngày tạo: 2024-01-30 15:44:11 sửa đổi lần cuối: 2024-01-30 15:44:11
sao chép: 0 Số nhấp chuột: 721
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch RSI đường trung bình động hàm mũ kép

Tổng quan

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.

Nguyên tắc chiến lược

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.

Lợi thế chiến lược

  1. Sử dụng đường trung bình di chuyển hai chiều để phản ứng nhanh hơn với sự thay đổi giá, lọc một số tiếng ồn.
  2. RSI được tính dựa trên đường trung bình di chuyển để ổn định hơn và tránh giao dịch sai.
  3. Đường trung bình di chuyển của RSI giúp xác nhận tín hiệu giao dịch và lọc các đột phá giả.
  4. Thiết lập số lần giao dịch tối đa giúp kiểm soát rủi ro hàng ngày.
  5. Thiết lập số tiền giao dịch để tránh thua lỗ quá lớn.
  6. Thiết lập khoảng thời gian giao dịch, tránh các nút thời gian quan trọng, kiểm soát rủi ro thanh khoản.
  7. Thiết lập số điểm dừng lỗ để giúp hạn chế tổn thất đơn lẻ
  8. Theo dõi điểm dừng sẽ giúp khóa nổi và giảm rút lui.

Rủi ro chiến lược

  1. Đường trung bình di chuyển của hai chỉ số phản ứng chậm với sự kiện bất ngờ của thị trường, có thể bỏ lỡ cơ hội giao dịch ngắn.
  2. RSI dễ tạo ra các tín hiệu sai lệch như dead fork và cross gold.
  3. Tỷ lệ vốn giao dịch cố định không thể đáp ứng được sự biến động của thị trường và có nguy cơ sử dụng vốn kém.
  4. Cắt lỗ cố định khó thích ứng với các giống và điều kiện thị trường khác nhau, có nguy cơ ngừng lỗ hoặc dừng lỗ quá sớm.
  5. Tracking Stop có thể được kích hoạt quá thường xuyên trong một trận động đất.

Phản ứng:

  1. Giảm chu kỳ trung bình di chuyển một cách thích hợp, tăng độ nhạy.
  2. Kết hợp với các chỉ số khác như tín hiệu lọc khối lượng giao dịch.
  3. Tỷ lệ vốn giao dịch được điều chỉnh động.
  4. Điều chỉnh mức dừng lỗ theo biến động và thay đổi của thị trường.
  5. Đơn giản hóa các điểm dừng theo dõi.

Hướng tối ưu hóa chiến lược

  1. Kiểm tra các kết hợp trung bình di chuyển hai chỉ số của các khoảng thời gian dài và ngắn khác nhau để tìm tham số tối ưu.
  2. Kiểm tra các tham số chu kỳ tính toán của RSI để cải thiện độ tin cậy của tín hiệu vàng / chết.
  3. Thêm khối lượng giao dịch, Brin và các chỉ số lọc tín hiệu tiếng ồn.
  4. Tỷ lệ vốn giao dịch được điều chỉnh động như giá đóng cửa trong ngày, biến động và stop loss.
  5. Theo đặc điểm của các giống khác nhau và tối ưu hóa môi trường thị trường theo dõi cơ chế dừng lỗ.

Tóm tắt

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.

Mã nguồn chiến lược
/*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)