RSI CCI Williams%R Chiến lược giao dịch định lượng

Tác giả:ChaoZhang, Ngày: 2024-01-24 11:18:08
Tags:

img

Tổng quan chiến lược

Chiến lược này kết hợp ba chỉ số phân loại: RSI, CCI và Williams%R để tạo ra các tín hiệu giao dịch hiệu quả. Nó sẽ phát hành tín hiệu mua hoặc bán khi cả ba chỉ số đồng thời hiển thị tín hiệu mua quá nhiều hoặc bán quá nhiều. So với việc sử dụng một chỉ số duy nhất, chiến lược tổng hợp này lọc ra nhiều tín hiệu sai và cải thiện sự ổn định.

Chiến lược này được gọi là Three Trail Trawler Strategy. Three Trail đề cập đến sự kết hợp của RSI, CCI và Williams%R. Trawler tương tự như chiến lược này trawl cơ hội như một tàu đánh bắt cá.

Chiến lược logic

Chiến lược chủ yếu dựa trên các chỉ số sau đây cho các quyết định giao dịch:

  1. Chỉ số RSI đánh giá mức mua quá mức / bán quá mức
  2. Chỉ số CCI xác định các điểm uốn cong
  3. Chỉ số Williams%R xác nhận thêm các tín hiệu giao dịch

Khi chỉ số RSI dưới 25, nó báo hiệu tình trạng bán quá mức. Khi chỉ số RSI trên 75, nó báo hiệu tình trạng mua quá mức.

Khi cả ba chỉ số đồng thời hiển thị tín hiệu mua, tức là RSI < 25, CCI < -130, Williams %R < -85, chiến lược sẽ dài. Khi cả ba chỉ số đồng thời hiển thị tín hiệu bán, tức là RSI > 75, CCI > 130, Williams %R > -15, chiến lược sẽ ngắn.

Điều này tránh các tín hiệu sai từ một chỉ số duy nhất và cải thiện độ tin cậy. Nó cũng cấu hình dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro và lợi nhuận cho mỗi giao dịch.

Ưu điểm

  1. Các bộ lọc kết hợp nhiều chỉ số cho tín hiệu sai
    Bằng cách kết hợp RSI, CCI và Williams% R, chiến lược lọc ra một số tín hiệu sai từ các chỉ số riêng lẻ, cải thiện độ chính xác.

  2. Tự động dừng lỗ/lợi nhuận lấy quản lý rủi ro Chức năng dừng lỗ và lấy lợi nhuận tích hợp tự động đặt giá thoát cho mỗi giao dịch, hiệu quả giới hạn lỗ trong ngưỡng chấp nhận được.

  3. Khả năng giao dịch trung hạn Chiến lược này hoạt động tốt hơn cho các giao dịch trung hạn, xác định rõ các điểm biến đổi trung hạn thông qua sự kết hợp của chỉ số.

  4. Dữ liệu backtest vững chắc
    Chiến lược sử dụng các thanh 45 phút của EUR/USD, một cặp ngoại hối lớn với thanh khoản và dữ liệu phong phú, giảm rủi ro quá mức từ dữ liệu không đủ.

Rủi ro

  1. Xác định xu hướng dài hạn yếu
    Chiến lược dựa nhiều hơn vào các tín hiệu ngược lại. Khả năng đo lường và theo dõi xu hướng dài hạn của nó bị hạn chế. Trong các thị trường một chiều lâu dài, tiềm năng lợi nhuận bị hạn chế.

  2. Thiếu biến động ngắn hạn Với các thanh 45 phút, chiến lược bỏ lỡ cơ hội sinh lợi từ sự biến động giá ngắn hạn thường xuyên hơn.

  3. Rủi ro hệ thống
    Chiến lược này chủ yếu áp dụng cho EUR/USD. Trong thời gian khủng hoảng kinh tế nghiêm trọng làm rung chuyển thị trường ngoại hối toàn cầu, các quy tắc giao dịch của nó có thể thất bại, gây ra tổn thất lớn.

Các lĩnh vực cải tiến

  1. Thêm các chỉ số theo xu hướng
    Cố gắng kết hợp các chỉ số xu hướng như MA, Boll vv để hỗ trợ nhận dạng xu hướng dài hạn.

  2. Tối ưu hóa các thông số dừng lỗ/lợi nhuận Kiểm tra lại nhiều dữ liệu lịch sử hơn để đánh giá tác động của các tham số dừng lỗ / lợi nhuận khác nhau đối với lợi nhuận cuối cùng, để tìm ra thiết lập tối ưu.

  3. Mở rộng sản phẩm
    Hiện nay chủ yếu áp dụng cho EUR / USD. Chúng tôi có thể thử triển khai nó trên các cặp tiền tệ lớn khác như GBP, JPY, AUD để kiểm tra tính ổn định và khả năng chuyển nhượng.

Kết luận

Chiến lược Three Trail Trawler xác định các điểm đảo ngược giá cho các tín hiệu mua quá mức / bán quá mức bằng cách sử dụng sự kết hợp của RSI, CCI và Williams %R. So với các chỉ số cá nhân, thiết lập đa chỉ số này lọc ra nhiều tín hiệu sai hơn và cải thiện độ chính xác. Các chức năng dừng lỗ / thu lợi nhuận tự động cũng giúp hạn chế rủi ro giao dịch. Nhìn chung, đây là một chiến lược ổn định phù hợp với giao dịch trung hạn và có thể là một mô-đun có giá trị trong các hệ thống định lượng của chúng tôi. Tuy nhiên, chúng tôi cần chú ý đến những thiếu sót của nó trong việc phát hiện xu hướng dài hạn và nắm bắt sự dao động ngắn hạn. Các biện pháp điều chỉnh tinh tế như thêm các chỉ số xu hướng, tối ưu hóa các tham số thoát và mở rộng các sản phẩm sẽ tăng cường chiến lược như một lợi nhuận ổn định cho hệ thống động cơ định lượng của chúng tôi.


/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI CCI Williams %R Strategy with TP and SL", overlay=true)

// Input parameters for indicators
rsi_period = input(14, title="RSI Period")
cci_period = input(20, title="CCI Period")
williams_period = input(14, title="Williams %R Period")

// Thresholds for overbought and oversold conditions
rsi_oversold = input(25, title="RSI Oversold Level")
rsi_overbought = input(75, title="RSI Overbought Level")
cci_oversold = input(-130, title="CCI Oversold Level")
cci_overbought = input(130, title="CCI Overbought Level")
williams_oversold = input(-85, title="Williams %R Oversold Level")
williams_overbought = input(-15, title="Williams %R Overbought Level")

// Take profit and stop loss levels as a percentage
take_profit_pct = input(1.2, title="Take Profit (%)") / 100
stop_loss_pct = input(0.45, title="Stop Loss (%)") / 100

// Indicator calculations
rsi = ta.rsi(close, rsi_period)
cci = ta.cci(close, cci_period)
highestHigh = ta.highest(high, williams_period)
lowestLow = ta.lowest(low, williams_period)
williamsR = (highestHigh - close) / (highestHigh - lowestLow) * -100

// Entry conditions
longCondition = rsi < rsi_oversold and cci < cci_oversold and williamsR < williams_oversold and strategy.position_size == 0
shortCondition = rsi > rsi_overbought and cci > cci_overbought and williamsR > williams_overbought and strategy.position_size == 0

// Execute strategy entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit or Stop Loss Long", "Long", limit=close * (1 + take_profit_pct), stop=close * (1 - stop_loss_pct))

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit or Stop Loss Short", "Short", limit=close * (1 - take_profit_pct), stop=close * (1 + stop_loss_pct))

// Plot the signals on the chart
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL")

// Plot the indicators for visualization
plot(rsi, title="RSI", color=color.blue)
plot(cci, title="CCI", color=color.purple)
plot(williamsR, title="Williams %R", color=color.orange)

Thêm nữa