Estrategia de apertura unilateral basada en media móvil


Fecha de creación: 2023-12-25 14:09:49 Última modificación: 2023-12-25 14:09:49
Copiar: 10 Número de Visitas: 559
1
Seguir
1623
Seguidores

Estrategia de apertura unilateral basada en media móvil

Descripción general

Esta estrategia permite abrir posiciones unilaterales mediante el cálculo de diferentes tipos de medias móviles para determinar la dirección de la tendencia de los precios.

Principio de estrategia

La estrategia permite elegir entre 7 diferentes tipos de promedios móviles, incluidos los promedios móviles simples (SMA), los promedios móviles de índice (EMA), los promedios ponderados por volumen de transacción (VWMA), los promedios móviles de doble índice (DEMA), los promedios móviles de tres índices (TEMA), los promedios móviles adaptados de Kaufman (KAMA) y la línea media del canal de precios. La dirección de la tendencia de los precios se determina calculando la relación entre el promedio móvil elegido y el precio de liquidación.

Cuando el precio de cierre rompe la media móvil de abajo hacia arriba, considere que es una tendencia alcista y abra más posiciones; cuando el precio de cierre rompe la media móvil de arriba hacia abajo, considere que es una tendencia bajista y abra posiciones en blanco. De esta manera, se puede capturar el punto de inflexión de la tendencia de los precios y abrir posiciones unilaterales.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Se pueden elegir varios tipos de medias móviles, con flexibilidad para adaptarse a diferentes variedades y períodos.

  2. La apertura de una posición unilateral puede controlar el riesgo de manera efectiva.

  3. La mayoría de las personas que se encuentran en el mercado de divisas tienen una posición en el mercado de divisas.

  4. Es fácil de entender y hacer.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Cuando los precios oscilan cerca de la media móvil, se producen múltiples señales erróneas y se abren posiciones invertidas. Se puede establecer un stop loss adecuado para controlar el riesgo.

  2. No se puede evitar por completo el riesgo de que los precios suban o bajen rápidamente. Se pueden combinar con otros indicadores para determinar las señales de tendencia.

  3. Los analistas deben elegir los parámetros de las medias móviles adecuados, y los parámetros inadecuados pueden generar un retraso en las señales de negociación.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. En combinación con otros indicadores técnicos para determinar las señales de tendencia, como MACD, RSI, etc., se forma una cartera de operaciones.

  2. Añadir la lógica de stop loss. Mover el stop loss o colgar el stop loss.

  3. Para probar y optimizar los parámetros, seleccione la combinación de parámetros más adecuada. Por ejemplo, el ciclo de la media móvil, el tipo de media móvil, etc.

  4. Se pueden considerar estrategias de entrada de tipo de transacción instantánea para el seguimiento de la tendencia.

Resumir

La estrategia se basa en una media móvil para determinar la dirección de la tendencia del precio y abrir posiciones unilaterales. Su uso es simple y fácil de implementar, lo que permite controlar el riesgo de manera efectiva. Sin embargo, también puede haber señales erróneas y el riesgo de abrir posiciones al revés.

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

//@version=2
strategy(title = "Noro's MAs Tests v1.1", shorttitle = "MAs tests 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")
len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")
anti = input(true, defval = true, title = "Antipila")

//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)

//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3

//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0

plot(ma, color = blue, linewidth = 3, transp = 0)

trend = anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]

longCondition = trend == 1 and trend[1] == -1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)