Estratégia de negociação baseada em três velas pretas consecutivas e médias móveis duplas

SMA SMA200
Data de criação: 2024-05-14 17:30:35 última modificação: 2024-05-14 17:30:35
cópia: 3 Cliques: 506
1
focar em
1617
Seguidores

Estratégia de negociação baseada em três velas pretas consecutivas e médias móveis duplas

Visão geral

A estratégia é uma estratégia de negociação baseada em três linhas negativas e duas linhas de equilíbrio consecutivas. A principal idéia da estratégia é: abrir uma posição maior quando três linhas negativas ocorrem em sequência e o preço de fechamento atual é superior à média de 200 dias; e fechar uma posição mais baixa quando a média de 10 dias cruza com o preço ou quando o preço atinge o ponto de parada ou de perda.

Princípio da estratégia

  1. Calcule o número de níveis consecutivos. Se o preço de fechamento cair, o número de níveis consecutivos é adicionado a 1; caso contrário, o número de níveis consecutivos é reajustado para 0.
  2. Calcule a média de 10 dias e a média de 200 dias.
  3. O preço de fechamento atual é superior à média de 10 dias.
  4. Para avaliar se os critérios de entrada são cumpridos: três linhas negativas consecutivas, o tempo atual está dentro do intervalo especificado e o preço de fechamento atual é superior à média de 200 dias.
  5. Para avaliar se a linha de 10 dias cruza com o preço, ou se o preço atinge o ponto de parada ou de perda.
  6. Se você atender às condições de entrada e não tiver uma posição atual, abra uma posição extra.
  7. Se você tiver condições de saída e possui uma posição atual, a posição será liquidada.

Vantagens estratégicas

  1. A análise de tendências de preços e de linhas médias permite aproveitar as oportunidades em situações de tendências e de turbulências.
  2. A configuração do Stop Loss permite controlar o risco de forma eficaz.
  3. Limitar o período de tempo em que a estratégia é executada, evita riscos excessivos em determinados períodos.
  4. A lógica do código é clara, legível, fácil de entender e de otimizar.

Risco estratégico

  1. O julgamento de uma onda contínua pode ser muito simples e pode provocar sinais errados.
  2. A configuração de stop loss pode não ser flexível o suficiente e pode levar a negociações frequentes ou a oportunidades perdidas em situações de grande volatilidade.
  3. A falta de consideração de fatores extraordinários, como emergências e notícias importantes, pode levar a riscos adicionais.

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

  1. Pode-se considerar a introdução de mais indicadores técnicos, como RSI, MACD, etc., para construir uma lógica de julgamento de sinais mais robusta.
  2. Pode-se otimizar a configuração de stop loss, introduzindo stop loss dinâmico ou stop loss baseado em indicadores de taxa de flutuação, como o ATR.
  3. Pode-se estudar o impacto de diferentes configurações de parâmetros na estratégia, como raízes negativas contínuas, períodos médios, etc., em busca da combinação ideal de parâmetros.
  4. Pode ser incluído no gerenciamento de posições, ajustando as posições de acordo com a dinâmica de diferentes ambientes de mercado, aumentando a eficiência do uso de fundos.

Resumir

A estratégia, por meio de uma combinação de linha de fundo e linha de equilíbrio, constrói um modelo de negociação simples e fácil de entender. A estratégia, ao mesmo tempo em que capta oportunidades de tendência, também estabelece algumas medidas de controle de risco. No entanto, a estratégia ainda tem espaço para otimização adicional em termos de julgamento de sinais e controle de risco.

Código-fonte da estratégia
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 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)