Chiến lược SuperTrend kép

Tác giả:ChaoZhang, Ngày: 2023-11-15 16:33:05
Tags:

img

Tổng quan

Chiến lược siêu xu hướng kép là một chiến lược giao dịch định lượng kết hợp một hệ thống kênh SuperTrend kép. Nó tính toán biến động phạm vi thực sự và xây dựng một kênh hai băng tần để theo dõi sự đột phá giá, cho phép theo dõi xu hướng và đảo ngược giao dịch.

Chiến lược logic

Chiến lược siêu xu hướng kép bắt nguồn từ chỉ số siêu xu hướng. siêu xu hướng bao gồm các dải trên và dưới để xác định xu hướng giá và mức hỗ trợ / kháng cự chính. siêu xu hướng kép xây dựng hai kênh trên đầu của nó: kênh củng cố và kênh phá vỡ.

  • Kênh củng cố: bao gồm các dải cơ bản trên và dưới để đánh giá xu hướng đang diễn ra.
  • Kênh phá vỡ: được hình thành bởi các dải trên và dưới heuristic để nắm bắt sự đảo ngược xu hướng.

Chiến lược này đầu tiên tính toán phạm vi thực và phạm vi thực trung bình. Sau đó nó tính toán các dải cơ bản dựa trên các thông số chiều dài và nhân. Tiếp theo, nó xây dựng kênh phá vỡ nếu giá vượt qua các dải cơ bản.

Trong cấu trúc hai kênh, tín hiệu giao dịch được tạo ra khi giá vượt qua các kênh khác nhau:

  • Một tín hiệu mua được kích hoạt khi giá vượt qua dải dưới của kênh hợp nhất.
  • Một tín hiệu bán được kích hoạt khi giá vượt dưới dải trên của kênh hợp nhất.

Việc theo dõi hai kênh cho phép cả theo dõi xu hướng và thu thập sự đảo ngược.

Phân tích lợi thế

Chiến lược Dual SuperTrend với hệ thống hai kênh có những lợi thế sau:

  • Khám phá sự đảo ngược xu hướng và tránh sự phá vỡ sai.
  • Sự kiên trì trong các giao dịch: kênh kép kéo dài mỗi giao dịch so với SuperTrend duy nhất.
  • Không gian tối ưu hóa tham số lớn. Các kênh có thể được điều chỉnh cho các sản phẩm và khung thời gian khác nhau.
  • Giảm tốc độ chiến lược, tăng độ ổn định.
  • Dễ dàng kiểm tra và tối ưu hóa. Các kênh trực quan tạo điều kiện cho việc đánh giá chiến lược.

Phân tích rủi ro

Chiến lược Dual SuperTrend cũng có những rủi ro sau:

  • Việc lựa chọn phạm vi kênh đòi hỏi chuyên môn. Các kênh quá hẹp gây ra sự đột phá không hợp lệ thường xuyên. Các kênh quá rộng không thể nắm bắt sự đảo ngược kịp thời.
  • Tác động từ các sự kiện bên ngoài: Các sự kiện phi kỹ thuật có thể gây ra sự chuyển động giá bất thường làm mất hiệu lực hệ thống kênh.
  • Tần số giao dịch cao. Cấu trúc hai kênh có xu hướng tăng tần số giao dịch và cần kiểm soát kích thước vị trí.
  • Khó tối ưu hóa tham số. Thật khó để tối ưu hóa cả hai kênh cùng một lúc.
  • Không đảm bảo dừng lỗ. Chiến lược không có cơ chế dừng lỗ.

Các rủi ro có thể được giảm thiểu bằng cách điều chỉnh phạm vi tham số, thêm bộ lọc, kiểm soát kích thước vị trí, v.v.

Hướng dẫn tối ưu hóa

Chiến lược Dual SuperTrend có thể được tối ưu hóa trong các khía cạnh sau:

  • Thêm các bộ lọc để tránh sự đột phá sai. Các chỉ số khối lượng hoặc biến động có thể được sử dụng để xác nhận sự đột phá hợp lệ.
  • Kết hợp các chỉ số xu hướng để xác định xu hướng vĩ mô. Giao dịch theo xu hướng chính tránh giao dịch ngược xu hướng.
  • Điều chỉnh năng động các tham số kênh để thích nghi với thị trường thay đổi.
  • Tối ưu hóa các cơ chế thoát để bảo vệ lợi nhuận.
  • Phân biệt các trạng thái dài và ngắn cho giao dịch theo hướng. Các tham số khác nhau có thể được sử dụng cho các giai đoạn tăng và giảm.
  • Đưa ra kiểm soát rủi ro lượng cho giới hạn rút tiền tối đa.

Tối ưu hóa hơn nữa có thể cải thiện Phân tích tham số và Phân tích đi trước để có hiệu suất mạnh mẽ hơn.

Kết luận

Chiến lược Dual SuperTrend sử dụng cơ chế hai kênh để theo dõi xu hướng và nắm bắt sự đảo ngược. Chiến lược giao dịch ổn định có thể được phát triển thông qua tối ưu hóa tham số, nhưng có những hạn chế.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4
strategy("Double Supertrend Strategy", overlay=true)

// Define your parameters
length = input(10, title="Length")
multiplier = input(3, title="Multiplier")

// Calculate the True Range and Average True Range
trueRange = max(high - low, max(abs(high - close[1]), abs(low - close[1])))
averageTrueRange = sma(trueRange, length)

// Calculate the basic upper and lower bands
basicUpperBand = hl2 + (multiplier * averageTrueRange)
basicLowerBand = hl2 - (multiplier * averageTrueRange)

// Calculate the final upper and lower bands
finalUpperBand = basicUpperBand
finalLowerBand = basicLowerBand

finalUpperBand := close[1] > finalUpperBand[1] ? max(basicUpperBand, finalUpperBand[1]) : basicUpperBand
finalLowerBand := close[1] < finalLowerBand[1] ? min(basicLowerBand, finalLowerBand[1]) : basicLowerBand

// Determine if we're currently in an uptrend or downtrend
uptrend = close > finalLowerBand[1]
downtrend = close < finalUpperBand[1]

// Plot the bands
plot(uptrend ? finalUpperBand : na, color=color.green, linewidth=2)
plot(downtrend ? finalLowerBand : na, color=color.red, linewidth=2)

// Define your conditions for entering and exiting trades
if (uptrend)
    strategy.entry("Buy", strategy.long)
else if (downtrend)
    strategy.entry("Sell", strategy.short)



Thêm nữa