La estrategia se llama
El principio principal de esta estrategia es capturar oportunidades de rebote en mercados de rango utilizando la reversión de promedios móviles a corto plazo. Específicamente, cuando los precios rompen promedios móviles de ciclo más largo (como MA de 20 días y 50 días) y muestran signos de fuerte sobreventa, los precios tienden a rebotar en cierta medida debido a la característica de reversión media de las fluctuaciones del mercado. En este momento, si los promedios móviles de ciclo más corto (como MA de 10 días) muestran una señal de reversión al alza, sería un buen momento para comprar. En esta estrategia, comprará cuando el precio cerrar está por debajo de MA de 20 días mientras está por encima de MA de 50 días, para capturar su rebote con reversión de MA a corto plazo.
La lógica de entrada específica es: Compre 1 lote cuando el precio rompe el MA de 20 días, agregue 1 lote cuando rompe el MA de 50 días, continúe agregando 1 lote cuando rompa el MA de 100 días y agregue hasta 1 lote cuando rompa el MA de 200 días, para un máximo de 4 lotes. Tome ganancias después de alcanzar los objetivos preestablecidos. También establece el tiempo y las condiciones de stop loss.
En general, esta es una estrategia de negociación de MA clásica y universal. Utiliza correctamente la característica de suavizado de los MA, combinada con múltiples MA para identificar oportunidades de compra a corto plazo. Controla los riesgos mediante la pirámide de órdenes y la toma de ganancias oportunas. Pero su respuesta a eventos del mercado como noticias políticas significativas puede ser más pasiva. Esto es algo que se puede optimizar aún más. En general, con mejoras apropiadas en la optimización de parámetros y el control de riesgos, esta estrategia puede obtener retornos excedentes constantes.
/*backtest start: 2023-12-13 00:00:00 end: 2023-12-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true) // Input parameters qt1 = input.int(5, title="Quantity 1", minval=1) qt2 = input.int(10, title="Quantity 2", minval=1) qt3 = input.int(15, title="Quantity 3", minval=1) qt4 = input.int(20, title="Quantity 4", minval=1) ema10 = ta.ema(close, 10) ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Date range filter start_date = timestamp(year=2021, month=1, day=1) end_date = timestamp(year=2024, month=10, day=27) in_date_range = true // Profit condition profit_percentage = input(1, title="Profit Percentage") // Adjust this value as needed // Pyramiding setting pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10) // Buy conditions buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1] buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1] buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1] buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1] // Exit conditions profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] // Exit condition for when today's close is less than the previous day's low //exit_condition_3 = close < low[1] // Strategy logic strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1) strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2) strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3) strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4) strategy.close("Buy1", when=exit_condition_1 or exit_condition_2) strategy.close("Buy2", when=exit_condition_1 or exit_condition_2) strategy.close("Buy3", when=exit_condition_1 or exit_condition_2) strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)