
La estrategia de entrada de línea de cruce de medias doradas es una estrategia para generar señales de negociación basadas en una señal de cruce o de penetración de medias móviles. Cuando se penetra en una media móvil de corto plazo por encima de una media móvil de largo plazo, se produce una señal de cruce de medias doradas de múltiples cabezas. Cuando se penetra en una media móvil de corto plazo por debajo de una media móvil de largo plazo, se produce una señal de cruce de muerte en blanco.
La estrategia de entrada de la línea de la mediana cruzada dorada le permite elegir libremente los parámetros de la mediana cruzada. Para mostrar visualmente, he trazado varias medias móviles de Fibonacci, desde 1 hasta 987, pero para su uso real, solo se necesita seleccionar una pequeña cantidad de medias, observar si hay una señal de cruce evidente, y luego introducir estos parámetros en la configuración de posición larga o corta.
Por ejemplo, la entrada de posición larga o corta en la estrategia es:
Señales múltiples: 34 días EMA cruzado 144 días EMA
Señales de cabeza vacía:
EMA de 144 días bajo SMA de 55 días
Se puede ver que la estrategia puede combinar libremente los parámetros de 4 líneas medias diferentes, eligiendo tanto EMA como SMA.
Color por defecto: La línea media ascendente es verde La línea media descendente está en rojo
La configuración de línea de Fibonacci de visualización por defecto: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181 línea promedio diaria
La línea de visualización predeterminada es: La línea media diaria de 50, 100, 150, 200
La posición larga o corta por defecto: Señales múltiples: 34 días EMA cruzado 144 días EMA
Señales de cabeza vacía: EMA de 144 días bajo SMA de 55 días
La lógica central de esta estrategia es generar señales de negociación basadas en el cruce de dos medias móviles.
La media móvil es un indicador técnico que se utiliza para analizar las tendencias del mercado. Calcula el valor promedio de los precios de cierre durante un período determinado y es capaz de filtrar eficazmente las fluctuaciones del mercado. La media móvil se divide en una media móvil simple (SMA) y una media móvil de índice (EMA).
El SMA es un promedio aritmético simple de los precios de cierre de un período. El EMA es un promedio móvil de cierre de precios de cierre, dando mayor peso a los precios más recientes. El EMA responde más rápidamente a los cambios de precios.
Cuando el corto promedio cruza el largo promedio, se considera que la tendencia del mercado se convierte en positiva, produciendo una señal de compra. Esto se conoce como un cruce de oro. Por el contrario, cuando el corto promedio cruza el largo promedio por debajo del corto promedio, se considera que la tendencia del mercado se convierte en negativa, produciendo una señal de venta. Esto se conoce como un cruce de muerte.
La flexibilidad de esta estrategia es que se pueden configurar los parámetros de 4 líneas medias de forma independiente. El parámetro predeterminado es el de 144 días de EMA en el EMA de 34 días para señales múltiples y 144 días de EMA en el EMA de 55 días para señales sin cabeza. Estos parámetros se pueden configurar libremente en la caja de entrada.
Además, la estrategia traza promedios móviles de múltiples series de Fibonacci, lo que permite observar el cambio de tendencia desde más dimensiones de tiempo. También traza las medias de 50 días, 100 días, 150 días y 200 días de uso común. Estas medias son de referencia, y es importante entrar en los parámetros de medias cruzadas que se ingresan en el cuadro de configuración de posiciones largas o cortas.
Las ventajas de esta estrategia basada en el cruce equilátero son:
El uso de medias móviles puede filtrar el ruido del mercado y identificar la dirección de la tendencia
Las señales de transacción procedentes de cruces de línea media tienen cierta fiabilidad
Se puede elegir libremente la combinación de la línea media larga y corta, los parámetros de optimización
La combinación de líneas medias de diferentes períodos permite identificar tendencias en una dimensión temporal más grande.
Se pueden usar simultáneamente EMA y SMA, seleccionando los parámetros óptimos según las características de la variedad
Imágenes visualmente visibles, claramente visibles a través de una cruz de líneas uniformes multicolores
La aplicación es sencilla, fácil de aprender y adecuada para los principiantes.
Aplicación flexible en diferentes variedades, con cierta universalidad
La estrategia también tiene sus riesgos:
En un mercado convulso, la línea media puede generar una gran cantidad de señales de incertidumbre, lo que lleva a operaciones de línea demasiado corta, aumentando la frecuencia de las operaciones y la carga de las comisiones.
Los parámetros seleccionados no son adecuados y pueden causar señales erróneas. Se debe elegir la combinación de líneas medias largas y cortas adecuada y verificar el efecto.
En el caso de una fuerte reversión de la tendencia, la señal de cruce de línea media se retrasa y no puede responder a los cambios en el precio a tiempo.
El cruce de la línea media no puede evitar las pérdidas por completo, por lo que es necesario establecer un punto de parada razonable.
Se debe evitar la adaptación de la curva causada por la optimización excesiva. Se debe probar la estabilidad de los parámetros en diferentes ciclos de mercado.
La estrategia puede ser optimizada en los siguientes aspectos:
Prueba diferentes combinaciones de medias de longitud y longitud para encontrar el mejor parámetro, que se puede medir repetidamente en base a los datos históricos.
Trate de ajustar el tipo de línea media y compare las diferencias de efecto entre SMA y EMA. La tendencia de la variedad es más evidente para elegir SMA, la fluctuación de la variedad es más violenta para elegir EMA.
En combinación con otros indicadores como KDJ, MACD y otros, se puede filtrar falsas señales para mejorar la calidad de la señal.
Aumentar las estrategias de stop loss para controlar el riesgo de pérdidas individuales. Se puede establecer un stop loss móvil o un stop loss de seguimiento.
Optimizar las estrategias de gestión de fondos, como ajustar las posiciones en función de las retiradas, etc., para controlar la apertura de riesgo general.
Prueba la estabilidad en diferentes variedades y en diferentes ciclos, evalúa la robustez de los parámetros. Si es necesario, se pueden ajustar los parámetros de la variedad.
La estrategia de entrada de línea media cruzada en oro es una estrategia de seguimiento de tendencias de alta fiabilidad en general. Utiliza una simple y intuitiva línea media cruzada como señal de negociación, que se puede adaptar a diferentes variedades mediante la optimización de los parámetros.
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Options360 : Fibonacci MAI (Moving Averages Input) beta 10/15/22
// © Options360 original public release = 2/25/23
// * This script uses altered pieces of code from my @Options360 "Fibonacci MA7" indicator*
// 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811
////
strategy(title="Fibonacci Moving Averages Input", shorttitle = "FibMAI", overlay=true)
src = input(ohlc4, 'source')
//
string GRP = "Long or Short Settings"
exponential1 = input(true, title="long EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP)
long = input.int(34, minval=1, title="long", tooltip="Signal Moving average long input")
long1 = exponential1 ? ta.ema(src, long) : ta.sma(src, long)
exponential2 = input(true, title="crossover EMA or SMA", tooltip="EMA checked or SMA unchecked")
longer = input.int(144, minval=1, title="crossover", tooltip="Crossed over Moving average long input")
long2 = exponential2 ? ta.ema(src, longer) : ta.sma(src, longer)
exponential3 = input(true, title="short EMA or SMA", tooltip="EMA checked or SMA unchecked")
short = input.int(55, minval=1, title="short", tooltip="Signal Moving average short input")
short1 = exponential3 ? ta.ema(src, short) : ta.sma(src, short)
exponential4 = input(false, title="crossunder EMA or SMA", tooltip="EMA checked or SMA unchecked")
shorter = input.int(144, minval=1, title="crossunder", tooltip="Crossed under Moving average short input")
short2 = exponential4 ? ta.ema(src, shorter) : ta.sma(src, shorter)
//
string GRP2 = "Visual FibMA Settings"
exponential = input(true, title="Fib EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP2)
//
smaplot11 = input (true, title="MA1")
len11 = input.int(1, minval=1, title="ma Length")
out11 = exponential ? ta.ema(src, len11) : ta.sma(src, len11)
up11 = out11 > out11[1]
down11 = out11 < out11[1]
mycolor11 = up11 ? #3cfe12 : down11 ? #ff0202 : #008eff
plot(out11 and smaplot11 ? out11 :na, title="1", color=mycolor11, linewidth=1)
smaplot18 = input (true, title="MA2")
len18 = input.int(2, minval=1, title="ma Length")
out18 = exponential ? ta.ema(src, len18) : ta.sma(src, len18)
up18 = out18 > out18[1]
down18 = out18 < out18[1]
mycolor18 = up18 ? #3cfe12 : down18 ? #ff0202 : #008eff
plot(out18 and smaplot18 ? out18 :na , title="2", color=mycolor18, linewidth=1)
smaplot13 = input (true, title="MA3")
len13 = input.int(3, minval=1, title="ma Length")
out13 = exponential ? ta.ema(src, len13) : ta.sma(src, len13)
up13 = out13 > out13[1]
down13 = out13 < out13[1]
mycolor13 = up13 ? #3cfe12 : down13 ? #ff0202 : #008eff
plot(out13 and smaplot13 ? out13 :na , title="3", color=mycolor11, linewidth=1)
smaplot9 = input (true, title="MA5")
len9 = input.int(5, minval=1, title="ma Length")
out9 = exponential ? ta.ema(src, len9) : ta.sma(src, len9)
up9 = out9 > out9[1]
down9 = out9 < out9[1]
mycolor9 = up9 ? #3cfe12 : down9 ? #ff0202 : #008eff
plot(out9 and smaplot9 ? out9 :na , title="5", color=mycolor9, linewidth=1)
smaplot8 = input (true, title="MA8")
len8 = input.int(8, minval=1, title="ma Length")
out8 = exponential ? ta.ema(src, len8) : ta.sma(src, len8)
up8 = out8 > out8[1]
down8 = out8 < out8[1]
mycolor8 = up8 ? #3cfe12 : down8 ? #ff0202 : #008eff
plot(out8 and smaplot8 ? out8 :na , title="8", color=mycolor8, linewidth=1)
smaplot7 = input (true, title="MA13")
len7 = input.int(13, minval=1, title="ma Length")
out7 = exponential ? ta.ema(src, len7) : ta.sma(src, len7)
up7 = out7 > out7[1]
down7 = out7 < out7[1]
mycolor7 = up7 ? #3cfe12 : down7 ? #ff0202 : #008eff
plot(out7 and smaplot7 ? out7 :na , title="13", color=mycolor7, linewidth=1)
smaplot = input (true, title="MA21")
len = input.int(21, minval=1, title="ma Length")
out = exponential ? ta.ema(src, len) : ta.sma(src, len)
up = out > out[1]
down = out < out[1]
mycolor = up ? #3cfe12 : down ? #ff0202 : #008eff
plot(out and smaplot ? out :na, title="21", color=mycolor, linewidth=1)
smaplot2 = input (true, title="MA34")
len2 = input.int(34, minval=1, title="ma Length")
out2 = exponential ? ta.ema(src, len2) : ta.sma(src, len2)
up2 = out2 > out2[1]
down2 = out2 < out2[1]
mycolor2 = up2 ? #3cfe12 : down2 ? #ff0202 : #008eff
plot(out2 and smaplot2 ? out2 :na , title="34", color=mycolor2, linewidth=1)
smaplot3 = input (true, title="MA55")
len3 = input.int(55, minval=1, title="ma Length")
out3 = exponential ? ta.ema(src, len3) : ta.sma(src, len3)
up3 = out3 > out3[1]
down3 = out3 < out3[1]
mycolor3 = up3 ? #3cfe12 : down3 ? #ff0202 : #008eff
plot(out3 and smaplot3 ? out3 :na, title="55", color=mycolor3, linewidth=1)
smaplot4 = input (true, title="MA89")
len4 = input.int(89, minval=1, title="ma Length")
out4 = exponential ? ta.ema(src, len4) : ta.sma(src, len4)
up4 = out4 > out4[1]
down4 = out4 < out4[1]
mycolor4 = up4 ? #3cfe12 : down4 ? #ff0202 : #008eff
plot(out4 and smaplot4 ? out4 :na , title="89", color=mycolor4, linewidth=1)
smaplot5 = input (true, title="MA144")
len5 = input.int(144, minval=1, title="ma Length")
out5 = exponential ? ta.ema(src, len5) : ta.sma(src, len5)
up5 = out5 > out5[1]
down5 = out5 < out5[1]
mycolor5 = up5 ? #3cfe12 : down5 ? #ff0202 : #008eff
plot(out5 and smaplot5 ? out5 :na, title="144", color=mycolor5, linewidth=1)
smaplot6 = input (true, title="MA233")
len6 = input.int(233, minval=1, title="ma Length")
out6 = exponential ? ta.ema(src, len6) : ta.sma(src, len6)
up6 = out6 > out6[1]
down6 = out6 < out6[1]
mycolor6 = up6 ? #3cfe12 : down6 ? #ff0202 : #008eff
plot(out6 and smaplot6 ? out6 :na , title="233", color=mycolor6, linewidth=1)
smaplot10 = input (true, title="MA377")
len10 = input.int(377, minval=1, title="ma Length")
out10 = exponential ? ta.ema(src, len10) : ta.sma(src, len10)
up10 = out10 > out10[1]
down10 = out10 < out10[1]
mycolor10 = up10 ? #3cfe12 : down10 ? #ff0202 : #008eff
plot(out10 and smaplot10 ? out10 :na , title="377", color=mycolor10, linewidth=1)
smaplot14 = input (true, title="MA610")
len14 = input.int(610, minval=1, title="ma Length")
out14 = exponential ? ta.ema(src, len14) : ta.sma(src, len14)
up14 = out14 > out14[1]
down14 = out14 < out14[1]
mycolor14 = up14 ? #3cfe12 : down14 ? #ff0202 : #008eff
plot(out14 and smaplot14 ? out14 :na , title="610", color=mycolor14, linewidth=1)
smaplot15 = input (true, title="MA987")
len15 = input.int(987, minval=1, title="ma Length")
out15 = exponential ? ta.ema(src, len15) : ta.sma(src, len15)
up15 = out15 > out15[1]
down15 = out15 < out15[1]
mycolor15 = up15 ? #3cfe12 : down15 ? #ff0202 : #008eff
plot(out15 and smaplot15 ? out15 :na , title="987", color=mycolor15, linewidth=1)
smaplot16 = input (true, title="MA1597")
len16 = input.int(1597, minval=1, title="ma Length")
out16 = exponential ? ta.ema(src, len16) : ta.sma(src, len16)
up16 = out16 > out16[1]
down16 = out16 < out16[1]
mycolor16 = up16 ? #3cfe12 : down16 ? #ff0202 : #008eff
plot(out16 and smaplot16 ? out16 :na , title="1597", color=mycolor16, linewidth=1)
smaplot17 = input (true, title="MA2584")
len17 = input.int(2584, minval=1, title="ma Length")
out17 = exponential ? ta.ema(src, len17) : ta.sma(src, len17)
up17 = out17 > out17[1]
down17 = out17 < out17[1]
mycolor17 = up17 ? #3cfe12 : down17 ? #ff0202 : #008eff
plot(out17 and smaplot17 ? out17 :na , title="2584", color=mycolor17, linewidth=1)
smaplot19 = input (true, title="MA4181")
len19 = input.int(4181, minval=1, title="ma Length")
out19 = exponential ? ta.ema(src, len19) : ta.sma(src, len19)
up19 = out19 > out19[1]
down19 = out19 < out19[1]
mycolor19 = up19 ? #3cfe12 : down19 ? #ff0202 : #008eff
plot(out19 and smaplot19 ? out19 :na , title="4181", color=mycolor19, linewidth=1)
//
string GRP3 = "Visual MA Settings"
exponential5 = input(false, title="EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP3)
smaplot50 = input (true, title="MA50")
len50 = input.int(50, minval=1, title="ma Length")
ma50 = exponential5 ? ta.ema(src, len50) : ta.sma(src, len50)
up50 = ma50 > ma50[1]
down50 = ma50 < ma50[1]
mycolor50 = up50 ? #3cfe12 : down50 ? #ff0202 : #008eff
plot(ma50 and smaplot50 ? ma50 :na , title="50", color=mycolor50, linewidth=1)
smaplot100 = input (true, title="MA100")
len100 = input.int(100, minval=1, title="ma Length")
ma100 = exponential5 ? ta.ema(src, len100) : ta.sma(src, len100)
up100 = ma100 > ma100[1]
down100 = ma100 < ma100[1]
mycolor100 = up100 ? #3cfe12 : down100 ? #ff0202 : #008eff
plot(ma100 and smaplot100 ? ma100 :na , title="100", color=mycolor100, linewidth=1)
smaplot150 = input (true, title="MA150")
len150 = input.int(150, minval=1, title="ma Length")
ma150 = exponential5 ? ta.ema(src, len150) : ta.sma(src, len150)
up150 = ma150 > ma150[1]
down150 = ma150 < ma150[1]
mycolor150 = up150 ? #3cfe12 : down150 ? #ff0202 : #008eff
plot(ma150 and smaplot150 ? ma150 :na , title="150", color=mycolor150, linewidth=1)
smaplot200 = input (true, title="MA200")
len200 = input.int(200, minval=1, title="ma Length")
ma200 = exponential5 ? ta.ema(src, len200) : ta.sma(src, len200)
up200 = ma200 > ma200[1]
down200 = ma200 < ma200[1]
mycolor200 = up200 ? #3cfe12 : down200 ? #ff0202 : #008eff
plot(ma200 and smaplot200 ? ma200 :na , title="200", color=mycolor200, linewidth=1)
//
if (ta.crossover(long1, long2))
strategy.entry("maL", strategy.long, comment="maLong")
if (ta.crossunder(short1, short2))
strategy.entry("maS", strategy.short, comment="maShort")
////