Эта стратегия рассчитывает свечи Хайкина-Аши для сглаживания ценовых линий и объединяет индикатор MACD для генерации торговых сигналов, реализуя количественную стратегию, которая отслеживает средне- и долгосрочные тенденции.
Вычислить открытые, закрытые, высокие и низкие цены Хайкина-Аши, чтобы сопоставить свечи Хайкина-Аши и плавные ценовые тенденции.
Установите параметры MACD: быстрая длина 12, медленная длина 26, длина сигнала 9.
Вычислите медленную линию DEA, быструю линию DEA и гистограмму MACD.
Пройти длинный, когда гистограмма MACD пересекает выше 0, пройти короткий, когда пересекает ниже 0.
Добавить фильтры года, месяца и дня, чтобы ограничить торговлю определенным временным диапазоном.
Свечи Хайкина-Аши эффективно отфильтровывают рыночный шум, чтобы определить тенденции.
MACD дает четкие сигналы торгового тренда.
Объединение Heikin-Ashi и MACD улучшает качество сигнала и рентабельность.
Временные фильтры помогают оптимизировать график торговли на основе исторической производительности.
Потенциальные большие убытки при изменении тренда.
Неправильные параметры MACD могут генерировать чрезмерные бесполезные сигналы.
Строгие временные фильтры могут упустить хорошие торговые возможности.
Контрмеры:
Установите стоп-лосс/прибыль для ограничения потерь.
Оптимизировать параметры MACD для определения наилучшей комбинации.
Добавьте показатели для определения местных тенденций.
Испытайте различные комбинации параметров, чтобы найти оптимальный.
Добавьте механизмы стоп-лосса, такие как стоп-лосс.
Добавьте такие показатели, как EMA, KDJ, чтобы определить точки перехода.
Добавьте показатели объема, чтобы избежать расхождений.
Эта стратегия сглаживает ценовое действие с помощью свечей Хайкина-Аши и определяет направление тренда и сигналы входа с помощью индикатора MACD Tradingview для реализации квантовой стратегии, следующей за трендом. По сравнению с обычными стратегиями MACD, она фильтрует некоторый шум для более четкой идентификации тренда. Дальнейшие улучшения оптимизации параметров, стоп-лосса и индикаторов комбо могут улучшить его стабильность и прибыльность.
/*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")