Esta es una estrategia de trading automático basada en el cruce de dos medias móviles de indicadores en diferentes períodos de tiempo. Utiliza indicadores técnicos simples y es muy adecuado para el aprendizaje y la práctica de los principiantes.
Esta estrategia utiliza dos medias móviles de índices, una media del ciclo de tiempo y otra media del ciclo actual. Cuando la media del ciclo actual atraviese la media del ciclo, haga más; cuando la media del ciclo actual atraviese la media del ciclo, haga un espacio.
En concreto, la estrategia primero define dos parámetros de línea recta:
Luego se calculan dos EMA por separado:
Por último, a la lógica de la transacción:
De esta manera, el comercio automático se realiza mediante el cruce de líneas uniformes de diferentes períodos de tiempo para determinar la dirección de la tendencia.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene algunos riesgos:
El riesgo puede reducirse mediante la configuración de un stop loss, la optimización de la combinación de parámetros o la incorporación de otros indicadores.
La estrategia puede ser optimizada en los siguientes aspectos:
La estrategia de cruce de media móvil del índice utiliza tendencias de captura de indicadores simples y es adecuada para la práctica de aprendizaje novedosa. El espacio de optimización es grande, se puede introducir más indicadores técnicos y modelos para mejorar y desarrollar estrategias de negociación cuantitativas con un efecto más fuerte.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") tf = input("D", title = "Big Timeframe") len = input(3, minval = 1, title = "MA length") src = input(close, title = "MA Source") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //MAs ma1 = request.security(syminfo.tickerid, tf, sma(src, len)) ma2 = sma(src, len) plot(ma1, linewidth = 2, color = blue, title = "Big TF MA") plot(ma2, linewidth = 2, color = red, title = "MA") //Trading size = strategy.position_size lot = 0.0 lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1] if ma2 > ma1 strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if ma2 < ma1 strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()