
La estrategia de negociación de la horquilla de oro de la media móvil genera señales de compra y venta mediante el cálculo de la intersección de la línea rápida EMA ((fastLength) y la línea lenta EMA ((slowLength)). Cuando la línea rápida atraviesa la línea lenta, genera una señal de compra; cuando la línea rápida atraviesa la línea lenta, genera una señal de venta. La estrategia es simple y práctica y se aplica a la negociación de la línea corta media.
La estrategia utiliza dos promedios móviles, la línea rápida y la línea lenta. El parámetro de la línea rápida EMAfastLength es la línea de 9 días por defecto, y el parámetro de la línea lenta EMAAslowLength es la línea de 26 días por defecto. Se calcula el cruce de las dos líneas EMA para determinar las señales de compra y venta en el mercado:
Las señales de trading y las reglas de estrategia son las siguientes:
Así que la estrategia es hacer operaciones de negociación cuando dos promedios móviles tienen un tenedor y un tenedor muerto.
Los parámetros optimizados para el riesgo, como el ciclo de las medias móviles, la variedad de operaciones, el índice de stop loss, etc., requieren una gran cantidad de pruebas para reducir el riesgo.
La estrategia de movimiento de la media cruzada es sencilla y práctica, y se puede optimizar de la siguiente manera:
A través de estas pruebas de optimización, se puede mejorar considerablemente la efectividad y la estabilidad de la estrategia en el campo de batalla.
La idea de la estrategia de cruce de la media móvil es simple, y la aplicación real requiere una optimización continua. Esta estrategia da la lógica de generación de señales de negociación y las reglas básicas de negociación, sobre la base de las cuales se puede optimizar en gran medida, lo que la convierte en una estrategia cuantitativa viable. La aplicación de la media móvil también nos proporciona una idea de la estrategia, sobre la base de la cual podemos innovar y mejorar.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
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"
emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)
enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)
enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)