Стратегия раннего предупреждения о перепаде показателя MACD анализирует быстрые и медленные линии индикатора MACD, чтобы определить, находится ли текущая цена на историческом максимуме или минимуме и произойдет ли скоро перепад, чтобы быстро оценить тенденцию рыночных цен.
Эта стратегия отслеживает и отфильтровывает данные быстрой линии и медленной линии, соответствующие выходу стандартного индикатора MACD, чтобы судить, вошла ли цена в критическую зону до переворота и выдает сигналы покупки или продажи.
В частности, стратегия определяет, вошла ли цена в нижнюю область восходящего тренда или верхнюю область нисходящего тренда, рассчитывая золотой крест и смертельный крест быстрых и медленных линий MACD. На золотых крестах, если цена закрытия выше цены закрытия предыдущего бар и дифференция выше значения дифференции предыдущего бар, определяется, что нижняя область была введена и выпущен сигнал раннего предупреждения об обратном движении. На смертельных крестах, если цена закрытия ниже цены закрытия предыдущего бар и дифференция бар выше значения текущего дифференции, определяется, что верхняя область была введена и выпущен сигнал раннего предупреждения об обратном движении.
Решения:
Стратегия раннего предупреждения об обратном движении показателя MACD может эффективно обнаруживать дно и вершину, чтобы обеспечить руководство для принятия торговых решений путем анализа быстрого и медленного пересечения линии MACD, чтобы судить о том, вошли ли цены в критическую зону до обратного движения. Однако отстающее суждение самого MACD не может определить точную точку переворота и импульс переворота. Поэтому необходимы соответствующие корректировки параметров в сочетании с другими индикаторами для контроля рисков и повышения эффективности этой стратегии. В будущем внедрение методов машинного обучения может еще больше улучшить точность суждений.
/*backtest start: 2023-11-06 00:00:00 end: 2023-12-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // ____ __ ___ ________ ___________ ___________ __ ____ ___ // / __ )/ / / | / ____/ //_/ ____/ |/_ __< / // / / __ |__ \ // / __ / / / /| |/ / / ,< / / / /| | / / / / // /_/ / / __/ / // / /_/ / /___/ ___ / /___/ /| / /___/ ___ |/ / / /__ __/ /_/ / __/ // /_____/_____/_/ |_\____/_/ |_\____/_/ |_/_/ /_/ /_/ \____/____/ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © blackcat1402 //@version=5 strategy("[blackcat] L2 Reversal Labels Strategy", overlay=true, max_bars_back=5000, max_labels_count=500) [diff, dea, macd] = ta.macd(close,12, 26, 9) a1 = ta.barssince(ta.crossover(diff,dea)[1]) a2 = ta.barssince(ta.crossunder(diff,dea)[1]) bottom_zone = (close[a1+1]>close) and (diff>diff[a1+1]) and ta.crossover(diff,dea) top_zone = (close[a2+1]<close) and (diff[a2+1]>diff) and ta.crossunder(diff,dea) // Plot labels l0 = top_zone ? label.new(bar_index, high * 1.0, 'Near Top', color=color.new(color.red, 50), textcolor=color.white, style=label.style_label_down, yloc=yloc.price, size=size.small) : bottom_zone ? label.new(bar_index, low * 1.0, 'Near Bottom', color=color.new(color.green, 50), textcolor=color.white, style=label.style_label_up, yloc=yloc.price, size=size.small) : na if bottom_zone longmsg = 'Bottom Reversal Soon!' alert(message=longmsg, freq=alert.freq_once_per_bar_close) else if top_zone shortmsg = 'Top Reversal Soon!' alert(message=shortmsg, freq=alert.freq_once_per_bar_close) longCondition = bottom_zone if (longCondition) strategy.entry("long", strategy.long) shortCondition = top_zone if (shortCondition) strategy.entry("short", strategy.short)