Esta estrategia está diseñada en base a la cruz de oro y la cruz muerta de los promedios móviles rápidos y lentos. Cuando el MA rápido cruza por encima del MA lento, vaya largo. Cuando el MA rápido cruza por debajo del MA lento, vaya corto. Esta estrategia es adecuada para el comercio a medio y largo plazo y puede capturar las reversiones de tendencia en el mercado.
La estrategia utiliza la media móvil exponencial (EMA) para calcular las líneas rápidas y lentas. La longitud de la MA rápida es de 10 períodos y la longitud de la MA lenta es de 30 períodos. La estrategia primero calcula la EMA rápida y la EMA lenta, luego traza las líneas y muestra diferentes fondos de color para indicar la dirección de la tendencia.
Cuando el cierre de hoy está por encima del MA rápido y el MA rápido está por encima del MA lento, el fondo es verde, lo que indica una tendencia al alza.
En una tendencia al alza, si hay un candelero rojo (cierre por debajo de abierto) y ayer también fue un candelero rojo, vaya largo. Establezca un stop loss en 300 puntos y obtenga ganancias cerrando la posición corta.
En una tendencia a la baja, si hay un candelero verde (cierre por encima de abierto) y ayer también fue un candelero verde, vaya corto.
Después de abrir una posición en cada dirección, si el tiempo de retención excede de 1008000000 milisegundos (aproximadamente 2 semanas), se forzará a cerrar la posición para evitar el punto muerto.
En general, esta estrategia es bastante equilibrada, utilizando EMA dual para tendencia y filtros de candlestick con reglas adicionales para evitar señales falsas.
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 00:00:00 period: 1h 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/ // © yeainshukla //@version=5 strategy('BuyRedSellGreen4H', overlay = true) greenCandle = close > open redCandle = open > close start = timestamp(2023,9,18,0,00) end = timestamp(2023,12,31,0,00) fastLength = input.int(10, title="Fast Average Length") slowLength = input.int(30, title="Slow Average Length") averageData = input.source(close, title="Average Data Source") // Calculate exponential moving averages fastAverage = ta.ema(averageData, fastLength) slowAverage = ta.ema(averageData, slowLength) // Plot averages plot(fastAverage, color=color.navy, title="Fast EMA") plot(slowAverage, color=color.fuchsia, linewidth=2, title="Slow EMA") // Show the moving average trend with a coloured background backgroundColor = if close > fastAverage and fastAverage > slowAverage color.new(color.green, 85) else if close < fastAverage and fastAverage < slowAverage color.new(color.red, 85) else color.new(color.orange, 90) bgcolor(backgroundColor, title="EMA Background") if time >= start and time < end if(close < open) if(close[1] < open[1]) strategy.entry("Enter Long", strategy.long) strategy.exit("Exit Long", from_entry="Enter Long") strategy.close("Enter Short") else if(close[1] > open[1]) strategy.entry("Enter Short", strategy.short) strategy.exit("Exit Short", from_entry="Enter Short") strategy.close("Enter Long") if strategy.position_size < 0 or strategy.position_size > 0// short and long is opened. if((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) > 1008000000) strategy.close("Enter Short") strategy.close("Enter Long")