
Esta estrategia utiliza los tres indicadores TEMA, VWMACD y HMA para capturar la tendencia bajista de Bitcoin. Su lógica principal es cerrar la posición cuando el precio cruza el eje 0 por debajo de la línea media de HMA y el eje TEMA por debajo de la línea larga.
Primero se calcula el VWMACD ((la única diferencia entre el MACD normal y el VWMACD es la forma en que se calcula el promedio móvil) y se dibuja un gráfico en forma de columnas. Luego se agrega HMA como filtro de tendencia. Luego se crea y se agrega la línea rápida TEMA ((de 5 ciclos) y la línea lenta TEMA ((de 8 ciclos) y se calcula el diferencial de ambos.
Las reglas específicas de entrada son: hacer vacío cuando el VWMACD está por debajo del eje 0, el precio está por debajo de la media HMA y el TEMA de la línea rápida está por debajo del TEMA de la línea lenta.
Las reglas de salida específicas son: cuando el VWMACD atraviesa el eje 0 y el precio es más alto que la línea media HMA o la línea rápida TEMA cuando atraviesa la línea lenta TEMA.
La estrategia utiliza una combinación de VWMACD, HMA y TEMA rápido, Ziel para capturar la tendencia bajista de Bitcoin a corto plazo. Su ventaja es que la señal es más confiable y adecuada para el comercio de alta frecuencia. Pero también existe el riesgo de que los parámetros sean complejos y sean susceptibles a la interferencia de ruido.
/*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)))