Chiến lược này sử dụng độ nghiêng của hồi quy tuyến tính để xác định các chế độ thị trường khác nhau (bullish hoặc bearish). Bằng cách tính toán độ nghiêng hồi quy tuyến tính của giá đóng trong một khoảng thời gian xác định, nó đo hướng và sức mạnh của xu hướng thị trường. Khi độ nghiêng vượt quá một ngưỡng nhất định, thị trường được coi là tăng, và chiến lược đi vào một vị trí dài. Khi độ nghiêng dưới ngưỡng âm, thị trường được coi là giảm, và chiến lược đi vào một vị trí ngắn. Chiến lược đóng các vị trí khi giá vượt qua Mức trung bình di chuyển đơn giản (SMA), báo hiệu một sự đảo ngược hoặc thay đổi tiềm năng trong xu hướng.
Nguyên tắc cốt lõi của chiến lược này là sử dụng độ nghiêng của hồi quy tuyến tính để xác định chế độ thị trường. Bằng cách thực hiện hồi quy tuyến tính trên giá đóng trong một khoảng thời gian cụ thể, một đường phù hợp nhất được thu được. Độ nghiêng của đường này phản ánh hướng xu hướng tổng thể và sức mạnh của giá trong khoảng thời gian đó.
Chiến lược xác định chế độ thị trường động dựa trên độ nghiêng hồi quy tuyến tính xác định chế độ thị trường bằng cách tính toán độ nghiêng hồi quy tuyến tính của giá và đưa ra các quyết định giao dịch tương ứng. Chiến lược có logic rõ ràng, tính toán đơn giản và có thể nắm bắt hiệu quả các xu hướng thị trường chính. Tuy nhiên, nó có thể tạo ra các giao dịch thường xuyên trong các thị trường hỗn loạn và nhạy cảm với việc lựa chọn tham số. Thông qua tối ưu hóa tham số, lọc xu hướng, dừng lỗ và lấy lợi nhuận và phân tích nhiều khung thời gian, sự ổn định và lợi nhuận của chiến lược có thể được cải thiện hơn nữa.
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"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/ // © tmalvao //@version=5 strategy("Minha estratégia", overlay=true, margin_long=100, margin_short=100) // Função para calcular o slope (inclinação) com base na média móvel simples (SMA) slope_length = input(20, title="Slope Length") sma_length = input(50, title="SMA Length") slope_threshold = input.float(0.1, title="Slope Threshold") sma = ta.sma(close, sma_length) // Calculando o slope (inclinação) var float slope = na if (not na(close[slope_length - 1])) slope := (close - close[slope_length]) / slope_length // Identificação dos regimes de mercado com base no slope bullish_market = slope > slope_threshold bearish_market = slope < -slope_threshold // Condições de entrada e saída para mercados bullish e bearish if (bullish_market) strategy.entry("Long", strategy.long) if (bearish_market) strategy.entry("Short", strategy.short) // Saída das posições exit_condition = ta.crossover(close, sma) or ta.crossunder(close, sma) if (exit_condition) strategy.close("Long") strategy.close("Short") // Exibir a inclinação em uma janela separada slope_plot = plot(slope, title="Slope", color=color.blue) hline(0, "Zero Line", color=color.gray)