Эта торговая стратегия представляет собой количественную стратегию, основанную на 200-дневной кроссоверной операции движущегося среднего показателя MACD. Она сочетает в себе двойные функции индикатора MACD для оценки сигналов покупки и продажи на рынке и 200-дневной движущейся средней для оценки рыночных тенденций, направленной на выявление более точного времени входа и выхода.
В этой стратегии есть два ключевых момента:
Быстрые и медленные перекрестки линий MACD генерируют сигналы покупки и продажи. Когда быстрая линия проходит через медленную линию вверх, генерируется сигнал покупки. Когда быстрая линия проходит через медленную линию вниз, генерируется сигнал продажи.
200-дневная скользящая средняя оценивает общую тенденцию рынка. Цены выше 200-дневной скользящей средней указывают на бычий рынок, а ниже указывают на медвежий рынок. Сигналы покупки действуют только на бычьем рынке, а сигналы продажи только на медвежьем рынке.
Согласно этим двум пунктам, конкретными правилами торговли этой стратегии являются:
Когда быстрая линия MACD проходит через медленную линию MACD вверх, гистограмма является отрицательной, и цена выше 200-дневной скользящей средней, совершается операция покупки.
Двойная подтверждение улучшает стабильность и уровень успеха стратегии. MACD оценивает сигналы покупки и продажи, а 200-дневная скользящая средняя оценивает тенденцию рынка. Двойная подтверждение может отфильтровать некоторые торговые сигналы с большей неопределенностью.
На сильно развивающемся рынке эта стратегия может приносить относительно высокую прибыль. Особенно на бычьем рынке, она может быстро поймать возможности повышения цены.
Индикатор MACD также относительно чувствителен к выходу из фазы консолидации. Когда цена заканчивает длительный период консолидации и входит в фазу тренда, эта стратегия может быстро улавливать новое направление тренда.
Эта стратегия довольно чувствительна к настройкам параметров. Неправильные настройки параметров индикатора MACD могут вызвать ложные сигналы.
Приближаясь к поворотным моментам тренда, сигналы MACD, как правило, производят больше ошибок.
Когда цены находятся в длительном периоде консолидации, эта стратегия не может определить четкое направление тренда, что приводит к увеличению колебаний прибыли/убытка и более длительным срокам вывода.
Различные комбинации параметров могут быть протестированы, чтобы найти параметры MACD, которые производят более точные сигналы.
Рассмотреть возможность добавления подтверждения от других технических индикаторов, таких как RSI и KD, чтобы сформировать консенсус из нескольких индикаторов, тем самым повышая надежность стратегии.
Немедленно прекратите потерю, когда цены совершают значительное изменение, что может эффективно избежать увеличения потерь.
Стратегия MACD 200-дневного скользящего среднего кроссовера сочетает в себе двойные функции суждения о тренде и суждения о торговых сигналах, которые могут эффективно повысить вероятность прибыльности. Это относительно надежная и надежная количественная стратегия торговли.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-02 00:00:00 period: 1m basePeriod: 1m 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/ // © x11joe //@version=4 //This strategy is based on a youtube strategy that suggested I do this...so I did! strategy(title="MacD 200 Day Moving Average Signal Crossover Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Getting inputs fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal moving_avg_length = input(title="Moving Average Length", type=input.integer, defval=200) moving_avg = sma(close,moving_avg_length) moving_avg_normalized = close - moving_avg plot(moving_avg_normalized, title="Moving Average Normalized", style=plot.style_line, color=color.orange,linewidth=3) plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) plot(macd, title="MACD", color=col_macd, transp=0) plot(signal, title="Signal", color=col_signal, transp=0) if(macd>signal and macd<0 and close>moving_avg) strategy.entry("buy",strategy.long) if(close<moving_avg and macd<signal and macd>0) strategy.entry("sell",strategy.short)