
Стратегия принимает торговые решения на основе гистограммы MACD. Она использует восходящие и нисходящие тенденции гистограммы для создания сигналов покупки и продажи. Соответствующие сигналы создаются после того, как гистограммы достигают определенного цикла.
Эта стратегия использует быструю линию, медленную линию и гистограмму MACD. Сначала вычисляется быстрая EMA и медленная EMA. Затем быстрая линия вычитается из медленной линии, чтобы получить MACD, а MACD вычитается из его движущейся средней.
Когда последовательный восходящий тренд Хистограммы достигает установленного цикла, появляется сигнал покупки. Это означает, что MACD ускоряется вверх, прорывая свою сигнальную линию и прогнозируя, что цена может вырасти.
Продажа происходит после того, как последовательная нисходящая тенденция в гистограмме достигает установленного цикла. Это означает, что MACD ускоряется вниз, нарушая свою сигнальную линию, и прогнозирует, что цена может упасть.
Эта стратегия имеет следующие преимущества:
Используя трендовую способность MACD-гистограммы, можно уловить переломные моменты изменения цены и повысить вероятность получения прибыли.
В сочетании с циклическими условиями, когда гистограмма продолжает расти или падать, можно отфильтровывать часть шумных сделок, уменьшая ненужные потери.
Разрешается настройка MACD-параметров и циклов трендов гистограммы, которые могут быть адаптированы для различных сортов и периодов торгов.
Логика стратегии проста и понятна, легко понятна и изменяется, а также удобно использоваться в сочетании с другими показателями или комбинациями стратегий.
Однако эта стратегия также несет в себе некоторые риски:
Когда цены находятся в колебательном диапазоне, может возникнуть ошибочный сигнал, требующий фильтрации в сочетании с индикаторами тренда.
После того, как гистограмма поднимается или падает, MACD-линия может быть не в состоянии прорваться через линию сигнала, не получить выхода из прибыли, и необходимо установить стоп-лосс, чтобы контролировать риск.
Прибыль в режиме реального времени может быть уменьшена, если не учитывать фактические транзакционные проблемы, такие как затраты на транзакцию и скольжение.
Неправильная настройка параметров (например, MACD-циклы, циклы трендов гистограммы и т. д.) может привести к нарушению эффективности стратегии, требующей оптимизации для разновидностей и периодов времени.
Эти риски можно контролировать и уменьшать, используя такие методы, как комбинация с трендовыми индикаторами, установка стоп-лосс механизмов и оптимизация параметров.
Эта стратегия может быть оптимизирована в следующих направлениях:
В сочетании с другими показателями, чтобы определить общую тенденцию, избегайте торгового колебания. Например, 20-дневная линия, чтобы определить среднюю и длинную тенденции.
Повышение механизма остановки убытков. Например, остановка при повторном прохождении MACD по сигнальной линии.
Оптимизация MACD-параметров для различных циклов. Например, для высокочастотных данных можно сократить циклические параметры.
Оптимизация минимального количества циклов непрерывного повышения или понижения гистограммы, балансирующего частоту и надежность сигнала.
Стратегическая логика отслеживания сигнала после неудачной попытки Брейкута. То есть отслеживание обратного сигнала после того, как гистограмма перевернулась.
Комбинация с другими показателями, такими как количественный показатель, показатель колебаний и т. Д., чтобы определить теплоту рынка, фильтрующий сигнал.
Стратегия MACD Histogram Trend используется для определения переменных в ценовых изменениях путем захвата изменений в тренде Histogram. В сочетании с оптимизацией параметров и определением комбинации показателей, она может эффективно отсеивать ошибочные сигналы.
/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study(title="Histogram Strategy by Sedkur", shorttitle="Histogram Strategy by Sedkur")
strategy (title="Histogram Trends Strategy by Sedkur", shorttitle="Histogram Trends Strategy by Sedkur")
/// Getting inputs
dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
hist_length = input(title="Trend of Histogram Number", type=input.integer, defval=1, minval=1, maxval=100)
//buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
//sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
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
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)
//bullish = hist[1] <= hist and buyh<=hist?true:false
//bearish = hist[1] >= hist and sellh>=hist?true:false
bull=0
bear=0
for i=0 to hist_length
if (hist[i+1] <= hist[i])
bull:=bull+1
bullish = bull==hist_length+1?true:false
for j=0 to hist_length
if (hist[j+1] >= hist[j])
bear:=bear+1
bearish = bear==hist_length+1?true:false
//bullish = hist[1] <= hist and hist[2] <= hist and hist[3] <= hist and hist[4] <= hist and hist[5] <= hist?true:false
//bearish = hist[1] >= hist and hist[2] >= hist and hist[3] >= hist and hist[4] >= hist and hist[5] >= hist?true:false
strategy.entry("buy", strategy.long, comment="buy", when = bullish and year>=dyear)
strategy.entry("sell", strategy.short, comment="sell", when = bearish and year>=dyear)