Estratégia de declínio extremo do mercado com base em desvios estatísticos

STD SMA MA SD
Data de criação: 2024-11-29 16:46:33 última modificação: 2024-11-29 16:46:33
cópia: 0 Cliques: 444
1
focar em
1617
Seguidores

Estratégia de declínio extremo do mercado com base em desvios estatísticos

Visão geral

A estratégia baseia-se na negociação das características estatísticas de queda extrema do mercado. Com base na análise estatística de retrações, a análise de padrão de diferença mede o grau extremo de flutuação do mercado e compra quando o mercado cai além do normal. A ideia central da estratégia é capturar oportunidades de ultrapassagem causadas pelo pânico do mercado e identificar, por meio de métodos estatísticos matemáticos, as oportunidades de investimento trazidas pelo comportamento irracional do mercado.

Princípio da estratégia

A estratégia usa características estatísticas para calcular a máxima retração e a retração do preço em uma janela de tempo de rolagem. Primeiro, calcula-se o preço mais alto nos últimos 50 períodos, e depois calcula-se a percentagem de retração em relação ao preço de fechamento atual mais alto. Em seguida, calcula-se a média e a diferença padrão da retração, definindo - 1x a diferença padrão como um limite de ação.

Vantagens estratégicas

  1. A estratégia baseia-se em princípios estatísticos, com uma sólida base teórica. A metodologia é científica e objetiva, medindo a extrema amplitude da oscilação do mercado através do desvio padrão.
  2. A estratégia é capaz de efetivamente capturar oportunidades de investimento em períodos de pânico no mercado. Entrar em ação quando o mercado apresenta uma queda irracional, de acordo com a filosofia do investimento em valor.
  3. O método de liquidação com períodos fixos evita o problema de rastreamento de um stop loss que pode perder uma reversão.
  4. Os parâmetros da estratégia são ajustáveis e podem ser ajustados de acordo com diferentes condições de mercado e características de variedades de negociação.
  5. O cálculo dos indicadores de retração e de desvio padrão é simples, a lógica da estratégia é clara, fácil de entender e executar.

Risco estratégico

  1. O mercado pode sofrer uma queda contínua, resultando em entradas frequentes de estratégias que resultam em perdas. É recomendável definir limites para o número máximo de posições.
  2. As posições de parada com períodos fixos podem perder um espaço maior para a alta. Pode-se considerar a adição de posições de parada com acompanhamento de tendências.
  3. As características estatísticas de retirada podem mudar com a mudança do ambiente de mercado. Recomenda-se atualizar regularmente as configurações dos parâmetros.
  4. A estratégia não considera outras informações de mercado, como volume de negócios. Recomenda-se a verificação cruzada em combinação com vários indicadores.
  5. Em um ambiente de mercado altamente volátil, os desvios padrão podem ser falsos. Recomenda-se a implementação de medidas de controle de risco.

Direção de otimização da estratégia

  1. A introdução de um indicador de volume de transações confirmou o nível de pânico no mercado.
  2. Aumentar os indicadores de tendência e evitar entradas frequentes em tendências de baixa.
  3. Otimizar o mecanismo de liquidação de posições, ajustando o tempo de detenção de posições de acordo com a dinâmica do mercado.
  4. Aumentar a configuração de stop loss e controlar o risco de uma única transação.
  5. Considere o uso de parâmetros de adaptação para melhorar a adaptabilidade da estratégia às mudanças do mercado.

Resumir

A estratégia capta as oportunidades de superação e queda do mercado por meio de métodos estatísticos, com uma boa base teórica e valor prático. A lógica da estratégia é simples e clara, os parâmetros são ajustáveis e são adequados para expansão e otimização da estratégia básica. A estabilidade e lucratividade da estratégia podem ser melhoradas com a adição de outros indicadores técnicos e medidas de controle de risco.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy When There's Blood in the Streets Strategy", overlay=false, shorttitle="BloodInTheStreets")


//This strategy identifies opportunities to buy during extreme market drawdowns based on standard deviation thresholds. 
//It calculates the maximum drawdown over a user-defined lookback period, identifies extreme deviations from the mean, 
//and triggers long entries when specific conditions are met. The position is exited after a defined number of bars.


// User Inputs
lookbackPeriod = input.int(50, title="Lookback Period", minval=1, tooltip="Period to calculate the highest high for drawdown")
stdDevLength = input.int(50, title="Standard Deviation Length", minval=1, tooltip="Length of the period to calculate standard deviation")
stdDevThreshold = input.float(-1.0, title="Standard Deviation Threshold", tooltip="Trigger level for long entry based on deviations")
exitBars = input.int(35, title="Exit After (Bars)", minval=1, tooltip="Number of bars after which to exit the trade")

// Drawdown Calculation
peakHigh = ta.highest(high, lookbackPeriod)
drawdown = ((close - peakHigh) / peakHigh) * 100

// Standard Deviation Calculation
drawdownStdDev = ta.stdev(drawdown, stdDevLength)
meanDrawdown = ta.sma(drawdown, stdDevLength)

// Define Standard Deviation Levels
stdDev1 = meanDrawdown - drawdownStdDev
stdDev2 = meanDrawdown - 2 * drawdownStdDev
stdDev3 = meanDrawdown - 3 * drawdownStdDev

// Plot Drawdown and Levels
plot(drawdown, color=color.red, linewidth=2, title="Drawdown (%)")
plot(meanDrawdown, color=color.blue, linewidth=2, title="Mean Drawdown")
plot(stdDev1, color=color.green, linewidth=1, title="1st Std Dev")
plot(stdDev2, color=color.orange, linewidth=1, title="2nd Std Dev")
plot(stdDev3, color=color.purple, linewidth=1, title="3rd Std Dev")

// Entry Condition
var float entryBar = na
goLong = drawdown <= meanDrawdown + stdDevThreshold * drawdownStdDev

if (goLong and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)
    entryBar := bar_index

// Exit Condition
if (strategy.position_size > 0 and not na(entryBar) and bar_index - entryBar >= exitBars)
    strategy.close("Long")