Esta estrategia utiliza principalmente el indicador ADX para juzgar la tendencia y combina los promedios móviles MA y EMA con diferentes configuraciones de parámetros para construir una estrategia de seguimiento de tendencia solo larga. Cuando el ADX sube, indica una dirección larga. Cuando el precio rompe el MA y EMA ascendentes, abra posiciones largas. Cuando el ADX cae o el precio cae por debajo del MA o EMA, cierre posiciones.
La estrategia utiliza principalmente el ADX para juzgar la tendencia y la fuerza del mercado. El ADX calcula el grado y la dirección de los cambios de precios para determinar la existencia y la fuerza de la tendencia. Cuando el ADX sube, significa que actualmente está en una tendencia al alza. Cuando el ADX cae, significa que la tendencia se está debilitando.
La estrategia también utiliza dos promedios móviles, MA y EMA, con diferentes configuraciones de parámetros como juicio auxiliar. Pueden filtrar efectivamente la aleatoriedad de los precios y mostrar la dirección de tendencia principal de los precios. Cuando los precios suben y rompen MA y EMA, es una señal larga. Cuando los precios caen y rompen, es una señal de cierre.
Combinando las características del ADX y las medias móviles, la estrategia construye señales comerciales para juzgar la dirección de la tendencia: ir largo cuando el ADX sube y los precios rompen el MA y la EMA ascendentes, y cerrar posiciones cuando el ADX cae o los precios rompen el MA / EMA. Implementa una estrategia de seguimiento de tendencias solo larga.
Las principales ventajas de esta estrategia son las siguientes:
También hay algunos riesgos:
Soluciones:
La estrategia se puede optimizar a partir de los siguientes aspectos:
En general, se trata de una estrategia de seguimiento de tendencias de largo plazo que utiliza ADX para juzgar la fuerza de la tendencia y dos promedios móviles como filtros auxiliares. Controla efectivamente la ocurrencia de operaciones inválidas y logra el efecto de seguimiento de tendencias. Es una estrategia relativamente estable de largo plazo. Con algunas optimizaciones, la estabilidad y el rendimiento de la estrategia pueden mejorarse aún más.
/*backtest start: 2023-01-22 00:00:00 end: 2024-01-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("ADX, MA, and EMA Long Strategy - ADX Trending Up", shorttitle="ADX_MA_EMA_Long_UpTrend", overlay=true) adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") maPeriod = input(50, title="MA Period") emaPeriod = input(50, title="EMA Period") dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) maValue = sma(close, maPeriod) emaValue = ema(close, emaPeriod) longCondition = sig > sig[1] and close > maValue and close > emaValue if (longCondition) strategy.entry("Long", strategy.long) exitCondition = sig < sig[1] or close < maValue or close < emaValue if (exitCondition) strategy.close("Long") plot(maValue, color=color.blue, title="MA") plot(emaValue, color=color.orange, title="EMA") plot(sig, color=color.red, title="ADX")