Эта стратегия использует наклон линейной регрессии для выявления различных рыночных режимов (бычьих или медвежьих). Расчитывая наклон линейной регрессии цен закрытия за определенный период, она измеряет направление и силу рыночной тенденции. Когда наклон выше определенного порога, рынок считается бычьим, и стратегия входит в длинную позицию. Когда наклон ниже отрицательного порога, рынок считается медвежьим, и стратегия входит в короткую позицию. Стратегия закрывает позиции, когда цена пересекает Простую скользящую среднюю (SMA), сигнализируя о потенциальном перевороте или изменении тренда.
Основной принцип этой стратегии состоит в том, чтобы использовать наклон линейной регрессии для определения рыночных режимов. Используя линейную регрессию по цене закрытия за определенный период, получается линия наилучшего соответствия. Наклон этой линии отражает общее направление тренда и силу цен в течение этого периода. Положительный наклон указывает на восходящую тенденцию, при этом более большой наклон указывает на более сильный восходящий тренд. Отрицательный наклон указывает на нисходящую тенденцию, при этом меньший наклон указывает на более сильный нисходящий тренд.
Динамическая стратегия определения режима рынка, основанная на линейном наклонении регрессии, определяет рыночные режимы путем расчета линейного наклонения регрессии цен и принимает соответствующие торговые решения. Стратегия имеет четкую логику, простые расчеты и может эффективно улавливать основные рыночные тенденции.
/*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)