Estratégia de negociação adaptável baseada em avanço bidirecional


Data de criação: 2024-02-06 15:31:36 última modificação: 2024-02-06 15:31:36
cópia: 0 Cliques: 683
1
focar em
1617
Seguidores

Estratégia de negociação adaptável baseada em avanço bidirecional

Visão geral

A estratégia de negociação de auto-adaptação de breakout bidirecional é uma estratégia quantitativa de julgamento e operação de negociação com base na relação entre o preço de abertura e o preço de fechamento de uma ação. A estratégia faz uma operação de mais ou menos em condições de parâmetros definidos.

Princípio da estratégia

A lógica central da estratégia é baseada na relação entre o preço de abertura e o preço de fechamento. Concretamente, se o preço de fechamento for maior do que o preço de abertura e o valor do limiar definido, um sinal de multi-fazer é gerado; se o preço de abertura for maior do que o preço de fechamento e o valor do limiar definido, um sinal de fechamento é gerado.

De acordo com a implementação do código, a estratégia define primeiro a expressão condicional de posições longas e curtas, e depois entra em jogo se estiver de acordo com a lógica de construção da posição. Em seguida, ela detecta continuamente se a condição de saída foi acionada, ou seja, executa a operação de posição plana quando a condição de saída é atendida. Portanto, a estratégia monitora as mudanças do mercado em tempo real, é adaptável e flexível.

Vantagens estratégicas

A estratégia de negociação adaptativa de ruptura bidirecional tem as seguintes vantagens:

  1. Operação clara, simples, fácil de entender e implementar
  2. Ajuda a adaptar-se às mudanças do mercado
  3. Função de prevenção de danos para controlar o risco
  4. Pode ser ajustado por parâmetros para diferentes variedades
  5. Algoritmos fáceis de otimizar, espaço para expansão

Risco estratégico

Embora tenha algumas vantagens, a estratégia também apresenta riscos:

  1. A estratégia de stop loss pode falhar quando os mercados estão em alta
  2. Não conseguem captar tendências de longo prazo, trocam de posição com frequência
  3. Parâmetros mal definidos podem levar a transações excessivas
  4. Falha no sistema de quantificação pode causar danos irreparáveis

Esses riscos precisam ser cuidadosamente monitorados durante o processo de disco rígido, ajustando os parâmetros ou otimizando os algoritmos.

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

A estratégia pode ser melhorada principalmente nas seguintes direções:

  1. Aumentar a otimização da estratégia de stop loss e controlar a frequência de troca de posições, mantendo a sensibilidade.
  2. Aumentar os indicadores de tendência e reduzir a frequência de transações fora de tendência.
  3. Combinação de estratégias de operação de curto prazo com estratégias para aumentar a rentabilidade.
  4. Mecanismos de adaptação de parâmetros de otimização permitem ajustes dinâmicos dos valores-limite.
  5. A adição de modelos de aprendizagem de máquina para determinar a direção.

Otimizando algoritmos e modelos, pode-se aumentar a estabilidade e a lucratividade da estratégia como um todo.

Resumir

A estratégia de negociação de auto-adaptação de ruptura bidirecional combina os dois mecanismos de discernimento de tendências e de saída de auto-adaptação para controlar eficazmente o risco. Seu princípio simples e parâmetros flexíveis tornam a estratégia fácil de entender e expandir. É uma estratégia quantitativa recomendada e digna de estudo.

Código-fonte da estratégia
/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true, calc_on_order_fills=true) // Repaint?
// strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true) // Correct

val1 = input(123)
val2 = input(234)

from_year=input(2018, minval=2000, maxval=2020)
from_month=input(6, minval=1, maxval=12)
from_day=input(1, minval=1, maxval=31)

to_year=input(2019, minval=2007, maxval=2020)
to_month=input(12, minval=1, maxval=12)
to_day=input(31, minval=1, maxval=31)

long = (close-open) > val1
short = (open-close) > val1

exitLong = (open-close) > val2
exitShort = (close-open) > val2

term = true

strategy.entry("LONG", strategy.long, when=long and term)
strategy.close("LONG",  when = exitLong and not short and term)

strategy.entry("SHORT", strategy.short, when=short and term)
strategy.close("SHORT", when = exitShort and not long and term)