En la carga de los recursos... Cargando...

Estrategias de negociación de tendencias basadas en líneas multilíneas

El autor:¿ Qué pasa?, fecha: 2024-05-11 17:32:49
Las etiquetas:La SMA- ¿Qué es?

基于多均线的趋势交易策略

Resumen

Este artículo presenta una estrategia de negociación de tendencias basada en múltiples medias móviles. Esta estrategia se aplica principalmente al mercado de futuros del NASDAQ para capturar la tendencia alcista del mercado mediante el análisis de la posición del precio con respecto a las medias, largas y cortas medias.

La estrategia utiliza tres simples medias móviles (SMA): largo (default 200 cycles), medio (default 21 cycles) y corto (default 9 cycles). La estrategia dispara una señal de compra cuando el precio está por encima de las medias largo y mediano plazo y se cruza en la mediana corto. La estrategia también establece puntos fijos de frenado y stop loss para controlar el riesgo. Además, la estrategia estabiliza todas las posiciones a las 17:00 de cada día de negociación.

Principios estratégicos

  1. Calcula la media móvil simple de largo plazo (default 200 ciclos), mediano plazo (default 21 ciclos) y corto plazo (default 9 ciclos).

  2. Determinar si el precio actual está por encima de la línea media a largo plazo y la línea media a mediano plazo.

  3. Para determinar si el precio actual se cruza por encima de la línea media a corto plazo.

  4. Cuando las condiciones 2 y 3 se cumplen al mismo tiempo, y no hay actualmente ninguna tenencia, se dispara la señal de compra.

  5. Después de la compra, se establece un punto fijo de parada y parada de pérdida y se estabiliza cuando el precio toca el punto de parada o parada de pérdida.

  6. Las posiciones se liquidan a las 17:00 de cada día de trading.

Las ventajas estratégicas

  1. Sencilla y fácil de entender: La estrategia está basada en una media móvil, y el principio es simple, fácil de entender e implementar.

  2. Seguimiento de tendencias: las estrategias pueden capturar de manera efectiva la tendencia alcista del mercado mediante el análisis de la ubicación de los precios en relación con las líneas estacionales de diferentes ciclos.

  3. Control de riesgos: la estrategia establece un número fijo de puntos de contención y de contención de pérdidas, lo que ayuda a controlar el riesgo de una sola operación.

  4. Posicionamiento automático: la estrategia se posiciona automáticamente en un momento específico de cada día de negociación, evitando el riesgo de la noche a la mañana.

El riesgo estratégico

  1. Optimización de parámetros: el rendimiento de las estrategias puede ser sensible a los parámetros del ciclo de la línea media y debe optimizarse según diferentes mercados y variedades.

  2. Mercado turbulento: En un entorno turbulento, las señales de cruce frecuentes pueden causar un mal desempeño estratégico.

  3. Riesgo de punto de deslizamiento: en situaciones de fuerte volatilidad del mercado, los frenos y pérdidas de puntos fijos pueden no ejecutarse como se esperaba, lo que genera un riesgo de punto de deslizamiento.

Dirección de optimización estratégica

  1. Dinámico stop-loss stop: se ajusta dinámicamente el stop-loss y el stop-loss punto de acuerdo con la volatilidad del mercado o el movimiento de los precios para optimizar el riesgo-beneficio.

  2. Filtración de tendencias: Introducción de otros indicadores técnicos, como ADX, etc., para confirmar la intensidad de la tendencia, filtrando las falsas señales en los mercados de oscilación.

  3. Adaptación a múltiples variedades: mejora de la estrategia para adaptarse a diferentes variedades de futuros y características del mercado.

  4. Gestión de fondos: introducir reglas de gestión de fondos más complejas, como la gestión de posiciones y el control de riesgos, para mejorar la solidez de las estrategias.

Resumen

La estrategia de negociación de tendencias basada en múltiples líneas uniformes es una estrategia de seguimiento de tendencias simple y fácil de entender que captura la tendencia alcista del mercado mediante el análisis de la posición de los precios en relación con las diferentes líneas uniformes del ciclo. La estrategia establece un número de puntos fijos de stop loss y se estabiliza automáticamente a determinadas horas del día para controlar el riesgo. Sin embargo, la estrategia puede funcionar mal en mercados turbulentos y enfrenta problemas como la optimización de parámetros y el riesgo de puntos de deslizamiento.


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Médias Móveis de MarcosJR", overlay=true)

// Inputs para data inicial e final
start_year = input.int(2020, title="Ano Inicial")
start_month = input.int(1, title="Mês Inicial")
start_day = input.int(1, title="Dia Inicial")

end_year = input.int(2020, title="Ano Final")
end_month = input.int(12, title="Mês Final")
end_day = input.int(31, title="Dia Final")

// Convertendo dia, mês e ano para timestamp
start_date = timestamp(start_year, start_month, start_day, 00, 00)
end_date = timestamp(end_year, end_month, end_day, 23, 59)

// Condição para verificar se a data está dentro do intervalo especificado
date_within_range = true

// Parâmetros para os períodos das médias móveis
ma_short_period = input.int(9, title="MA Curta")
ma_medium_period = input.int(21, title="MA Média")
ma_long_period = input.int(200, title="MA Longa")

// Definindo médias móveis
ma_short = ta.sma(close, ma_short_period)
ma_medium = ta.sma(close, ma_medium_period)
ma_long = ta.sma(close, ma_long_period)

// Plotando as médias móveis no gráfico com espessura aumentada
plot(ma_short, color=color.blue, title="MA Curta", linewidth=2)
plot(ma_medium, color=color.orange, title="MA Média", linewidth=2)
plot(ma_long, color=color.red, title="MA Longa", linewidth=2)

// Verificando se o preço está acima das médias móveis
above_ma_long = close > ma_long
above_ma_medium = close > ma_medium

// Verificando se o preço tocou na média móvel curta
touch_ma_short = ta.crossover(close, ma_short)

// Condições de compra
buy_condition = date_within_range and above_ma_long and above_ma_medium and touch_ma_short

// Sinais de entrada e saída de compra
var float entry_price = na
if (buy_condition and strategy.opentrades == 0) // Verifica se não há operações em andamento
    entry_price := close // Define o preço de entrada ao comprar

// Parâmetros para o tamanho do stop gain e stop loss em pontos
stop_gain_points = input.int(100, title="Stop Gain (pontos)", minval=1)
stop_loss_points = input.int(100, title="Stop Loss (pontos)", minval=1)

// Calcular o preço de saída alvo (Stop Gain) e de stop loss
target_price = entry_price + stop_gain_points * syminfo.mintick
stop_loss_price = entry_price - stop_loss_points * syminfo.mintick

// Sair da operação de compra quando o preço atingir o stop gain ou stop loss
if (strategy.position_size > 0)
    strategy.exit("Venda", "Compra", limit=target_price, stop=stop_loss_price)

// Sinais de entrada de compra
if (buy_condition and strategy.opentrades == 0) // Verifica se não há operações em andamento
    strategy.entry("Compra", strategy.long)

// Plotando setas de compra
plotshape(series=buy_condition, title="Sinal de Compra", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Função para verificar se é 17:00 do mesmo dia
is_17_oclock_same_day = hour == 17 and minute == 0 and hour[1] < 17

// Sair de todas as operações às 17:00 do mesmo dia
if (is_17_oclock_same_day)
    strategy.close_all()


Contenido relacionado

Más contenido