Esta estrategia calcula velas Heikin-Ashi para suavizar las líneas de precios y combina el indicador MACD para generar señales comerciales, implementando una estrategia cuantitativa que rastrea las tendencias a medio y largo plazo.
Calcular los precios de apertura, cierre, alto y bajo de Heikin-Ashi para trazar velas de Heikin-Ashi y tendencias de precios suaves.
Establezca los parámetros MACD: longitud rápida 12, longitud lenta 26, longitud de la señal 9.
Calcula la línea lenta de DEA, la línea rápida de DEA y el histograma MACD.
Ir largo cuando el histograma MACD cruza por encima de 0; Ir corto cuando cruza por debajo de 0.
Añadir filtros de año, mes y día para limitar la negociación a un intervalo de tiempo especificado.
Las velas Heikin-Ashi filtran el ruido del mercado de manera efectiva para identificar tendencias.
El MACD proporciona señales claras de tendencia.
La combinación de Heikin-Ashi y MACD mejora la calidad de la señal y la rentabilidad.
Los filtros de tiempo ayudan a optimizar el calendario de operaciones basado en el rendimiento histórico.
Posibilidad de grandes pérdidas durante la inversión de tendencia.
Los parámetros MACD inadecuados pueden generar señales excesivamente inútiles.
Los filtros de tiempo rígidos pueden perder buenas oportunidades comerciales.
Contramedidas:
Establecer el stop loss/take profit para limitar las pérdidas.
Optimizar los parámetros del MACD para determinar la mejor combinación.
Añadir indicadores para determinar las tendencias locales.
Prueba diferentes combinaciones de parámetros para encontrar el óptimo.
Agregue mecanismos de stop loss como el stop loss trasero.
Agregue indicadores como EMA, KDJ para determinar los puntos de inversión.
Añadir indicadores de volumen para evitar divergencias.
Esta estrategia suaviza la acción del precio con velas de Heikin-Ashi y determina la dirección de la tendencia y las señales de entrada con el indicador MACD Tradingview para implementar una estrategia cuantitativa de tendencia.
/*backtest start: 2023-11-18 00:00:00 end: 2023-12-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MACD ASHI BARS .v1 ", overlay=false,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,slippage=1) // Calculation HA Values haopen = 0.0 haclose = (open + high + low + close) / 4 haopen := na(haopen[1]) ? (open + close) / 2 : (haopen[1] + haclose[1]) / 2 hahigh = max(high, max(haopen, haclose)) halow = min(low, min(haopen, haclose)) // HA colors hacolor = haclose > haopen ? color.green : color.red src=haclose fastmacd = input(12,title='MACD Fast Line Length') slowmacd = input(26,title='MACD Slow Line Length') signalmacd = input(9,title='Signal Line Length') macdslowline1 = sma(src,slowmacd) macdslowline2 = sma(macdslowline1,slowmacd) DEMAslow = ((2 * macdslowline1) - macdslowline2 ) macdfastline1 = sma(src,fastmacd) macdfastline2 = sma(macdfastline1,fastmacd) DEMAfast = ((2 * macdfastline1) - macdfastline2) MACDLine = (DEMAfast - DEMAslow) SignalLine = sma(MACDLine, signalmacd) delta = MACDLine-SignalLine swap1 = delta>0?color.green:color.red plot(delta,color=swap1,style=plot.style_columns,title='Histo',histbase=0,transp=20) p1 = plot(MACDLine,color=color.blue,title='MACD Line') p2 = plot(SignalLine,color=color.red,title='Signal') fill(p1, p2, color=color.blue) hline(0) yearfrom = input(2020) yearuntil =input(2042) monthfrom =input(1) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( crossover(delta,0) and year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND", comment="AL") else strategy.cancel(id="MMAL") if ( crossunder(delta,0) and year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND", comment="SAT") else strategy.cancel(id="MMSAT")