Estrategia de promedio móvil con objetivo de ganancia dinámica

El autor:¿ Qué pasa?, Fecha: 2023-09-18 21:46:47
Las etiquetas:

Resumen general

Esta estrategia identifica la tendencia utilizando promedios móviles, obtiene ganancias en múltiplos ATR fijos y mide dinámicamente las posiciones basadas en ATR. Su objetivo es aprovechar las tendencias para obtener ganancias mientras controla el riesgo.

Principios

La estrategia utiliza una media móvil simple de longitud N para determinar la dirección de la tendencia.

Después de la entrada, el objetivo de ganancia se establece en múltiplos ATR fijos del precio de entrada, por ejemplo, objetivo de ganancia = precio de entrada + ATR * Factor para compras largas.

La estrategia también mide las posiciones inversamente a ATR, que representa la volatilidad del mercado.

Ventajas

  1. El MA identifica la tendencia y permite seguirla.

  2. ATR obtiene ganancias de las tendencias evitando las reversiones.

  3. El dimensionamiento dinámico de las posiciones gestiona el riesgo de acuerdo con la volatilidad del mercado.

  4. Factor de ganancia y parámetros de dimensionamiento personalizables.

  5. El stop loss puede limitar aún más los riesgos.

Riesgos y mitigaciones

  1. Los parámetros más sensibles pueden ser probados.

  2. Las fluctuaciones de ATR pueden dar lugar a objetivos de ganancias demasiado pequeños o grandes.

  3. La volatilidad excesiva conduce a posiciones demasiado pequeñas que limitan las ganancias.

  4. La falta de pérdidas de parada puede aumentar la pérdida de parada en movimiento.

  5. La mala selección de símbolos, por ejemplo, activos de baja volatilidad, puede conducir a un bajo rendimiento.

Oportunidades de mejora

  1. Prueba diferentes combinaciones de parámetros para obtener ajustes óptimos.

  2. Mejorar la lógica de entrada añadiendo otros indicadores como filtro.

  3. Investigue la toma de ganancias dinámicas y detenga las pérdidas para flexibilidad.

  4. Gestionar posiciones basadas en indicadores de volatilidad.

  5. Añadir un mecanismo de reingreso para prolongar el período de retención.

Resumen de las actividades

La estrategia identifica la tendencia con promedios móviles, toma ganancias en múltiplos de ATR y posiciones de tamaños por ATR. Tiene cierta tendencia después de la capacidad y el riesgo se puede ajustar a través de parámetros. Pero existen problemas de selección de parámetros y objetivos de ganancias. Se pueden hacer mejoras adicionales a través de la optimización, stop loss para hacer que la estrategia sea más robusta.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-09-17 00:00:00
period: 5m
basePeriod: 1m
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/
// © dongyun

//@version=4
strategy("利润目标止损的移动平均线", overlay=true)

period = input(80,'')
ptper = input(252,'')
ptfactor = input(12,'')
sizeper = input(20, '')

trend = 0.0
signal = 0
size = 1.0
investment = 100000
atrange = 0.0
ptrange = 0.0
stoph = 0.0
stopl = 0.0


if sizeper != 0
	atrange := atr(sizeper)

if atrange == 0 or sizeper == 0 
	size := 1
else
	size := investment/atrange * 0.1

trend := sma(close,period)


if signal != 1 and nz(trend[1]) < nz(trend[2]) and trend > nz(trend[1])
	strategy.entry('long',strategy.long, comment='open_long')
	signal := 1
else
    signal := nz(signal[1])
    
if signal != -1 and nz(trend[1]) > nz(trend[2]) and trend < nz(trend[1])
	strategy.entry('short',strategy.short, comment='open_short')
	signal := -1
else
    if signal == 0
        signal := nz(signal[1])

ptrange := atr(ptper)

if strategy.position_size > 0
	strategy.exit("exit_long", "long", qty = strategy.position_size, limit = close + ptfactor*ptrange , comment='trail_long') 
else
	if strategy.position_size < 0
		strategy.exit("exit_short", "short", qty = abs(strategy.position_size), limit = close - ptfactor*ptrange, comment='trail_short')


Más.