
Esta estrategia se basa en el indicador de promedios móviles de Hull, calcula el Hull MA en diferentes ejes de tiempo y compara el movimiento del Hull MA en diferentes ejes de tiempo para descubrir cambios en la tendencia. Genera una señal de compra cuando el Hull MA de período corto atraviesa el Hull MA de período largo; genera una señal de venta cuando el Hull MA de período corto atraviesa el Hull MA de período largo.
Parámetros de entrada: Hull MA Periodo, HMA2 en el eje de tiempo Resolution2, HMA3 en el eje de tiempo Resolution3
Calcula el valor de Hull MA HMA en la línea K actual
Calcula el MA de Hull HMA2 en la línea de tiempo Resolution 2
Calcula el valor de Hull MA HMA3 en la línea de tiempo Resolution3
Comparación de las relaciones de tamaño entre HMA, HMA2 y HMA3
Cuando HMA>HMA2>HMA3 genera una señal de compra
Cuando HMA < HMA2 < HMA3, genera una señal de venta
En la parte superior izquierda de la interfaz se muestran los valores de Hull MA y las señales en diferentes horarios
Usar colores para distinguir el estado de caída y salida
El uso de múltiples ejes de tiempo puede filtrar falsos avances y evitar que se encuentre en la trampa.
Los parámetros de la línea de tiempo se pueden personalizar para diferentes períodos.
La señal se muestra en tiempo real y es intuitiva.
Visualizar el movimiento de la Hull MA para determinar la tendencia actual.
La configuración inadecuada de los parámetros puede conducir a operaciones demasiado frecuentes.
El Hull MA de gran ciclo está rezagado y puede haber perdido el punto de inflexión de la tendencia.
La estrategia genera falsas señales cuando el toro y el oso se convierten.
La estrategia de la clase de la brecha es fácilmente falsificada para entrar en la celda.
Las comisiones de transacción no se tienen en cuenta, lo que afecta a los ingresos reales.
Se puede reducir el riesgo mediante la optimización de los parámetros, la combinación de otros indicadores como filtros y la liberación adecuada de la línea de parada.
Optimización de los parámetros del ciclo Hull MA para adaptarse a diferentes ciclos y fluctuaciones.
Aumentar el conocimiento de los indicadores de transacción para evitar falsas brechas.
Aumentar los indicadores de conmoción para determinar la intensidad de la tendencia.
El aumento de los modelos de aprendizaje automático para determinar el momento de comprar y vender.
En combinación con los indicadores de sentimiento, descubre los puntos calientes del mercado.
Ajuste de la estrategia de detener los pérdidas y optimización de la gestión de riesgos.
Las condiciones de compra y venta personalizadas, combinadas con otras señales de indicadores.
Aumentar las estrategias de negociación basadas en canales y bandas de precios.
Esta estrategia se basa en la comparación de los indicadores de Hull MA con el movimiento de la línea media en diferentes ejes temporales, para determinar la dirección de la tendencia actual y generar una señal de compra y venta cuando la tendencia se revuelve. En comparación con una sola línea media, el Hull MA de múltiples ejes temporales puede filtrar eficazmente las brechas falsas. Sin embargo, la estrategia también tiene problemas con la configuración de parámetros, el juicio de tendencias, etc.
/*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)