Esta es una estrategia de negociación intradiaria simple basada en promedios móviles duales. Utiliza dos promedios móviles simples con períodos diferentes y toma posiciones largas o cortas cuando los promedios móviles se cruzan. La posición se invierte utilizando una cantidad doble cuando cambia la señal. Todas las posiciones abiertas se cuadran cuando termina la sesión intradiaria.
La estrategia utiliza un promedio móvil simple de 10 días y 40 días. Se hace largo cuando el promedio móvil del período corto cruza por encima del período largo uno y se hace corto cuando ocurre el cruce inverso. Cuando la señal cambia, la posición se cierra usando una cantidad doble y se inicia una posición inversa.
La estrategia utiliza principalmente la capacidad de captura de cambios de precios más rápidos de la media móvil de período más corto. Cuando la SMA corta cruza por encima de la SMA larga, indica una tendencia alcista en los precios a corto plazo, por lo que ir largo puede capturar esto. La inversa indica una tendencia bajista a corto plazo. La entrada inversa de doble cantidad expande el potencial de ganancia.
Mitigación del riesgo:
Optimizar los parámetros de MA probando más combinaciones para el mejor ajuste.
Añadir filtros como la confirmación MACD para reducir las señales falsas.
Optimice el multiplicador de cantidad de entrada inversa a través del ajuste de parámetros.
Prueba extendiendo la duración de la sesión intradiaria para obtener mejores rendimientos.
La estrategia captura tendencias a corto plazo formadas a partir de señales de cruce de MA, amplía las ganancias utilizando el comercio inverso de doble cantidad y restringe los riesgos durante la noche al operar solo en una sesión intradiaria.
/*backtest start: 2024-02-19 00:00:00 end: 2024-02-26 00:00:00 period: 1m basePeriod: 1m 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/ // © Pritesh-StocksDeveloper //@version=4 strategy("Moving Average - Intraday", shorttitle = "MA - Intraday", overlay=true, calc_on_every_tick = true) // Used for intraday handling // Session value should be from market start to the time you want to square-off // your intraday strategy var i_marketSession = input(title="Market session", type=input.session, defval="0915-1455", confirm=true) // Short & Long moving avg. period var int i_shortPeriod = input(title = "Short MA Period", type = input.integer, defval = 10, minval = 2, maxval = 20, confirm=true) var int i_longPeriod = input(title = "Long MA Period", type = input.integer, defval = 40, minval = 3, maxval = 120, confirm=true) // A function to check whether the bar is in intraday session barInSession(sess) => time(timeframe.period, sess) != 0 // Calculate moving averages shortAvg = sma(close, i_shortPeriod) longAvg = sma(close, i_longPeriod) // Plot moving averages plot(series = shortAvg, color = color.red, title = "Short MA", linewidth = 2) plot(series = longAvg, color = color.blue, title = "Long MA", linewidth = 2) // Long/short condition longCondition = crossover(shortAvg, longAvg) shortCondition = crossunder(shortAvg, longAvg) // See if intraday session is active bool intradaySession = barInSession(i_marketSession) // Trade only if intraday session is active // Long position strategy.entry(id = "Long", long = strategy.long, when = longCondition and intradaySession) // Short position strategy.entry(id = "Short", long = strategy.short, when = shortCondition and intradaySession) // Square-off position (when session is over and position is open) squareOff = (not intradaySession) and (strategy.position_size != 0) strategy.close_all(when = squareOff, comment = "Square-off")