
Эта торговая стратегия является количественной стратегией для перекрестных операций по сигналу на основе 200-дневного движущегося среднего значения MACD. Она сочетает в себе двойную функцию MACD по определению рынковых сигналов покупки и продажи и 200-дневного движущегося среднего значения для определения рыночных тенденций, чтобы выявить более точные моменты входа и выхода на рынок.
В центре этой стратегии два момента:
Кроссовка быстрой и медленной линий MACD дает сигнал к покупке и продаже. Когда быстрая линия прорывает медленную линию снизу, она дает сигнал к покупке; когда быстрая линия падает сверху и нарушает медленную линию, она дает сигнал к продаже.
200-дневная движущаяся средняя линия определяет общее движение рынка. Цены выше 200-дневной средней линии - это многоголовый рынок, а ниже - свободный рынок.
В соответствии с этими двумя принципами, конкретные правила торговли в рамках этой стратегии следующие:
При покупке, когда быстрая линия MACD спускается вниз и прорывает медленную линию MACD, столбчатая диаграмма отрицательна, а цена выше 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)