
Esta estrategia utiliza las medias móviles rápidas y las medias móviles lentas para construir un sistema binario, combinado con el índice de tendencia ADX para juzgar la tendencia, y el índice de movimiento DMI para juzgar la dirección de la tendencia, para realizar el seguimiento de la tendencia después de que se establezca la tendencia, salir a tiempo cuando la tendencia se invierta y evitar la caída de la caída.
Las medias móviles rápidas y las medias móviles lentas construyen un sistema de doble vía. Cuando se cruza la media móvil lenta sobre las medias móviles rápidas, se da la señal de la horca de oro para hacer más entrada; cuando se cruza la media móvil lenta por debajo de las medias móviles rápidas, se da la señal de la horca muerta para salir del campo.
El ADX se utiliza para determinar la presencia y la intensidad de una tendencia. Cuando el ADX es mayor que el valor clave establecido, se considera que la tendencia existe y que la tendencia es fuerte.
El DI+ en DMI se utiliza para determinar la dirección de la tendencia. Cuando el DI+ es positivo, la tendencia es ascendente; cuando el DI+ es negativo, la tendencia es descendente. La señal de negociación se genera solo cuando se determina que cumple con la dirección de la tendencia.
La combinación de pruebas de rango de tiempo permite medir el efecto de la estrategia en diferentes períodos de tiempo para verificar la estrategia.
El sistema de doble vía permite filtrar las rupturas para evitar que se produzcan pérdidas por falsas rupturas.
Aplicar el ADX para determinar la existencia y la intensidad de la tendencia y evitar el comercio frecuente en situaciones de crisis.
Utilice el DMI para determinar la dirección de la tendencia, asegurarse de que la operación se ajuste a la tendencia y evitar el comercio en contra.
Las pruebas de rango de tiempo pueden verificar si los parámetros de la estrategia son válidos para diferentes situaciones y optimizar la configuración de los parámetros.
Los sistemas de dos vías son propensos a la formación de trampas de cabeza vacía o trampas de cabeza múltiple, por lo que es necesario estar atento a que los precios se ajusten de nuevo para evitar el deterioro.
El ADX considera que hay un retraso y puede haber perdido una oportunidad en el inicio de la tendencia, lo que puede reducir el valor clave.
La dirección de juicio de DMI también está atrasada, también puede perderse en el inicio de la tendencia, lo que puede reducir el parámetro de ciclo.
La configuración de los parámetros puede requerir ajustes en diferentes períodos de tiempo, y es necesario optimizar los parámetros para adaptarlos a las circunstancias.
Se puede probar una combinación de parámetros de diferentes períodos de longitud para encontrar el parámetro óptimo.
Se puede combinar con otros indicadores como la línea de blur para un doble filtrado y mejorar la calidad de la señal.
Se puede agregar una estrategia de stop loss para evitar la expansión de las pérdidas.
Los parámetros se pueden optimizar automáticamente mediante métodos de aprendizaje automático.
Se pueden combinar otros factores para mejorar la eficacia de la estrategia, como los indicadores de sentimiento y la página de noticias.
Esta estrategia integra las ventajas de las medias móviles, el índice de tendencia y el índice de movimiento, lo que permite el juicio y el seguimiento de las tendencias. Al mismo tiempo que se verifica la efectividad de sus parámetros, se necesita una optimización continua para adaptarse a más situaciones de mercado, y se profundiza aún más en la adaptación de parámetros, la estrategia de parada de pérdidas y la integración de múltiples factores, para mejorar la estabilidad y la rentabilidad de la estrategia.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// author: codachang0726
strategy(title = "(S)MA+ADX+DI+time", shorttitle = "(S)MA+ADX+DI+time", overlay = true)
// === INPUT MA LENGTHS ===
fastMA = input(defval = 7, title = "FastMA", minval = 1, step = 1)
slowMA = input(defval = 14, title = "SlowMA", minval = 1, step = 1)
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", minval = 1, maxval = 31)
thruYear = input(defval = 2022, title = "Thru Year", minval = 1970)
// === INPUT SHOW PLOT ===
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === MA LOGIC ===
crossOv = sma(close, fastMA) > sma(close, slowMA) // true when fastMA over slowMA
crossUn = sma(close, fastMA) < sma(close, slowMA) // true when fastMA under slowMA
// DI+ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Period")
keyLevel = input(20, title="Keylevel for ADX")
[diplus, diminus, adx] = dmi(dilen, adxlen)
di = (diplus - diminus)
buy = di > 0 and crossOv and adx > keyLevel
sell = di < 0 and crossUn and adx > keyLevel
buy_time = buy and not buy[1]
sell_time = sell and not sell[1]
// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy_time) // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and sell_time) // exit long when "within window of time" AND crossunder
// === PLOTTING ===
bgcolor(color = showDate and window() ? color.gray : na, transp = 90) // plot "within window of time"
plot(sma(close, fastMA), title = 'FastMA', color = color.yellow, linewidth = 2, style = plot.style_line) // plot FastMA
plot(sma(close, slowMA), title = 'SlowMA', color = color.aqua, linewidth = 2, style = plot.style_line) // plot SlowMA