
La estrategia de brecha de doble media móvil es una estrategia de seguimiento de tendencias más típica. Se utiliza para capturar la dirección y la intensidad de las tendencias del mercado mediante el cálculo de las medias móviles de dos períodos diferentes y su cruce como una señal de compra y venta.
La estrategia se basa principalmente en dos medias móviles: la primera tiene un ciclo más corto, lo que permite responder más rápidamente a los cambios en los precios; la segunda tiene un ciclo más largo, lo que permite filtrar parte del ruido. Se considera una señal de compra cuando se cruza la media móvil a corto plazo por encima de la media móvil a largo plazo; y se considera una señal de venta cuando se cruza la media móvil a largo plazo por debajo de la media móvil a corto plazo.
Concretamente, la estrategia calcula el promedio de movimiento del índice de 10 periodos (precio 1) y el promedio de movimiento del índice de 20 periodos (precio 2). Si el precio de apertura y cierre de la línea K actual es superior a los dos promedios móviles, se genera una señal de compra; si el precio de apertura y cierre de la línea K actual es inferior a los dos promedios móviles, se genera una señal de venta.
Con este diseño, se puede entrar en el mercado más temprano cuando la tendencia comienza a formarse, y seguir la tendencia; cuando la tendencia se invierte, también se puede salir del mercado lo antes posible, para controlar eficazmente el riesgo.
Esta estrategia es una estrategia básica para el comercio cuantitativo. En general, es sencilla y práctica, y capta las tendencias mediante el principio de doble cruce de líneas uniformes. Sin embargo, la estrategia también presenta ciertos riesgos y necesita ser optimizada aún más para adaptarse a diferentes entornos de mercado.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])
ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])
price1 = if (type1 == "SMA")
sma(price, ma1)
else
ema(price, ma1)
price2 = if (type2 == "SMA")
sma(price, ma2)
else
ema(price, ma2)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)
buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)
if(buy_entry)
strategy.entry("Long", strategy.long)
if(sell_entry)
strategy.entry("Short", strategy.short)
strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)