Chiến lược hoạt động sốc RSI động


Ngày tạo: 2023-11-02 16:04:07 sửa đổi lần cuối: 2023-11-02 16:04:07
sao chép: 1 Số nhấp chuột: 666
1
tập trung vào
1617
Người theo dõi

Chiến lược hoạt động sốc RSI động

Tổng quan

Chiến lược này kết hợp các mức hỗ trợ / kháng cự động và chỉ số RSI tương đối mạnh, đặt RSI vượt quá phạm vi mua bán và đánh giá RSI có đi vào khu vực mua bán quá mức khi phá vỡ mức hỗ trợ / kháng cự động, tạo ra tín hiệu mua và bán.

Nguyên tắc

1. Động lực hỗ trợ / kháng cự

Sử dụng hàm security để lấy giá đóng cửa làm mức hỗ trợ / kháng cự động, tạo ra tín hiệu giao dịch khi giá vượt qua mức động này.

2. Chỉ số RSI

Tính trung bình tăng và giảm trong một khoảng thời gian nhất định, tạo ra giá trị RSI bằng cách so sánh hai giá trị này để xác định xem bạn có đang ở trong khu vực mua quá mức hay bán quá mức không.

Tín hiệu giao dịch 3.

Khi giá phá vỡ mức động, RSI sẽ tạo ra tín hiệu mua / bán nếu nó không đi vào khu vực mua / bán quá mức. Nếu nó đã đi vào, hãy bỏ qua tín hiệu phá vỡ.

Tín hiệu thoát

Hạn chế khi giá quay trở lại động lực, hoặc Hạn chế khi RSI quay trở lại vùng bình thường.

Phân tích lợi thế

  1. Sử dụng động lực hỗ trợ / kháng cự để xác định xu hướng và tăng khả năng lợi nhuận.

  2. Chỉ số RSI sẽ lọc các đợt phá vỡ giả để tránh các đợt phá vỡ.

  3. Kết hợp các xu hướng và chỉ số, áp dụng cho các tình huống khác nhau.

  4. Quy tắc rõ ràng và dễ thực hiện.

Rủi ro và giải pháp

  1. Động thái có thể xảy ra nhiều lần thử nghiệm đột phá, gây ra tín hiệu sai, có thể được nới lỏng thích hợp để lọc độ đột phá.

  2. Chỉ số RSI đơn lẻ có thể gây ra sai lầm, có thể đưa ra các chỉ số khác để lọc kết hợp.

  3. Trong tình huống bất ổn, có thể có nhiều lỗ hổng mở và lỗ hổng, chi phí giao dịch cao hơn, có thể nới lỏng phạm vi RSI bình thường một cách thích hợp, giảm tần suất giao dịch.

  4. Cài đặt tham số không đúng có thể dẫn đến đơn bị bỏ sót hoặc đơn lộn xộn, nên lựa chọn tham số hợp lý dựa trên các giống khác nhau.

Hướng tối ưu hóa

  1. Sử dụng công nghệ học máy để tự động tối ưu hóa các tham số RSI.

  2. Thêm chiến lược dừng lỗ để khóa lợi nhuận và giảm tổn thất.

  3. Kết hợp với nhiều chỉ số khác nhau để lọc kết hợp, tăng sự ổn định của chiến lược.

  4. Tăng chỉ số biến động, giảm vị trí khi biến động thấp.

  5. Tối ưu hóa thuật toán số vị trí để biến động vị trí phù hợp với môi trường thị trường khác nhau.

Tóm tắt

Chiến lược này kết hợp với định hướng và lọc các chỉ số, có thể xác định hiệu quả sự phá vỡ của giá gần mức quan trọng, thu được lợi nhuận cao hơn với giả định kiểm soát rủi ro. Bằng cách tối ưu hóa thêm các thiết lập tham số, tăng điểm dừng lỗ, giới thiệu nhiều chỉ số hơn, các chiến lược có thể được nâng cao hơn nữa sự ổn định và thích ứng, cho phép nó có thể thu được lợi nhuận ổn định trên thị trường rộng lớn hơn.

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