Dual Trendlines Breakout Golden Cross Death Cross Xu hướng theo chiến lược

Tác giả:ChaoZhang, Ngày: 2024-02-22 16:01:12
Tags:

img

Tổng quan

Chiến lược theo xu hướng chéo chết Golden Cross là một chiến lược giao dịch định lượng sử dụng cả đường xu hướng hỗ trợ / kháng cự và đường trung bình động như các tín hiệu thay thế để theo xu hướng. Chiến lược này tính đến mức giá ở các khung thời gian khác nhau, kết hợp các tín hiệu đột phá thông qua các mức hỗ trợ và kháng cự chính với tín hiệu chéo vàng và chéo chết từ chỉ số xu hướng, để mở các vị trí trong những thay đổi xu hướng sớm cho mục tiêu lợi nhuận theo dõi xu hướng trung và dài hạn.

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

Chiến lược này bao gồm bốn thành phần chính:

  1. Đường hỗ trợ được vẽ với mức thấp nhất trong 30 ngày qua
  2. Đường kháng cự được vẽ với mức cao nhất trong 30 tuần qua
  3. Trung bình di chuyển đơn giản 10 giai đoạn, được sử dụng để xác nhận xu hướng lọc tín hiệu giao dịch
  4. Mô-đun xác định đột phá để phát hiện các cơ hội giao dịch khi giá vượt qua mức hỗ trợ / kháng cự quan trọng

Cụ thể, chiến lược này đầu tiên sử dụng các chức năng yêu cầu bảo mật để có được mức cao nhất và thấp nhất trong 30 ngày và 30 tuần qua tương ứng, vẽ các đường hỗ trợ và kháng cự năng động. Sau đó nó kết hợp các tín hiệu chéo vàng và chéo chết từ SMA 10 giai đoạn để lọc các cơ hội phá vỡ. Các tín hiệu dài được tạo ra khi giá vượt qua mức hỗ trợ 30 ngày và SMA 10 giai đoạn, trong khi các tín hiệu ngắn được tạo ra khi giá vượt qua mức kháng cự 30 tuần và SMA 10 giai đoạn.

Chiến lược này xem xét cả mức hỗ trợ / kháng cự trung hạn và dài hạn, cho phép nó nắm bắt các cơ hội xu hướng lớn hơn.

Phân tích lợi thế

Những lợi thế chính của chiến lược này bao gồm:

  1. Sử dụng cả hỗ trợ / kháng cự trung hạn và dài hạn để nắm bắt các sự đột phá lớn hơn.
  2. Bộ lọc MA kiểm soát tổn thất bằng cách tránh các tín hiệu sai trong các thị trường dao động.
  3. Các bản cập nhật động của mức hỗ trợ/kháng cự cho phép bắt kịp thời các hướng xu hướng mới.
  4. Các cơ chế quản lý rủi ro của dừng lỗ và lấy lợi nhuận giúp đảm bảo lợi nhuận.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro cần lưu ý cho chiến lược này:

  1. Các chiến lược đột phá đòi hỏi thời gian chính xác, với các vấn đề vượt quá hoặc chậm trễ.
  2. Sự phá vỡ không hợp lệ có thể xảy ra khi các mức hỗ trợ / kháng cự thất bại, gây ra tổn thất lớn.
  3. Bản chất chậm của các đường trung bình động có thể gây ra tín hiệu muộn cho sự đảo ngược xu hướng.
  4. Rủi ro rút vốn cao khiến nó không phù hợp với các tài khoản nhỏ.

Giải pháp:

  1. Điều chỉnh hợp lý nhận dạng và thêm nhiều bộ lọc.
  2. Sử dụng thời gian MA dài hơn để đảm bảo tín hiệu chỉ xảy ra sau khi xu hướng ổn định.
  3. Thiết lập mức dừng lỗ thích hợp để hạn chế giảm giá trên các giao dịch đơn.

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

Có chỗ cải thiện thêm:

  1. Kết hợp các biện pháp biến động như ATR để dừng lỗ thông minh hơn và tăng lợi nhuận.
  2. Thêm các mô hình học máy để phát hiện sự cố hỗ trợ / kháng cự.
  3. Sử dụng các đường trung bình động thích nghi để nhanh chóng bắt được sự đảo ngược.
  4. Các thông số tinh chỉnh cho các sản phẩm khác nhau.

Kết luận

Chiến lược Breakout Golden Cross Death Cross Trend Following Dual Trendlines kết hợp hiệu quả các chỉ số hỗ trợ / kháng cự trung và dài hạn và chỉ số trung bình động để lọc các tín hiệu có lợi trong các xu hướng chính, làm cho nó trở thành một chiến lược giao dịch định lượng tương đối trưởng thành.


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © neosaid

//@version=5
strategy("Support and resistant Strategy", overlay=true)

// Function to check for breakout
f_breakoutCondition(closingPrice, highestHigh, lowestLow) =>
    closingPrice > highestHigh or closingPrice < lowestLow

// Step 1: 30 Days Trend Line (Lower Lows)
low30Days = request.security(syminfo.tickerid, "D", low)

// Step 2: 30 Weeks Upper Trend Line (Higher Highs)
high30Weeks = request.security(syminfo.tickerid, "W", high)

// Step 3: Trend Line for Lowest Low within the Last Month
var float lowestLowLastMonth = na
for i = 0 to 29
    lowestLowLastMonth := na(lowestLowLastMonth) ? low[i] : math.min(lowestLowLastMonth, low[i])

lowestLowLastMonthValue = lowestLowLastMonth[1]

// Breakout Strategy
highestHighLast3Candles = request.security(syminfo.tickerid, "D", ta.highest(close, 3))
lowestLowLast3Candles = request.security(syminfo.tickerid, "D", ta.lowest(close, 3))

// Additional conditions to filter signals
buyCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close > low30Days

sellCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close < high30Weeks

// Additional filters to reduce the number of orders
buyFilter = ta.crossover(close, ta.sma(close, 10)) // Buy only when price crosses above a 10-period SMA
sellFilter = ta.crossunder(close, ta.sma(close, 10)) // Sell only when price crosses below a 10-period SMA

buyCondition := buyCondition and buyFilter
sellCondition := sellCondition and sellFilter

// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Strategy entries
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)


Thêm nữa