Estrategia de ruptura de media móvil


Fecha de creación: 2023-09-26 16:18:37 Última modificación: 2023-09-26 16:18:37
Copiar: 0 Número de Visitas: 884
1
Seguir
1617
Seguidores

Descripción general

Una estrategia de brecha de línea media es una estrategia de negociación de línea corta que utiliza una media móvil para juzgar. La estrategia se realiza mediante la configuración de la longitud de la línea media y la operación de compra y venta cuando la línea media se rompe. Se caracteriza por su simplicidad y facilidad de manejo.

Principio de estrategia

La estrategia se basa en el establecimiento de dos promedios móviles, la línea rápida y la línea lenta, para determinar el movimiento de los precios. La línea rápida tiene un período corto y es sensible a la reacción; la línea lenta tiene un período largo y es suave.

El código define el período de línea rápida shortPeriod y el período de línea lenta longPeriod mediante la configuración de los parámetros de entrada. Luego se calculan los valores de las dos líneas medias shortSMA y longSMA.

Cuando la media de corto período se rompe la media de largo período de abajo hacia arriba, indica que el movimiento de los precios se ha invertido a la baja, hacer más; cuando la media de corto período se rompe la media de largo período de arriba hacia abajo, indica que el movimiento de los precios se ha invertido a la baja, hacer vacío.

La mayoría de las personas que están en el mercado de divisas están en el mercado de divisas.

快线由下向上突破慢线
快线>慢线

Para entrar en las condiciones de una posición en corto plazo:

快线由上向下跌破慢线  
快线<慢线

Además, la estrategia también establece parámetros para controlar el riesgo, como el stop loss, el stop loss y el monto.

Ventajas estratégicas

  • Es fácil de manejar y para principiantes.
  • La línea media tiene cierta capacidad de filtrado de tendencia, que puede filtrar parte del ruido
  • Flexible para ajustar el ciclo de la línea media para adaptarse a diferentes operaciones de ciclo
  • Se puede configurar previamente el punto de parada de pérdidas para controlar el riesgo

Riesgo estratégico

  • Es probable que se produzcan falsas brechas que produzcan señales falsas.
  • No es adecuado para mercados con fuertes fluctuaciones, y se debe elegir cuando la tendencia es evidente
  • El sistema de línea media está atrasado y la hora de entrada es incorrecta
  • El cambio de tendencia no puede filtrarse eficazmente

Prevención de riesgos:

  • Filtrar en combinación con otros indicadores para evitar falsas señales
  • Seleccione cuando la tendencia es evidente y no en un mercado convulso
  • Ajuste adecuado de los parámetros de la línea media para optimizar el tiempo de entrada
  • La liberación adecuada del margen de amortización para evitar la fijación

Dirección de optimización de la estrategia

  • Optimización de los parámetros de un sistema lineal para encontrar la combinación óptima de ciclos
  • Añadir otros indicadores de juicio, como el canal BOLL, KD, etc.
  • Optimizar las estrategias de gestión de posiciones para maximizar los beneficios
  • Parámetros para probar la robustez de diferentes variedades de contratos
  • Aumentar los algoritmos de aprendizaje automático para optimizar el uso de grandes datos

Resumir

El concepto de la estrategia de ruptura de la línea media es simple, y es fácil de manejar. Pero también hay algunos problemas, como ruptura falsa, retraso, etc. Se puede mejorar mediante la optimización de parámetros, la combinación de otros indicadores, etc. En general, la estrategia es adecuada para la estrategia de la primera etapa de los principiantes, y después de dominar los principios básicos, se puede optimizar aún más y mejorar la rentabilidad.

Código Fuente de la Estrategia
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © YohanNaftali

//@version=5

///////////////////////////////////////////////////////////////////////////////
// Heikin Ashi Candle Startegy
// ver 2021.12.29
// © YohanNaftali
// This script composed by Yohan Naftali for educational purpose only 
// Reader who will use this signal must do own research
///////////////////////////////////////////////////////////////////////////////
strategy(
     title = 'Heikin Ashi Candle Startegy Long',  
     shorttitle = 'HA Strategy Long',  
     format = format.price,
     precision = 0,
     overlay = true)

// Input
validationPeriod = input.int( 
     defval = 3, 
     title = 'Validation Period', 
     group = 'Candle')

qtyOrder = input.float(
     defval = 1.0,
     title = 'Qty', 
     group = 'Order')

maxActive = input.float(
     defval = 1.0,
     title = 'Maximum Active Open Position', 
     group = 'Order')

// Long Strategy
tpLong = input.float(
     defval = 1,
     title = "Take Profit (%)",
     minval = 0.0, 
     step = 0.1, 
     group = "Long") * 0.01

slLong = input.float(
     defval = 25,
     title = "Stop Loss (%)", 
     minval=0.0, 
     step=0.1,
     group="Long") * 0.01

trailingStopLong = input.float(
     defval = 0.2,
     title = "Trailing Stop (%)",
     minval = 0.0, 
     step = 0.1,
     group = 'Long') * 0.01

// Calculation
haTicker = ticker.heikinashi(syminfo.tickerid)
haClose = request.security(haTicker, timeframe.period, close)
haOpen = request.security(haTicker, timeframe.period, open)

// Long
limitLong = tpLong > 0.0 ? strategy.position_avg_price * (1 + tpLong) : na
stopLong = slLong > 0.0 ? strategy.position_avg_price * (1 - slLong) : na
float trailLong = 0.0
trailLong := if strategy.position_size > 0
    trailClose = close * (1 - trailLong)
    math.max(trailClose, trailLong[1])
else
    0

isGreen = true
for i = 0 to validationPeriod-1
    isGreen := isGreen and haClose[i] > haOpen[i]        
isLong = isGreen and haClose[validationPeriod] < haOpen[validationPeriod]



plot(
     limitLong,
     title = 'Limit', 
     color = color.rgb(0, 0, 255, 0), 
     style = plot.style_stepline,
     linewidth = 1)

plot(
     trailLong,
     title = 'Trailing', 
     color = color.rgb(255, 255, 0, 0), 
     style = plot.style_stepline,
     linewidth = 1)

plot(
     stopLong,
     title = 'Stop', 
     style = plot.style_stepline,
     color = color.rgb(255, 0, 0, 0), 
     linewidth = 1)

// plotshape(
//      isLong, 
//      title = 'Entry', 
//      style = shape.arrowup, 
//      location = location.belowbar, 
//      offset = 1, 
//      color = color.new(color.green, 0), 
//      text = 'Long Entry',
//      size = size.small)

// Strategy
strategy.risk.max_position_size(maxActive)
strategy.risk.allow_entry_in(strategy.direction.long)

strategy.entry(
     id = "Long", 
     direction = strategy.long, 
     qty = qtyOrder,  
     when = isLong,       
     alert_message = "LN")
if (strategy.position_size > 0)
    strategy.exit(
         id = "Long Exit",
         from_entry = "Long",
         limit = limitLong,
         stop = stopLong,
         trail_price = trailLong,
         alert_message = "LX")