Chiến lược này sử dụng độ lệch của sự hồi phục tuyến tính để xác định các trạng thái thị trường khác nhau (thay lạc hoặc giảm giá). Bằng cách tính độ lệch của sự hồi phục tuyến tính của giá đóng cửa trong một khoảng thời gian, có thể đo hướng và cường độ của xu hướng thị trường. Khi độ lệch lớn hơn một mức giảm giá, thị trường được coi là lạc quan, chiến lược đi vào vị trí nhiều đầu; Khi độ lệch nhỏ hơn mức giảm giá, thị trường được coi là giảm giá, chiến lược đi vào vị trí trống.
Nguyên tắc cốt lõi của chiến lược này là sử dụng độ dốc của sự hồi phục tuyến tính để xác định trạng thái thị trường. Bằng cách quay trở tuyến tính với giá đóng cửa trong một khoảng thời gian, bạn có thể có được một đường thẳng phù hợp tốt nhất. Đường thẳng này phản ánh hướng và cường độ của xu hướng chung của giá trong khoảng thời gian đó. Đường dốc dương cho thấy giá có xu hướng tăng, độ dốc lớn hơn, xu hướng tăng mạnh hơn; đường dốc âm cho thấy giá có xu hướng giảm, độ dốc nhỏ hơn, xu hướng giảm mạnh hơn. Bằng cách đặt ngưỡng dốc, bạn có thể xác định trạng thái thị trường là tăng hoặc giảm, do đó đưa ra quyết định giao dịch phù hợp.
Chiến lược nhận diện trạng thái thị trường động dựa trên độ dốc hồi quy tuyến tính để đánh giá trạng thái thị trường bằng cách tính toán độ dốc hồi quy tuyến tính của giá và sau đó đưa ra quyết định giao dịch phù hợp. Chiến lược có logic rõ ràng, tính toán đơn giản và có thể nắm bắt được xu hướng chính của thị trường một cách hiệu quả. Tuy nhiên, có thể có giao dịch thường xuyên trong thị trường bất ổn và nhạy cảm hơn với lựa chọn tham số.
/*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)