
Описание: Эта стратегия использует MACD-индикатор для генерации торговых сигналов на нескольких временных рамках для осуществления трендового отслеживания. Основная идея заключается в том, чтобы подтвердить направление тренда на высокоциклических временных рамках, а затем искать конкретные моменты входа на низкоциклических временных рамках.
Принципы стратегии: Стратегия использует разрыв MACD и пересечение сигнальных линий для определения направления тренда. В частности, она рассчитывает разрыв MACD и сигнальную линию в высокоциклических временных рамках (например, 60 минут). При прохождении сигнальной линии на разрыве генерируется сигнал покупки, а при прохождении сигнальной линии - сигнал продажи, который используется для подтверждения общего направления тренда.
Затем стратегия рассчитывает MACD в низкоциклических временных рамках ((текущий цикл), входя в соответствующие позиции, когда происходит перекрестное отклонение от линии отклонения и линии сигнала. Таким образом, высокий цикл используется для определения направления тенденции, а низкий - для поиска конкретных точек входа.
Эта стратегия также использует изменение цвета столбчатого графика, чтобы помочь определить тенденцию, зеленый столб показывает, что он растет, а красный - что он падает.
Анализ силы:
Многочасовая структура, высокий цикл определяет направление тренда, низкий цикл ищет входную точку, хорошая систематичность
Используйте перекрестный MACD-индикатор для определения времени купли-продажи, параметры индикатора оптимизированы, сигнал более надежен.
Цветовая диаграмма помогает определить текущее состояние тренда, формирует множественную проверку и повышает точность принятия решений.
Автоматическое отслеживание трендов, без особого вмешательства человека, сокращение эмоциональных ошибок.
Анализ рисков:
MACD, как индикатор, отслеживающий долгосрочные тенденции, может в краткосрочной перспективе создавать ошибочные сигналы, приводящие к ненужным потерям.
Многочасовые рамки стратегии из-за необходимости одновременного рассмотрения нескольких циклов, параметры оптимизации и тестирования сложнее.
Стратегия не устанавливает стоп-лосс, что может привести к большим потерям.
Направление оптимизации:
Оптимизируйте параметры MACD, чтобы найти оптимальную комбинацию параметров.
Увеличение механизмов сдерживания убытков и ограничение максимальных потерь.
Оценить, нужно ли добавлять другие показатели для фильтрации сигнала и улучшения качества сигнала.
Тестируйте различные комбинации временных рамок, чтобы найти оптимальное совпадение временных рамок.
В заключение: В целом, эта стратегия хорошо продумана, и в сочетании с многочисленными преимуществами MACD-индикатора, она может эффективно отслеживать средне-долгосрочные тенденции. Однако, поскольку не было установлено стоп-лосс, трудно избежать риска расширения краткосрочных убытков, это направление, которое требует дальнейшей оптимизации. В целом, эта стратегия, благодаря своей сильной способности отслеживать тенденции, обеспечивает высококачественный выбор акций и рамки для принятия решений для количественной торговли.
/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@author : SudeepBisht
//@version=2
strategy(title="SB_CM_MacD_Ult_MTF", shorttitle="SB_CM_Ult_MacD_MTF")
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")
res = useCurrentRes ? timeframe.period : resCustom
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal
outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)
histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0
//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal
plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime
circleYPosition = outSignal
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
// hline(0, '0 Line', linestyle=solid, linewidth=2, color=white)
macd_chk=smd and outMacD ? outMacD : na
checker=smd and outSignal ? outSignal : na
if (crossover(macd_chk,checker))
strategy.entry("BBandLE", strategy.long, comment="BBandLE")
if (crossunder(macd_chk, checker))
strategy.entry("BBandSE", strategy.short, comment="BBandSE")