Chiến lược này kết hợp các mức hỗ trợ / kháng cự động và chỉ số chỉ số sức mạnh tương đối (RSI). Nó thiết lập ngưỡng mua quá mức / bán quá mức cho RSI và tạo ra tín hiệu mua / bán khi giá vượt qua các mức hỗ trợ / kháng cự động trong khi RSI không ở trong khu vực mua quá mức / bán quá mức.
1. Hỗ trợ / kháng động động
Sử dụng chức năng bảo mật để lấy giá đóng như mức hỗ trợ / kháng cự động.
2. Chỉ số RSI
Tính toán lợi nhuận trung bình và lỗ trung bình trong một khoảng thời gian nhất định để tạo ra các giá trị RSI và xác định xem RSI đạt đến khu vực mua quá mức / bán quá mức.
3. Các tín hiệu giao dịch
Khi giá phá vỡ các mức năng động, nếu RSI không ở trong khu vực mua quá mức / bán quá mức, các tín hiệu mua / bán được tạo ra.
4. Dấu hiệu ra ngoài
Đóng các vị trí khi giá giảm trở lại mức năng động, hoặc khi RSI trở lại phạm vi bình thường.
Sử dụng hỗ trợ / kháng cự năng động để xác định hướng xu hướng cho tỷ lệ thắng cao hơn.
RSI lọc ra các vụ đột nhập sai và tránh các mục nhập sai.
Kết hợp xu hướng và chỉ số làm cho chiến lược thích nghi với các điều kiện thị trường khác nhau.
Các quy tắc đơn giản và rõ ràng làm cho việc thực hiện dễ dàng.
Nhiều lần thử nghiệm các mức năng động có thể tạo ra tín hiệu sai.
Solo RSI có thể gây ra đánh giá sai. Thêm các chỉ số khác để lọc combo.
Giao dịch thường xuyên trên thị trường giới hạn phạm vi dẫn đến chi phí cao hơn.
Cài đặt tham số không chính xác dẫn đến tín hiệu bị thiếu hoặc sai. Tối ưu hóa tham số dựa trên các tài sản khác nhau.
Sử dụng máy học để tự động tối ưu hóa các thông số RSI.
Thêm chiến lược dừng lỗ / lợi nhuận để khóa lợi nhuận và giảm lỗ.
Thêm nhiều chỉ số cho bộ lọc kết hợp để cải thiện sự ổn định.
Thêm chỉ số biến động vào kích thước vị trí thấp hơn khi biến động thấp.
Tối ưu hóa thuật toán kích thước vị trí để điều chỉnh vị trí một cách năng động cho các môi trường thị trường khác nhau.
Chiến lược này kết hợp đánh giá xu hướng và lọc chỉ số để xác định hiệu quả sự đảo ngược xu hướng xung quanh các mức chính trong khi kiểm soát rủi ro.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Levels+RSI Strategy v1.0", shorttitle = "Levels+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") tf = input('W', title = "timeframe 1") src = input(ohlc4, "Source") ap = input(true, defval = true, title = "antipila") cf = input(true, defval = true, title = "color filter") rsiperiod = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI Period") rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI Limit") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Level level = request.security(syminfo.tickerid, tf, src[1]) plot(level, linewidth = 3, color = silver) //RSI uprsi = rma(max(change(close), 0), rsiperiod) dnrsi = rma(-min(change(close), 0), rsiperiod) rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi)) //Level Signals ls = close > level and ap == false ? true : low > level ? true : false up1 = strategy.position_size == 0 and ls and (close < open or cf == false) exit1 = close < level and ap == false ? true : high < level ? true : false //RSI Signal up2 = rsi < rsilimit and (close < open or cf == false) exit2 = rsi > rsilimit and ls == false //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if up1 or up2 strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if (exit1 and rsi > rsilimit) or exit2 strategy.close_all()