Estratégia quantitativa aprimorada com meta de lucro multinível e stop loss dinâmico

TP SL ML QS AT EXIT ENTRY
Data de criação: 2025-02-20 11:36:09 última modificação: 2025-02-20 14:56:34
cópia: 1 Cliques: 314
2
focar em
319
Seguidores

Estratégia quantitativa aprimorada com meta de lucro multinível e stop loss dinâmico Estratégia quantitativa aprimorada com meta de lucro multinível e stop loss dinâmico

Visão geral

Trata-se de uma estratégia de negociação quantitativa de tipo aumentado, desenvolvida com base no metrobonez1ty. A principal característica da estratégia é a realização de um objetivo de ganho em vários níveis e um mecanismo de stop loss dinâmico, mantendo a flexibilidade de integração com sinais de indicadores externos. A estratégia suporta até três posições de alvo de ganho e usa seletivamente um gatilho de stop loss baseado em indicadores para filtrar a entrada de negociações por meio de sinais adicionais de confirmação.

Princípio da estratégia

A lógica central da estratégia se desenvolve em torno de um mecanismo de saída em vários níveis. No lado de entrada, a estratégia dispara sinais de negociação de múltiplos e vazios por meio de duas fontes de entrada, longEntry e shortEntry. Para cada direção de negociação, a estratégia define três objetivos de ganho independentes (TP1, TP2 e TP3), cada um dos quais pode ser ajustado dinamicamente com base em sinais de indicadores externos.

Vantagens estratégicas

  1. Mecanismo de saída flexível: Suporte para várias posições com objetivos de lucro, podendo ser retiradas gradualmente de acordo com a situação do mercado.
  2. Gerenciamento de risco dinâmico: ajuste dinâmico da posição de parada por meio de sinais de indicadores externos, fornecendo um controle de risco mais inteligente.
  3. Altamente personalizável: as condições de entrada e saída da estratégia podem ser personalizadas por meio de indicadores externos, adaptando-se a diferentes estilos de negociação.
  4. Mecanismo de filtragem perfeito: reduz o impacto de sinais falsos, exigindo a confirmação de múltiplos sinais.

Risco estratégico

  1. Risco de dependência de sinais: a estratégia depende muito da qualidade dos sinais de indicadores externos, que podem causar erros de negociação se não forem precisos.
  2. Risco de otimização de parâmetros: vários objetivos de lucro e parâmetros de stop-loss precisam ser cuidadosamente otimizados, e a otimização excessiva pode levar a uma sobre-configuração.
  3. Risco de adaptabilidade ao contexto de mercado: os objetivos fixos de lucro em vários níveis podem não ser suficientemente flexíveis em diferentes contextos de mercado.

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

  1. Ajuste de parâmetros dinâmicos: um mecanismo de adaptação pode ser introduzido para ajustar automaticamente os objetivos de lucro e os parâmetros de parada de perdas de acordo com a volatilidade do mercado.
  2. Avaliação da qualidade dos sinais: aumentar o mecanismo de avaliação da qualidade dos sinais de entrada e saída, aumentando ainda mais a precisão das transações.
  3. Optimização da gestão de posições: pode-se definir diferentes proporções de distribuição de posições de acordo com diferentes objetivos de lucro.
  4. Identificação do cenário de mercado: adição de módulo de identificação do cenário de mercado, com configurações de parâmetros diferentes em diferentes condições de mercado.

Resumir

A estratégia oferece uma estrutura de negociação abrangente por meio de objetivos de lucro em níveis múltiplos e mecanismos de parada dinâmica. A vantagem da estratégia reside na sua flexibilidade e personalização, mas ao mesmo tempo requer um tratamento cuidadoso de questões de otimização de parâmetros e adaptabilidade ao mercado.

Código-fonte da estratégia
/*backtest
start: 2025-02-04 00:00:00
end: 2025-02-18 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Enhanced Strategy Tester with multi TP and SL Trigger", overlay=true, margin_long=100, margin_short=100)

// Entry Signals
longEntry = input.source(close, 'Long Entry Trigger', 'long signal source')
shortEntry = input.source(close, 'Short Entry Trigger', 'short signal source')

// Exit Triggers
activateLongExit = input.bool(false, 'Activate Long Exit Signals')
longExit1 = input.source(high, 'Long Exit TP1')
longExit2 = input.source(high, 'Long Exit TP2')
longExit3 = input.source(high, 'Long Exit TP3')

activateShortExit = input.bool(false, 'Activate Short Exit Signals')
shortExit1 = input.source(low, 'Short Exit TP1')
shortExit2 = input.source(low, 'Short Exit TP2')
shortExit3 = input.source(low, 'Short Exit TP3')

// Stop Loss from External Indicator
useSLSignal = input.bool(false, 'Activate SL Signal')
slSignal = input.source(low, 'SL', 'SL Signal Source')

// Long Entry Condition
longCondition = not na(longEntry) and longEntry > 0
if (longCondition and strategy.opentrades == 0)
    strategy.entry('long', strategy.long)
    strategy.exit('exit_long_tp1', 'long', limit=longExit1, comment='TP1 hit')
    strategy.exit('exit_long_tp2', 'long', limit=longExit2, comment='TP2 hit')
    strategy.exit('exit_long_tp3', 'long', limit=longExit3, comment='TP3 hit')
    strategy.exit('exit_long_sl', 'long', stop=useSLSignal ? slSignal : na, comment='SL hit')

// Long Exit Condition
if (activateLongExit)
    if (not na(longExit1) and longExit1 > 0)
        strategy.close('long', comment='TP1 at Exit')
    if (not na(longExit2) and longExit2 > 0)
        strategy.close('long', comment='TP2 at Exit')
    if (not na(longExit3) and longExit3 > 0)
        strategy.close('long', comment='TP3 at Exit')

// Short Entry Condition
shortCondition = not na(shortEntry) and shortEntry > 0
if (shortCondition and strategy.opentrades == 0)
    strategy.entry('short', strategy.short)
    strategy.exit('exit_short_tp1', 'short', limit=shortExit1, comment='TP1 hit')
    strategy.exit('exit_short_tp2', 'short', limit=shortExit2, comment='TP2 hit')
    strategy.exit('exit_short_tp3', 'short', limit=shortExit3, comment='TP3 hit')
    strategy.exit('exit_short_sl', 'short', stop=useSLSignal ? slSignal : na, comment='SL hit')

// Short Exit Condition
if (activateShortExit)
    if (not na(shortExit1) and shortExit1 > 0)
        strategy.close('short', comment='TP1 at Exit')
    if (not na(shortExit2) and shortExit2 > 0)
        strategy.close('short', comment='TP2 at Exit')
    if (not na(shortExit3) and shortExit3 > 0)
        strategy.close('short', comment='TP3 at Exit')