Tendencia de la media móvil del casco siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 16 de septiembre de 2023 18:41:33
Las etiquetas:

Resumen general

La estrategia de seguimiento de tendencia de la media móvil de Hull utiliza la media móvil de Hull para determinar la dirección de la tendencia del mercado y generar señales de compra y venta.

Principios

La estrategia utiliza tanto la media móvil Hull como la media móvil simple para determinar la dirección de la tendencia. Cuando el período más corto Hull MA cruza por encima del período más largo Hull MA, genera una señal de compra. Cuando el período más corto Hull MA cruza por debajo del más largo, genera una señal de venta.

La media móvil simple determina la dirección de la tendencia en tiempo real. Cuando la EMA más corta cruza por encima de la EMA más larga, indica una tendencia alcista. Cuando la EMA más corta cruza por debajo de la EMA más larga, indica una tendencia bajista. Las operaciones se realizan solo cuando las señales Hull MA y EMA están de acuerdo en el sesgo alcista o bajista.

Además, la estrategia utiliza los canales del cuerpo de la línea K para medir la fluctuación del mercado y evitar operaciones en consolidación.

Ventajas

  • El MA de Hull es más sensible a la hora de detectar cambios de precios y cambios tempranos de tendencia.

  • El uso de ambos Hull MA y EMA elimina las señales falsas.

  • Los canales K-line evitan el comercio excesivo en los mercados laterales.

  • El seguimiento de la tendencia permite la captura de beneficios sostenidos a medida que la tendencia se extiende.

Los riesgos

  • Las medias móviles tienen retrasos y pueden perder los puntos de entrada de inversión de tendencia óptima.

  • La detección inexacta de la consolidación puede causar malas operaciones.

  • La baja frecuencia de operaciones conduce a un gran impacto de operaciones perdedoras individuales.

  • Incapaz de capitalizar las oscilaciones a corto plazo.

Gestión de riesgos

  • Optimizar los períodos de MA para generar señales de tendencia oportunas.

  • Para determinar la consolidación, utilizar otros indicadores como el RSI y el BBANDS.

  • Ejercer una gestión de capital agresiva para limitar el porcentaje de pérdidas por operación.

  • Complementar con otras estrategias para aprovechar las ganancias a corto plazo.

Resumen de las actividades

La estrategia de seguimiento de tendencia de la media móvil de Hull rastrea efectivamente las tendencias a medio y largo plazo a través del uso combinado de Hull MA y EMA.


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

//@version=2

// strategy(title='HULLMiguel 2019/ Strategy v3', shorttitle='HULLMiguel_2019_Strategy', overlay=true, pyramiding=0, default_qty_value=1000, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=blue, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=15) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=3, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? green: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=2, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(16, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(10, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=5, title="Hull MA")
dif_close_hull= (close-hullma(hma_src, hma_base_length+hma_length_scalar*6))/close
Percent_dif = (dif_close_hull/(hullma(hma_src, hma_base_length+hma_length_scalar*6)))
//direction3 = Percent_dif>0 ? +1 : Percent_dif<0 ? -1 : 0
//plot_color3 = direction3 > 0  ? lime: direction3 < 0 ? red : na
//plot(dif_close_hull, title="dif close hull", style=line, linewidth=6, color = plot_color3)

//============ signal Generator ==================================//
Piriod=input('720')
ch1 = security(syminfo.tickerid, Piriod, open)
ch2 = security(syminfo.tickerid, Piriod, close)
plot(ch1, title="EMA Signal 2", style=line, linewidth=1, color = blue)
//longCondition = crossover(security(tickerid, Piriod, close),security(tickerid, Piriod, open))
//plot((close-ema02)/ema02+close)
longCondition = direction > 0 and direction2> 0

if (longCondition)
    strategy.entry("BUY", strategy.long)
//shortCondition = crossunder(security(tickerid, Piriod, close),security(tickerid, Piriod, open))
shortCondition = direction < 0 and direction2 < 0

if (shortCondition)
    strategy.entry("SELL", strategy.short)

///////////////////////////////////////////////////////////////////////////////////////////

Más.