Estratégia de negociação dinâmica de stop-profit e stop-loss com base em três linhas negativas consecutivas e média móvel

SMA EMA
Data de criação: 2024-05-09 16:42:35 última modificação: 2024-05-09 16:42:35
cópia: 0 Cliques: 627
1
focar em
1617
Seguidores

Estratégia de negociação dinâmica de stop-profit e stop-loss com base em três linhas negativas consecutivas e média móvel

Visão geral

A estratégia de negociação baseia-se em um sistema de equilíbrio e de equilíbrio de três linhas contínuas para julgar os sinais de negociação. A estratégia gerencia o risco de negociação por meio de um modo dinâmico de parada e perda, com pontos de parada e perda definidos de acordo com a posição da linha média de curto prazo e a porcentagem de mudança de preço. A estratégia opera apenas em um período de tempo especificado.

Princípio da estratégia

  1. Calcule o número de iões em sequência. Quando ocorrem iões em sequência com um número especificado (default 3) é considerado que se formou um sinal múltiplo.
  2. Usar duas linhas de média para auxiliar na determinação de tendências e tempo de negociação, usando a linha de média de 10 dias e a linha de média de 200 dias por padrão. Só considere fazer mais quando o preço estiver acima da linha de média de 200 dias.
  3. Configure o ponto de parada dinâmico e o ponto de parada de perda. O ponto de parada é uma determinada porcentagem acima do preço de abertura da posição (default 1.5%) e o ponto de parada de perda é uma determinada porcentagem abaixo do preço de abertura da posição (default 1%).
  4. Outra condição de posição parada é a mudança de posição do preço em relação à linha média de 10 dias. Se houver várias posições, o preço voltará para baixo acima da linha média, então a posição parada.
  5. A estratégia só funciona dentro de um determinado período de tempo, definido de acordo com a data de início e a data de término.

Vantagens estratégicas

  1. A combinação de formas de preços e um sistema linear permite capturar melhor as oportunidades de tendências.
  2. O controle de riscos e ganhos é mantido com flexibilidade por meio de stop-loss e stop-loss dinâmicos. O stop-loss aumenta continuamente à medida que os preços aumentam, deixando os lucros correndo; o stop-loss limita o máximo de perdas.
  3. A mudança de posição da média de curto prazo pode ser usada como sinal de equilíbrio para responder rapidamente a uma reversão súbita do preço.
  4. Especificar o horário de negociação, evitando a negociação em períodos especiais, como fechamento do mercado ou feriados, reduzindo o risco.

Risco estratégico

  1. A forma de uma linha negativa contínua não pode determinar completamente a reversão da tendência, podendo ocorrer uma situação em que o preço continue a subir após uma linha negativa contínua, o que pode levar à falha da estratégia.
  2. O ponto de parada de perda de parada de porcentagem fixa pode não ser capaz de lidar com as fortes oscilações do mercado. Quando a tendência é forte, o ponto de parada de parada pode ser definido muito baixo, resultando em saída antecipada; Quando a oscilação aumenta, o ponto de parada de perda pode ser muito próximo, resultando em perdas frequentes.
  3. O julgamento da posição da linha média de curto prazo pode ser atrasado, especialmente quando os preços mudam rapidamente, e pode ter perdido o melhor momento de posição.
  4. A falta de estratégia de gestão de posições e controle de risco, o ponto de entrada e o tamanho da posição são fixos, o que pode levar a um risco excessivo de uma única transação.

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

  1. Pode-se introduzir mais indicadores técnicos para auxiliar o julgamento, como MACD, RSI, etc., aumentando a confiabilidade do sinal.
  2. Otimizar o cálculo de pontos de parada e de perda, como o uso de ATR ou taxa de flutuação para ajuste dinâmico, ou em combinação com a resistência de suporte para a configuração.
  3. Para um sinal de posição sem risco, pode-se considerar o uso de mais condições de confirmação, como mudanças no volume de transação, proporção de posse de cabeça vazia, etc., para evitar sinais errados.
  4. Introduzir medidas de gerenciamento de posições e controle de risco, como o tamanho da posição em cada transação de acordo com o saldo da conta e o nível de risco, definir limites de risco globais, etc.
  5. Para as configurações de parâmetros, como o número de linhas contínuas, o ciclo médio, etc., pode-se realizar testes de otimização para encontrar a melhor combinação de parâmetros.

Resumir

A estratégia de negociação é baseada em um sistema de linha de equilíbrio para determinar oportunidades de negociação de tendências, e usa o stop loss dinâmico e a mudança de posição da linha de equilíbrio em curto prazo para controlar o risco. A estratégia é clara e adequada para os comerciantes que entendem a tendência de médio e longo prazo.

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

//@version=5
strategy("Estrategia de Trading", overlay=true)

// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)

// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)

// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")

// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)

// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)

// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre

// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
    cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
    cierres_decrecientes_consecutivos := 0

es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes

// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)

// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)

// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
    strategy.close("Long")

// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)

// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)

// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)