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.
Chiến lược này bao gồm bốn thành phần chính:
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.
Những lợi thế chính của chiến lược này bao gồm:
Ngoài ra còn có một số rủi ro cần lưu ý cho chiến lược này:
Giải pháp:
Có chỗ cải thiện thêm:
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)