
La estrategia de cruce de dos medias es una clásica estrategia de seguimiento de tendencias. La estrategia utiliza dos promedios móviles de diferentes períodos para capturar la tendencia del mercado, generando una señal de más cuando se cruza una media lenta sobre una media rápida y una señal de menos cuando se cruza una media lenta debajo de una media rápida. La idea central de esta estrategia es que la media rápida es más sensible a los cambios en los precios y responde más rápidamente a los cambios en la tendencia del mercado, mientras que la media lenta responde a la tendencia a largo plazo del mercado.
En el código de la estrategia se utilizan dos promedios móviles, uno es el promedio rápido (default 14 periodos) y el otro es el promedio lento (default 28 periodos). Los tipos de promedios móviles se pueden elegir como promedio móvil simple (SMA), promedio móvil indexado (EMA), promedio móvil ponderado (WMA) y promedio móvil relativo (RMA).
La principal lógica de la estrategia es la siguiente:
Con esta lógica, la estrategia puede seguir las tendencias principales del mercado, manteniendo posiciones de más cabeza en tendencias al alza, manteniendo posiciones de cabeza vacía en tendencias a la baja o manteniendo posiciones vacías en tendencias a la baja. El ciclo y el tipo de la línea mediana se pueden ajustar y optimizar según los diferentes mercados y variedades de transacciones.
Las siguientes medidas pueden ser tomadas para combatir estos riesgos:
Estas optimizaciones pueden mejorar la adaptabilidad y la estabilidad de las estrategias, adaptándolas mejor a diferentes condiciones de mercado. Sin embargo, también hay que tener en cuenta que la optimización excesiva puede conducir a que las estrategias se ajusten demasiado y no funcionen bien en el mundo real.
La estrategia de cruce de dos líneas es una clásica estrategia de seguimiento de tendencias, que genera señales de comercio a través de la cruz de promedios móviles en dos períodos diferentes. Su lógica es simple, fácil de implementar y se aplica a un mercado de tendencia. Sin embargo, en un mercado de volatilidad, es posible que haya operaciones frecuentes y pérdidas continuas.
/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © z4011
//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
float fastMA = switch fastMAType
"Simple" => ta.sma(close, fastMALength)
"Exponential" => ta.ema(close, fastMALength)
"Weighted" => ta.wma(close, fastMALength)
"Relative" => ta.rma(close, fastMALength)
plot(fastMA, color = color.aqua, linewidth = 2)
float slowMA = switch slowMAType
"Simple" => ta.sma(close, slowMALength)
"Exponential" => ta.ema(close, slowMALength)
"Weighted" => ta.wma(close, slowMALength)
"Relative" => ta.rma(close, slowMALength)
plot(slowMA, color = color.blue, linewidth = 2)
longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
strategy.entry("Short", strategy.short)
closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
strategy.close("Long", "Close")