Esta estratégia usa a inclinação de regressão linear para identificar diferentes regimes de mercado (bullish ou bearish). Ao calcular a inclinação de regressão linear dos preços de fechamento em um período definido, ela mede a direção e a força da tendência do mercado. Quando a inclinação está acima de um certo limiar, o mercado é considerado bullish e a estratégia entra em uma posição longa. Quando a inclinação está abaixo de um limiar negativo, o mercado é considerado de baixa e a estratégia entra em uma posição curta.
O princípio central desta estratégia é usar a inclinação da regressão linear para identificar regimes de mercado. Ao realizar a regressão linear nos preços de fechamento durante um período específico, é obtida uma linha de melhor ajuste. A inclinação desta linha reflete a direção geral da tendência e a força dos preços durante esse período. Uma inclinação positiva indica uma tendência ascendente, com uma inclinação maior indicando uma tendência ascendente mais forte. Uma inclinação negativa indica uma tendência descendente, com uma inclinação menor indicando uma tendência descendente mais forte.
A Estratégia de Identificação de Regime de Mercado Dinâmico baseada na inclinação de regressão linear determina os regimes de mercado calculando a inclinação de regressão linear dos preços e fazendo as decisões de negociação correspondentes. A estratégia tem lógica clara, cálculos simples e pode capturar efetivamente as principais tendências do mercado. No entanto, pode gerar negociações frequentes em mercados agitados e é sensível à seleção de parâmetros. Através da otimização de parâmetros, filtragem de tendências, stop loss e take profit e análise de vários prazos, a estabilidade e lucratividade da estratégia podem ser melhoradas.
/*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)