
A estratégia usa a inclinação da regressão linear para identificar diferentes estados de mercado (aumento ou queda). A inclinação da regressão linear de preços de fechamento durante um período de tempo pode medir a direção e a intensidade da tendência de mercado. Quando a inclinação é maior do que um determinado valor de queda, o mercado é considerado otimista e a estratégia entra em uma posição de posição múltipla.
O princípio central da estratégia é usar a inclinação de uma regressão linear para identificar o estado do mercado. Com a regressão linear do preço de fechamento durante um período de tempo, uma linha de melhor ajuste pode ser obtida. A inclinação dessa linha reflete a direção e a força da tendência geral do preço durante esse período de tempo.
A estratégia de identificação do estado do mercado dinâmico com base no declínio de regressão linear julga o estado do mercado através do cálculo do declínio de regressão linear do preço e, em seguida, toma decisões de negociação correspondentes. A lógica da estratégia é clara, a computação é simples e consegue capturar efetivamente as principais tendências do mercado.
/*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)