Esta estrategia utiliza indicadores TEMA, VWMACD y HMA para capturar la tendencia bajista de Bitcoin. Su lógica principal es ir corto cuando VWMACD cruza por debajo de 0, el precio está por debajo de HMA y TEMA rápido está por debajo de TEMA lento. Salira de la posición cuando VWMACD cruza por encima de 0, el precio está por encima de HMA o TEMA rápido cruza por encima de TEMA lento.
Primero calcular VWMACD (la única diferencia con el MACD regular es la forma de calcular el promedio móvil) y trazarlo como histograma. Luego agregar HMA como un filtro de tendencia. Después de eso, crear y agregar TEMA rápido (5 períodos) y TEMA lento (8 períodos), y calcular la diferencia entre ellos para trazar alrededor de 0. Esta es la decisión clave para ir corto.
La regla de entrada específica es: cuando el VWMACD está por debajo de 0, el precio está por debajo de HMA y el TEMA rápido está por debajo del TEMA lento, corta.
La regla de salida específica es: cuando el VWMACD cruza por encima de 0, el precio está por encima de HMA o el TEMA rápido cruza por encima del TEMA lento, posición cerrada.
Esta estrategia utiliza la combinación de VWMACD, HMA y TEMA rápido / lento para capturar las tendencias a la baja a corto plazo de Bitcoin. Sus ventajas son señales relativamente confiables y la idoneidad para el comercio de alta frecuencia. Pero también tiene riesgos como sintonización de parámetros complejos, propensos a interferencias de ruido. Optimizar aún más los combos de parámetros y agregar indicadores auxiliares puede hacer que la estrategia sea más estable y confiable.
/*backtest start: 2022-11-08 00:00:00 end: 2023-11-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="TEMA_HMA_VWMACD short strategy", shorttitle="Short strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.018, currency='USD') startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0) end = timestamp(9999,1,1,0,0) _testPeriod() => iff(time >= startP and time <= end, true, false) slow = input(13, "Short period") fast = input(21, "Long period") signal = input(5, "Smoothing period") Fast = ema( volume * close, fast ) / ema( volume, fast ) Slow = ema( volume * close, slow ) / ema( volume, slow ) Macd = Slow - Fast Signal = ema(Macd, signal) Hist=Macd-Signal plot(Hist, color=color.silver, linewidth=1, style=plot.style_histogram) plot(0, color=color.red) length = input(400, minval=1, title = "HMA") hullma = wma(2*wma(close, length/2)-wma(close, length), floor(sqrt(length))) tema_length_1 = input(5, "Fast moving TEMA") tema_length_2 = input(8, "Slow moving TEMA") tema(sec, length)=> tema1= ema(sec, length) tema2= ema(tema1, length) tema3= ema(tema2, length) tema = 3*tema1-3*tema2+tema3 tema1 = tema(hlc3, tema_length_1) tema2 = tema(hlc3, tema_length_2) threshold = 0 tm = tema1 - tema2 plot_fast = plot(tm, color = tm > 0 ? color.green : color.red) plot(threshold, color=color.purple) up = crossover(tm, 0) down = crossunder(tm, 0) longCondition = (Hist < 0) and hullma > close and (tema1 < tema2) and _testPeriod() strategy.entry('BUY', strategy.short, when=longCondition) shortCondition = (Hist > 0) or hullma < close or up strategy.close('BUY', when=shortCondition) // Take profit tp = input(1, type=input.float, title='Take Profit (%)') sl = input(4, type=input.float, title='Stop Loss (%)') strategy.exit('XLong', from_entry='BUY', profit=(close * (tp/100) * (1/syminfo.mintick)), loss=(close * (sl/100) * (1/syminfo.mintick)))