
La Estrategia de Breakout de la Media Móvil Doble es una estrategia de negociación cuantitativa basada en las medias móviles rápidas y las medias móviles lentas. Utiliza las medias móviles indexadas de dos períodos diferentes como señal de negociación.
La lógica central de esta estrategia es la de utilizar las líneas de movimiento rápido y las líneas de movimiento lento para formar señales de negociación. La estrategia define un ciclo de movimiento rápido de 12 días y un ciclo de movimiento lento de 26 días. El método de cálculo es el siguiente:
Una estrategia típica de doble movimiento de la media es determinar la tendencia del mercado y generar señales de negociación mediante el cruce de la media de movimiento rápido y la media de movimiento lento.
La estrategia de la brecha de la línea media doble móvil tiene las siguientes ventajas:
La estrategia de doble avance móvil también tiene ciertos riesgos:
La solución:
Las estrategias de penetración en la línea media móvil pueden ser optimizadas en los siguientes aspectos:
La estrategia de ruptura de la línea de paridad móvil doble es una estrategia de comercio cuantitativa simple y práctica. Tiene ventajas como la lógica de la estrategia simple y fácil de implementar, pero también hay ciertos problemas de adaptabilidad al mercado. Podemos convertirla en un sistema de comercio de ganancias estables mediante la optimización de parámetros, filtración de señales y control de riesgos.
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("CDC Action Zone V.2", overlay=true)
// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)
Bullish = Fast>Slow
Bearish = Fast<Slow
Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast
Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]
alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")
//Plot
l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)
// === INPUT BACKTEST RANGE ===
FromYear = input(defval = 2000, title = "From Year", minval = 1920)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 1921)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
if LSB == "Long only" and Buy and window()
strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
strategy.entry("L",true)
if LSB == "Both" and Sell and window()
strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
strategy.close("S",qty_percent=100,comment="TP Short")