Estrategia de negociación cruzada diaria de HMA

El autor:¿ Qué pasa?, Fecha: 2023-09-22 17:07:15
Las etiquetas:

Resumen general

Esta estrategia entra en operaciones basadas en la línea HMA y los cruces diarios de velas y gestiona posiciones utilizando la lógica de stop loss y take profit.

Estrategia lógica

Las principales señales y reglas:

  • Línea HMA: Calcula la media móvil de Hull para determinar la tendencia a mediano y largo plazo.

  • Precio de cierre diario: juzga la acción del precio a corto plazo.

  • Signo de entrada: HMA cruza por encima del cierre diario anterior, con un precio superior al precio del día anterior para largo.

  • Las posiciones de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de las titulares de activos y de los titulares de activos y de las titulares de activos y de las titulares de activos y de las titulares de activos y de las titulares de activos y de las titulares de activos.

Ventajas

  • Parámetros HMA ajustables para mayor adaptabilidad.

  • Considera indicadores de marcos de tiempo múltiples para señales de mayor calidad.

  • El stop loss/take profit facilita la gestión del riesgo.

  • Reglas claras de entrada y gestión de posiciones.

  • Los parámetros de las pruebas de retroceso se pueden optimizar para diferentes mercados.

Los riesgos

  • El retraso de HMA puede perder el mejor momento de entrada.

  • El stop loss/take profit fijo puede ser demasiado agresivo o conservador.

  • Falta de filtro de fuerza de tendencia, los riesgos de contratrend operaciones.

  • Reglas simples propensas a señales falsas.

Mejoras:

  1. Optimice los parámetros HMA para el retraso.

  2. Utilice el stop loss trasero en lugar de fijo.

  3. Agregue indicadores de volumen o impulso para juzgar la fuerza de la tendencia.

  4. Incorporar otros indicadores como el MACD para la confirmación de la señal.

Optimización

Vías potenciales para optimizar la estrategia:

  1. Optimice los parámetros HMA para el combo ideal.

  2. Añadir un filtro de fuerza de tendencia para evitar contra-tendencias.

  3. Utilice paradas dinámicas en lugar de niveles fijos.

  4. Incorporar aprendizaje automático para la optimización automática de parámetros.

  5. Añadir trading simulado para probar el rendimiento en el mundo real.

Resumen de las actividades

La lógica de la estrategia es clara, pero tiene margen de mejora. La adición de filtros de tendencia, paradas dinámicas pueden mejorar la estabilidad. En general, proporciona un marco razonable para detectar tendencias a mediano y largo plazo.


/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// created by SeaSide420       Enters on crossovers, exits Basket when profit $ = TP
// strategy(title="HMA & D1 crossover", overlay=true, currency="BTC", initial_capital=1, default_qty_type=strategy.percent_of_equity, default_qty_value=1, commission_type=strategy.commission.percent,commission_value=0.25,slippage=1)
SL=input(defval=-0.05,title="StopLoss $",type=input.float,step=0.01, maxval=-0.01)
TP=input(defval=0.05,title="TargetPoint $",type=input.float,step=0.01, minval=0.01)
price=input(title="Source",type=input.source,defval=open)
Period=input(14, minval=1)
hma = wma(2*wma(price, Period/2)-wma(price, Period), round(sqrt(Period)))
s1=security(syminfo.tickerid, timeframe.period, price, barmerge.gaps_off, barmerge.lookahead_off)
s2=security(syminfo.tickerid, "D", price, barmerge.gaps_off, barmerge.lookahead_off)
cp=s2<price?color.lime:color.red
cp1=plot((s2),color=color.black,title="DailyCandle1",linewidth=2,transp=0)
cp2=plot((s2[1]),color=color.black,title="DailyCandle2",linewidth=2,transp=0)
cp3=plot(hma,title="HMA",color=color.black)
fill(cp1,cp2,color=cp,transp=1)
fill(cp1,cp3,color=cp,transp=75)
closeall=strategy.openprofit<SL or strategy.openprofit>TP
if closeall
    strategy.close_all(comment = "Close All")
if (hma>hma[1] and s1>s2 and s2[1]>s2[2] and s1>s2[1])
    strategy.order("Buy", strategy.long)
if (hma<hma[1] and s1<s2 and s2[1]<s2[2] and s1<s2[1])
    strategy.order("Sell", strategy.short)

Más.