Стратегия MACD Trend Following - это количественная торговая стратегия, основанная на индикаторе MACD. Основная идея этой стратегии заключается в использовании золотого креста и смертного креста индикатора MACD для определения направления тренда и установления длинных или коротких позиций в соответствующие времена. Когда линия MACD пересекает линию сигнала и выше нулевой оси, открывается длинная позиция; когда линия MACD пересекает линию сигнала и ниже нулевой оси, открывается короткая позиция. Стратегия использует самую последнюю низкую точку как стоп-лосс для длинных позиций и самую последнюю высокую точку как стоп-лосс для коротких позиций. Условие закрытия - когда линия MACD пересекает линию сигнала в противоположном направлении.
Основной принцип стратегии MACD Trend Following заключается в использовании индикатора MACD для фиксации формирования и перелома трендов. Индикатор MACD состоит из разницы между двумя скользящими средними (быстрыми и медленными) и используется в сочетании с сигнальной линией для генерации торговых сигналов. Когда линия MACD пересекает линию сигнала выше и выше нулевой оси, это указывает на формирование восходящего тренда, и открывается длинная позиция. Когда линия MACD пересекает линию сигнала ниже и ниже нулевой оси, это указывает на формирование нисходящего тренда, и открывается короткая позиция. Стратегия использует самую последнюю значительную низкую точку MAC как стоп-лосс для длинных позиций и самую последнюю значительную высокую точку как потерю для коротких позиций для контроля риска. Когда линия MACD пересекает линию сигнала в противоположном направлении, текущая позиция закрывается.
Стратегия MACD Trend Following может эффективно использовать трендовые возможности, устанавливая позиции в начале формирования тренда, полностью используя импульс тренда.
Стратегия использует как золотой крест MACD, так и нулевую ось в качестве фильтрующих условий, которые могут лучше отфильтровывать ложные сигналы на колеблющемся рынке.
Стратегия использует последние значительные максимумы и минимумы в качестве уровней остановки потерь, которые могут контролировать риск одной сделки.
Логика стратегии ясна, ее легко понять и реализовать, что делает ее подходящей для обучения новичков.
По сути, индикатор MACD является отстающим, который может испытывать значительные снижения в начале перемены тренда.
Эта стратегия может привести к частым сделкам на колеблющемся рынке, что приводит к высоким затратам на транзакции.
Установление уровней стоп-лосса зависит от последних значительных максимумов и минимумов, что может привести к преждевременным или задержанным стоп-лоскам в определенных ситуациях.
Стратегия не учитывает размер позиций и управление деньгами, которые необходимо оптимизировать на основе конкретных обстоятельств в практическом применении.
Рассмотреть возможность введения других технических индикаторов или моделей поведения цен в качестве фильтрующих условий для повышения надежности и точности сигналов.
Оптимизировать метод установки уровней стоп-лосса, например, использование ATR или стоп-лосса на основе процентов, чтобы лучше контролировать риск.
Ввести механизмы размещения позиций и управления денежными средствами для динамической корректировки размеров позиций на основе волатильности рынка и собственного капитала счета.
Оптимизировать и корректировать параметры для различных рынков и торговых инструментов, чтобы найти наиболее подходящие комбинации параметров.
Стратегия MACD Trend Following - это простая и эффективная количественная торговая стратегия, которая использует возможности тренда, используя характеристики индикатора MACD. Стратегия имеет четкую логику, ее легко понять и реализовать, что делает ее подходящей для обучения новичков. Однако в практическом применении необходимо обратить внимание на контроль рисков, и ее следует комбинировать с другими методами оптимизации и улучшения для достижения более надежной торговой эффективности.
/*backtest start: 2023-03-23 00:00:00 end: 2024-03-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MACD trendfollow", shorttitle="MACD TF", overlay=true) // switch = input(true, title="Enable MACD Bar Color") // X001TK MACD trendfollow Strategy // // // This strategy combines the non standart approach in MACD strategy to buy once to buy when the MACD value goes above Signal line and a zero line, to sell on the opposite condition. // // // This strategy goes long if the MACD (3,9,5) goes above its Signal and above zero // // You can set Stop loss on the recent lowest low when long position is opened and recent highest hugh in short // // // Exit rule is simple. We close the LONG position once MACD goes below Signal line and close SHORT on the opposite condition // // // // // Input fastMAlen = input(3, minval=1, title="MACD fast moving average") slowMAlen = input(9,minval=1, title="MACD slow moving average") signalMACDlen = input(5,minval=1, title="MACD signal line moving average") // switch = input(true, title="Enable MACD Bar Color") length = input(1, minval=1) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2002, title = "From Year", minval = 2000) ToMonth = input(defval = 3, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2029, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 00, 00) // backtest finish window window() => true // create function "within window of time" // MACD Calculation MACD = ema(close, fastMAlen) - ema(close, slowMAlen) signalMACD = ema(MACD, signalMACDlen) delta = MACD - signalMACD fastMA = ema(close,fastMAlen) slowMA = ema(close,slowMAlen) // Colors //bartrendcolor = MACD > signalMACD and MACD > 0? green : MACD < signalMACD and MACD < 0? red : MACD < signalMACD? gray : gray //barcolor(switch?bartrendcolor:na) barcolour=(MACD > signalMACD and MACD > 0)?#53B987:(MACD < signalMACD and MACD < 0)?#EB4D5C:na barcolor(color=barcolour) // === STRATEGY === // conditions longCond = MACD > signalMACD and MACD > 0 XlongCond = MACD < signalMACD ShortCond = MACD < signalMACD and MACD < 0 XShortCond = MACD > signalMACD strategy.entry("long", strategy.long, when=longCond==true and window()==true ) //strategy.exit(id="Close Long", stop=longStop)//, limit=longTake) strategy.close("long", when=XlongCond==true and window()==true) strategy.entry("short", strategy.short, when=ShortCond==true and window()==true ) //strategy.exit(id="Close Short", stop=shortStop)//, limit=shortTake) strategy.close("short", when=XShortCond==true and window()==true) // === /STRATEGY ===