El núcleo de esta estrategia es implementar el comercio de ruptura utilizando promedios móviles adaptativos e indicadores de impulso.
La estrategia consta de tres partes principales:
Construcción de promedios móviles adaptativos. La estrategia construye tres promedios móviles adaptativos utilizando el precio de Heiken Ashi y la suavización exponencial triple. Estos promedios móviles pueden responder rápidamente a los cambios de precios.
El cálculo de los indicadores de impulso. La estrategia utiliza la diferencia entre la suavización exponencial triple de los precios como el indicador de impulso. Este indicador puede resaltar los cambios en las tendencias de los precios.
Cuando el promedio móvil rápido cruza el lento, se genera una señal de compra. Cuando el rápido cruza por debajo del lento, se genera una señal de venta.
Al combinar medias móviles adaptativas e indicadores de impulso, esta estrategia puede capturar rápidamente los cambios de tendencia en los precios y generar señales comerciales.
Esta estrategia integra promedios móviles adaptativos e indicadores de impulso para generar señales comerciales eficientes al responder rápidamente a los cambios de precios.
/*backtest start: 2024-01-20 00:00:00 end: 2024-02-19 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("YASIN Crossover Strategy", overlay=true) EMAlength = input(55, 'EMA LENGTH?') src = ohlc4 var float haOpen = na haOpen := na(haOpen[1]) ? src : (src + haOpen[1]) / 2 haC = (ohlc4 + haOpen + ta.highest(high, 1) + ta.lowest(low, 1)) / 4 EMA1 = ta.ema(haC, EMAlength) EMA2 = ta.ema(EMA1, EMAlength) EMA3 = ta.ema(EMA2, EMAlength) TMA1 = 3 * EMA1 - 3 * EMA2 + EMA3 EMA4 = ta.ema(TMA1, EMAlength) EMA5 = ta.ema(EMA4, EMAlength) EMA6 = ta.ema(EMA5, EMAlength) TMA2 = 3 * EMA4 - 3 * EMA5 + EMA6 IPEK = TMA1 - TMA2 YASIN = TMA1 + IPEK EMA7 = ta.ema(hlc3, EMAlength) EMA8 = ta.ema(EMA7, EMAlength) EMA9 = ta.ema(EMA8, EMAlength) TMA3 = 3 * EMA7 - 3 * EMA8 + EMA9 EMA10 = ta.ema(TMA3, EMAlength) EMA11 = ta.ema(EMA10, EMAlength) EMA12 = ta.ema(EMA11, EMAlength) TMA4 = 3 * EMA10 - 3 * EMA11 + EMA12 IPEK1 = TMA3 - TMA4 YASIN1 = TMA3 + IPEK1 t1 = time(timeframe.period, "0020-0030") // بررسی شرایط سیگنال خرید و فروش buyCondition = YASIN1 > YASIN and YASIN1[1] <= YASIN[1] sellCondition = YASIN1 < YASIN and YASIN1[1] >= YASIN[1] // اعمال سیگنال خرید و فروش strategy.entry("Buy", strategy.long, when = buyCondition) strategy.entry("Sell", strategy.short, when = sellCondition)