Estratégia adaptável dinâmica de stop-profit e stop-loss baseada em crossover SMA e filtragem de volume

SMA
Data de criação: 2024-07-31 11:20:39 última modificação: 2024-07-31 11:20:39
cópia: 0 Cliques: 483
1
focar em
1617
Seguidores

Estratégia adaptável dinâmica de stop-profit e stop-loss baseada em crossover SMA e filtragem de volume

Visão geral

A estratégia é um sistema de negociação automatizado baseado em uma média móvel simples (SMA) de cruzamento e filtragem de volume de transação. Utiliza cruzamento de SMAs rápidas e lentas para gerar sinais de entrada, ao mesmo tempo em que combina indicadores de volume de transação para confirmar a força da tendência. A estratégia também inclui mecanismos de stop loss e stop loss dinâmicos e condições de saída baseadas em tempo, com o objetivo de otimizar o gerenciamento de risco e aumentar a lucratividade.

Princípio da estratégia

A estratégia baseia-se nos seguintes componentes:

  1. Sinais de cruzamento SMA:

    • Uma média móvel simples com dois períodos diferentes (SMA rápido e SMA lento)
    • Quando o SMA rápido atravessa o SMA lento de baixo, gera um sinal de multiplicação
    • Quando o SMA rápido atravessa o SMA lento de cima, gera um sinal de breakout
  2. Filtração de transações:

    • Calcular a média móvel simples do volume de transações
    • Fazer múltiplos sinais requer que o volume de transação atual seja maior do que o volume de transação SMA
    • O sinal de vazio exige que o volume de transação atual seja inferior ao volume de transação SMA
  3. A perda de dinâmica e a parada:

    • Níveis de stop loss e stop loss definidos em percentagem do preço de entrada
    • Os níveis de stop loss e stop stop são ajustáveis por meio de parâmetros de entrada
  4. Base temporal de saída:

    • Configuração do tempo máximo de detenção (contado em K-linhas)
    • Cancelamento automático de posições que excedam o tempo máximo de detenção para evitar posições desfavoráveis a longo prazo
  5. Configuração durante a detecção:

    • Permitir que o usuário defina um determinado intervalo de tempo de resposta
    • Garantir que a estratégia funcione apenas durante o período histórico designado

Vantagens estratégicas

  1. A combinação de acompanhamento de tendências e dinâmica: A combinação de filtragem de massa e cruzamento de SMA permite que a estratégia capte uma tendência forte, evitando a negociação frequente em mercados fracos.

  2. Gestão de risco flexível: Os mecanismos de stop loss e de stop-loss dinâmicos permitem que a estratégia ajuste automaticamente a exposição ao risco de acordo com a volatilidade do mercado, ajudando a proteger os lucros e a limitar as perdas potenciais.

  3. Prevenção de posse excessiva: O limite máximo de tempo de posse ajuda a evitar que a estratégia mantenha posições perdedoras por um longo período em condições de mercado desfavoráveis e promove o uso efetivo dos fundos.

  4. Forte customização: Vários parâmetros ajustáveis (como o ciclo SMA, a porcentagem de parada de perda, o tempo máximo de posse, etc.) permitem que a estratégia seja otimizada para diferentes mercados e estilos de negociação.

  5. Apoio visual: A estratégia traça as linhas SMA e os sinais de negociação nos gráficos para facilitar a compreensão e análise do desempenho da estratégia.

Risco estratégico

  1. Atraso: Os indicadores SMA são, por natureza, atrasados, o que pode levar a atrasos de entrada ou a oportunidades perdidas em mercados de retorno rápido.

  2. Risco de Falso Breakout: Nos mercados de mercado, os cruzamentos SMA podem gerar frequentes falsos sinais de ruptura, resultando em sobre-negociação e aumento dos custos de transação.

  3. O volume de transações depende de: A dependência excessiva de indicadores de volume de transação pode induzir estratégias erradas em certas condições de mercado, especialmente durante períodos de baixa liquidez ou volume de transação anormal.

  4. Percentagem fixa de stop loss/stop loss: O uso de stop loss e stop-loss de porcentagem fixa pode não ser adequado para todas as condições de mercado, especialmente em períodos de grande volatilidade.

  5. A restrição de saída por base temporal: O tempo máximo de manutenção de posição fixo pode levar a liquidação prematura de posições quando a tendência favorável ainda não terminou, afetando os resultados potenciais.

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

  1. Ajustes de parâmetros dinâmicos: Permite o ajuste dinâmico dos ciclos SMA, dos percentual de stop loss e do tempo máximo de detenção de posições para adaptar-se a diferentes ciclos e volatilidades do mercado.

  2. incorporar filtros adicionais: A introdução de outros indicadores técnicos (como RSI, MACD, etc.) como condições de filtragem adicionais para melhorar a precisão do sinal de negociação.

  3. A redução do volume de transações: Desenvolver mecanismos de depreciação do volume de transação adaptados dinamicamente para melhor adaptar-se às características do volume de transação em diferentes fases do mercado.

  4. Melhorias no mecanismo de saída: Explorar mecanismos de saída inteligentes baseados na estrutura do mercado ou em indicadores de dinâmica, substituindo saídas de tempo fixo e aumentando a adaptabilidade das estratégias.

  5. Ajuste de volatilidade: Realizar o ajustamento dos níveis de stop loss e stop loss dinâmicos com base na volatilidade do mercado para melhor gerenciar o risco e capturar os lucros.

  6. Análise de vários quadros temporais: Integrar análise de dados em vários períodos de tempo, melhorando a capacidade da estratégia de identificar tendências e reversões de mercado.

  7. Otimizar o aprendizado de máquina: Utilizando algoritmos de aprendizagem de máquina para otimizar dinamicamente os parâmetros da estratégia e melhorar o desempenho da estratégia em diferentes ambientes de mercado.

Resumir

A “estratégia de parada de perda dinâmica adaptativa com filtragem de SMA cruz e transação” é um sistema de negociação integrado que combina rastreamento de tendências, análise de transação e gerenciamento de risco. Através da utilização de SMA cruz e filtragem de transação, a estratégia visa capturar tendências de mercado fortes, enquanto seu mecanismo de parada de perda dinâmica e a função de saída baseada em tempo oferecem controle de risco flexível.

Código-fonte da estratégia
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple_CrossOver_Bot_V1_EBO", overlay=true)

// INPUTS
dateStart_Year = input.int(2018, title="Start Year", minval=2000)
dateStart_Month = input.int(1, title="Start Month", minval=1, maxval=12)
dateStart_Day = input.int(1, title="Start Day", minval=1, maxval=31)
dateEnd_Year = input.int(2019, title="End Year", minval=2000)
dateEnd_Month = input.int(1, title="End Month", minval=1, maxval=12)
dateEnd_Day = input.int(1, title="End Day", minval=1, maxval=31)

fast_SMA_input = input.int(7, title="SMA Fast")
slow_SMA_input = input.int(25, title="SMA Slow")
volume_SMA_input = input.int(20, title="Volume SMA")
stop_loss_percent = input.float(1.0, title="Stop Loss (%)", step=0.1) / 100
take_profit_percent = input.float(2.0, title="Take Profit (%)", step=0.1) / 100
max_bars_in_trade = input.int(50, title="Max Bars in Trade", minval=1)

// INDICATORS
fast_SMA = ta.sma(close, fast_SMA_input)
slow_SMA = ta.sma(close, slow_SMA_input)
volume_SMA = ta.sma(volume, volume_SMA_input)

// STRATEGY
LONG = ta.crossover(fast_SMA, slow_SMA) and fast_SMA > slow_SMA and volume > volume_SMA
SHORT = ta.crossunder(fast_SMA, slow_SMA) and fast_SMA < slow_SMA and volume < volume_SMA

// TRIGGERS
testPeriodStart = timestamp(dateStart_Year, dateStart_Month, dateStart_Day)
testPeriodEnd = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day)
timecondition = true

// Track bar index for entries
var int long_entry_bar_index = na
var int short_entry_bar_index = na

if timecondition
    if LONG
        strategy.entry(id="LONG", direction=strategy.long)
        long_entry_bar_index := bar_index
    if SHORT
        strategy.entry(id="SHORT", direction=strategy.short)
        short_entry_bar_index := bar_index

    // Exit conditions for LONG
    if not na(long_entry_bar_index) and bar_index - long_entry_bar_index >= max_bars_in_trade
        strategy.close("LONG")
        long_entry_bar_index := na
    
    // Exit conditions for SHORT
    if not na(short_entry_bar_index) and bar_index - short_entry_bar_index >= max_bars_in_trade
        strategy.close("SHORT")
        short_entry_bar_index := na

    // Standard exits
    if LONG
        strategy.exit("Exit LONG", from_entry="LONG", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_percent))
    if SHORT
        strategy.exit("Exit SHORT", from_entry="SHORT", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_percent))

// PLOTS
plot(fast_SMA, color=color.green, linewidth=1, title="Fast SMA")
plot(slow_SMA, color=color.yellow, linewidth=1, title="Slow SMA")
plot(volume_SMA, color=color.blue, linewidth=1, title="Volume SMA")
plotshape(series=LONG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=SHORT, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)

// Uncomment the following lines for alerts
// alertcondition(LONG, title="LONG")
// alertcondition(SHORT, title="SHORT")