Estrategia de seguimiento de tendencia de cruce de medias móviles


Fecha de creación: 2024-01-03 17:01:38 Última modificación: 2024-01-03 17:01:38
Copiar: 0 Número de Visitas: 588
1
Seguir
1621
Seguidores

Estrategia de seguimiento de tendencia de cruce de medias móviles

Descripción general

La estrategia determina la tendencia de los precios mediante el cálculo de los cruces de las dos medias, y en combinación con ciertos límites de parámetros para emitir señales de compra y venta. Se divide en tres partes principales: primero, para determinar la tendencia de los precios mediante el cálculo de los cruces de las medias rápidas y las medias lentas; segundo, en combinación con ciertos límites de parámetros para evitar transacciones erróneas; y tercero, para controlar el riesgo mediante el uso de paradas de pérdidas.

Principio de estrategia

El núcleo de esta estrategia es calcular la media rápida y la media lenta. La media rápida tiene un parámetro de media media de la mitad del ciclo de la media y es más sensible al cambio de precio de reacción. La media lenta tiene un parámetro de media media de ciclo de la media y el cambio de precio de reacción es más estable.

Además, la estrategia también establece ciertos parámetros para evitar transacciones erróneas. Si se establece un umbral de decisión, solo se emitirá una señal de negociación cuando el diferencial de la línea media rápida y lenta supere un cierto margen. Los parámetros de confianza se utilizan para filtrar las fluctuaciones y solo se emitirán señales cuando las fluctuaciones de precios alcancen un cierto grado.

Finalmente, la estrategia utiliza el stop loss para controlar el riesgo. Si el openprofit es menor que el stop loss, se retira de la posición, y si supera el stop loss, se retira de la posición, controlando efectivamente la pérdida individual.

Análisis de las ventajas

La mayor ventaja de esta estrategia es la combinación de indicadores de línea recta para determinar la tendencia de los precios y las características de la fluctuación. La tendencia de precios de doble línea recta cruzada es un método de indicador técnico clásico y eficaz, que puede capturar con precisión las tendencias después de optimizar los parámetros.

Además, la configuración de parámetros como el umbral de decisión, el stop loss y el stop loss también pueden reducir considerablemente el riesgo de negociación y evitar la persecución de los altos y bajos.

Análisis de riesgos

El principal riesgo de esta estrategia es la posibilidad de que los indicadores de doble línea media emitan una señal errónea. La línea media rápida y la línea media lenta son medias móviles ponderadas, la reacción a los eventos inesperados es lenta y puede perderse la reversión de precios a corto plazo. En este caso, se debe realizar un doble filtrado en función del parámetro de confianza.

Además, la configuración incorrecta de los puntos de parada de la parada también aumenta el riesgo. Los puntos de parada demasiado altos o demasiado bajos pueden causar pérdidas superiores a las esperadas. Esto requiere establecer parámetros razonables según las características y la volatilidad de las diferentes variedades.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimizar el ciclo de la línea media, con la configuración de la línea media adaptativa, para que pueda modelar mejor las fluctuaciones de precios en diferentes períodos;

  2. Configurar un mecanismo de seguimiento de la dinámica de los paros y pérdidas para permitir cambios dinámicos en los paros y pérdidas mediante el cálculo de la tasa de fluctuación en tiempo real;

  3. El aumento de modelos de aprendizaje automático para determinar la dirección de las tendencias de precios, el uso de más datos históricos para determinar la dirección actual de los precios, y la reducción de señales erróneas.

Resumir

La estrategia en general es una estrategia de comercio de tendencias clásica, simple y efectiva. Utiliza tendencias de determinación de trayectorias de doble línea recta, configuración de parámetros para el control de riesgo, es altamente configurable y se aplica a varias variedades de comercio. Si se pueden introducir métodos de juicio más inteligentes, como el aprendizaje automático, el efecto general será mejor y vale la pena investigar más.

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

//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Trade Signal", shorttitle="Trade Alert", overlay=true )
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", type=float, step=0.0001)
SL = input(defval=-10.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=100.00, title="Target Point in $", type=float, step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
confidence=(request.security(syminfo.tickerid, '5', close[1])-request.security(syminfo.tickerid, '60', close[1]))/request.security(syminfo.tickerid, '60', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
    strategy.entry("Short",strategy.short)

//alerts
alertcondition(closelong, title='Close Buy Position', message='Close Buy Position')
alertcondition(closeshort, title='Close Short Position', message='Close Short Position')
alertcondition(longCondition, title='Buy Signal', message='Buy Signal Alert')
alertcondition(shortCondition, title='Sell Signal', message='Sell Signal Alert')

//a1=plot(n1,color=c)
//a2=plot(n2,color=c)plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
//plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green,  title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red,  title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart