Esta estrategia se basa en el indicador del Hull Moving Average, calculando el Hull MA en diferentes marcos de tiempo y comparando las tendencias del Hull MA en diferentes marcos de tiempo para identificar los cambios de tendencia.
Parámetros de entrada: Período de la MA del casco Período, marco de tiempo HMA2 Resolución2, marco de tiempo HMA3 Resolución3
Calcular el valor de HMA de los bares de corriente de casco
Calcular el valor de HMA de casco HMA2 en el marco de tiempo Resolution2
Calcular el valor de Hull MA HMA3 en el marco de tiempo Resolution3
Compare la relación de magnitud entre HMA, HMA2, HMA3
Generar una señal de compra cuando HMA>HMA2>HMA3
Generar una señal de venta cuando HMA
Mostrar los valores y señales de Hull MA en diferentes plazos en la parte superior izquierda del gráfico
Utilice colores para distinguir tendencias alcistas y bajistas
Usar múltiples marcos de tiempo puede filtrar falsas fugas y evitar trampas.
Parámetros de marco de tiempo personalizables, adaptables a diferentes períodos y volatilidad.
Muestra de señal en tiempo real, operación intuitiva.
Las tendencias de Hull MA visualizadas ayudan a determinar la tendencia actual.
La configuración incorrecta de los parámetros puede causar un exceso de negociación.
El Hull MA tiene un efecto de retraso, puede perder los puntos de inflexión de la tendencia.
Puede generar señales falsas en torno a la transición toro-oso.
Las estrategias de fuga son propensas a quedar atrapadas por falsas fugas.
Las comisiones de negociación no se consideran, lo que afecta al beneficio real.
Los riesgos pueden reducirse optimizando los parámetros, combinando otros indicadores para la filtración y permitiendo un stop loss más amplio.
Optimizar el período de Hull MA adaptado a diferentes períodos y volatilidad.
Añadir un indicador de volumen para evitar falsos brotes.
Agregue osciladores para determinar la fuerza de la tendencia.
Incorporar modelos de aprendizaje automático para el tiempo de compra/venta.
Combina indicadores de sentimiento para detectar el hype del mercado.
Ajustar la estrategia de stop loss para una mejor gestión del riesgo.
Personalizar las condiciones de compra/venta con otras señales de indicadores.
Añadir estrategias comerciales basadas en el canal de precios o las ondas.
Esta estrategia utiliza un Hull MA de múltiples plazos para determinar la dirección de la tendencia comparando las pendientes promedio móvil en los plazos y genera señales en las reversiones de tendencia.
/*backtest start: 2023-10-07 00:00:00 end: 2023-11-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy("wtfBUYorSELLffs",overlay=true,currency="USD",initial_capital=100000,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.percent,commission_value=0.1) Period=input(title="Hull MA Period",type=input.integer,defval=6,minval=1) Resolution2=input(title="HMA2 Resolution", type=input.resolution,defval="60") Resolution3=input(title="HMA3 Resolution", type=input.resolution,defval="240") Price=input(title="Source of Price",type=input.source,defval=open) xOffset = input(40, title="Panel offset (X-Axis)") yOffset = input(0, title="Panel offset (y-Axis)") lightgray = #D3D3D3FF pnlTextColor = color.silver pnlColor = color.black HMA = hma(Price,Period) HMA2 = security(syminfo.tickerid, Resolution2, HMA,barmerge.gaps_off,barmerge.lookahead_off) HMA3 = security(syminfo.tickerid, Resolution3, HMA,barmerge.gaps_off,barmerge.lookahead_off) HUP = HMA > HMA[1] H1UP = security(syminfo.tickerid, Resolution2, HUP,barmerge.gaps_off,barmerge.lookahead_off) H2UP = security(syminfo.tickerid, Resolution3, HUP,barmerge.gaps_off,barmerge.lookahead_off) int barSize = timeframe.isdaily ? timeframe.multiplier*86400000 : timeframe.isseconds? timeframe.multiplier*1000 : timeframe.isminutes? timeframe.multiplier*60000 : (time[0]-time[1]) int lapos_x = timenow + barSize*xOffset float lapos_y = highest(20) + yOffset*syminfo.mintick * syminfo.pointvalue f_draw_infopanel(_x, _y, _line, _text)=> _rep_text = "" for _l = 0 to _line _rep_text := _rep_text + "\n" _rep_text := _rep_text + _text // var label _la = na // label.delete(_la) // _la := label.new( // x=_x, y=_y, // text=_rep_text, xloc=xloc.bar_time, yloc=yloc.price, // color=pnlColor, style=label.style_labelup, textcolor=pnlTextColor, size=size.normal) // f_draw_infopanel(lapos_x, lapos_y, 8, "╚═══════════════════════╝") f_draw_infopanel(lapos_x, lapos_y, 6, "HMA3 on TF " + Resolution3 + " = " + tostring(HMA3,"#.####") + (H2UP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 4, "HMA2 on TF " + Resolution2 + " = " + tostring(HMA2,"#.####") + (H1UP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 2, "HMA1 on TF " + timeframe.period + " = " + tostring(HMA,"#.####") + (HUP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 0, "╔═════════ HMA(" + tostring(Period,"#") +") ════════╗") change_color=HMA>HMA3?color.green:color.red change_color2=HMA2>HMA3?color.lime:color.yellow plot1=plot(HMA3,color=change_color2,title="3 Hull MA Line",linewidth=2,transp=75) plot2=plot(HMA2,color=change_color,title="2 Hull MA Line",linewidth=2,transp=75) plot3=plot(HMA,color=color.white,title="Hull MA Line",linewidth=2,transp=75) fill(plot1,plot3,color=change_color,transp=90) fill(plot2,plot3,color=change_color2,transp=75) if (H2UP and H1UP and HUP) strategy.entry("BUY",strategy.long) if (not H2UP and not H1UP and not HUP) strategy.entry("SELL",strategy.short)