Esta estrategia utiliza el cruce de dos promedios móviles con períodos diferentes para generar señales comerciales. Pertenece a las estrategias de seguimiento de tendencias. La estrategia captura oportunidades de tendencia mediante el uso de señales cuando un período más corto de MA cruza un período más largo de MA.
La estrategia utiliza un MA a corto plazo de 9 períodos (SMA) y un MA a largo plazo de 50 períodos (LMA). Cuando el SMA cruza por encima del LMA, se genera una señal de compra. Cuando el SMA cruza por debajo del LMA, se genera una señal de venta.
La estrategia también incorpora el indicador RSI para medir la fuerza de la tendencia. Las señales de negociación solo se generan cuando RSI está por encima de un umbral (default 55). Esto evita señales incorrectas cuando RSI está en zonas de sobrecompra.
La estrategia opera el 30% del capital total cada vez, con una sola posición abierta a la vez.
Los riesgos pueden reducirse mediante la optimización de parámetros, el uso de otros indicadores, una estricta gestión del capital y un stop loss.
La estrategia captura oportunidades de tendencia utilizando un sistema de cruce de MA simple. Los parámetros predeterminados se optimizan con rendimientos constantes, adecuados para el comercio algorítmico. Se pueden hacer mejoras adicionales agregando otros indicadores, optimizando parámetros e implementando stop loss. En general, es una estrategia efectiva de seguimiento de tendencias para los mercados utilizando señales de cruce.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © relevantLeader16058 //@version=4 strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" //MA inputs and calculations inlong=input(50, title='MA long period') inshort=input(9, title='MA short period') MAlong = sma(close, inlong) MAshort= sma(close, inshort) // RSI inputs and calculations lengthRSI = (14) RSI = rsi(close, lengthRSI) RSI_Signal = input(55, title = 'RSI Trigger', minval=1) //Entry and Exit bullish = crossover(MAshort, MAlong) bearish = crossunder(MAshort, MAlong) strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window()) strategy.close(id="long", when = bearish and window()) plot(MAshort, color=color.purple, linewidth=2) plot(MAlong, color=color.red, linewidth=2)