
Эта стратегия называется комбинацией DEMA MACD. Она объединяет средний показатель DEMA и показатель MACD, используя подтверждение двух индикаторов для подачи сигналов о покупке и продаже. Основная идея заключается в том, чтобы одновременно использовать индикатор тренда DEMA и динамический индикатор MACD для многократного подтверждения, чтобы получить лучшую стратегическую эффективность за счет повышения точности сигнала.
Эта стратегия основана на комбинации показателей средней линии DEMA и MACD. Конкретные принципы следующие:
Вычислите 21-ю среднюю линию DEMA, которая считается сигналом покупки, когда она проходит через среднюю линию DEMA на закрытии цены, и сигналом продажи, когда она проходит через среднюю линию DEMA ниже.
Расчет разницы MACD и добавление параметров для контроля того, требуется ли MACD-дифференциал больше 0 в качестве дополнительного подтверждения покупательского сигнала.
При появлении среднелинейного покупательного сигнала в DEMA, если включить дополнительное подтверждение, что разница MACD больше 0, необходимо подождать, пока разница MACD перейдет в положительное значение, чтобы вызвать настоящий покупательный сигнал.
При появлении сигнала продажи в DEMA, сигнал продажи выдается напрямую, без дополнительного подтверждения MACD.
С помощью этой комбинации двух показателей можно использовать среднюю линию DEMA для определения направления тренда, а также использовать разницу MACD для определения того, находится ли в настоящее время в начале тренда, чтобы избежать фальсификации и увеличения прибыли.
Преимущества этой стратегии в сочетании с средней линией DEMA и MACD проявляются в следующих аспектах:
DEMA более чувствителен к изменениям в тренде, чтобы не попасть в ловушку шока.
Различие MACD больше 0 подтверждает, что можно отфильтровать ложные сигналы, покупая только в начале тренда, чтобы расширить пространство для получения прибыли.
Продажа DECL без подтверждения MACD может быть быстро прекращена, чтобы сохранить максимальную прибыль.
Двойные индикаторы взаимно проверяют друг друга для повышения точности сигналов и снижения вероятности ошибочных сделок.
Параметры могут быть оптимизированы, чтобы адаптироваться к различным рыночным условиям.
Основные риски этой стратегии:
Чувствительность реакции DEMA также более склонна к ошибочным сигналам, которые требуют проверки MACD-показателями.
MACD-индикаторы задерживаются и могут пропустить оптимальный момент покупки.
В зависимости от оптимизации параметров, различные параметры могут быть адаптированы к различным рынкам. Необходимо постоянно проводить обратную проверку, чтобы найти оптимальные параметры.
Риск сериализации корреляции. DEMA и MACD зависят от расчетов EMA, высокая корреляция, точность сигнала сомнительна.
В соответствии с решением:
Добавление проверки других показателей, построение комбинаций с несколькими показателями снижает вероятность ошибок.
Попробуйте заменить MACD на BB, KD и другие ведущие показатели, чтобы заранее поймать точки покупки.
Создание механизмов оптимизации и обновления параметров для оценки их здоровья в режиме реального времени.
Попытка внедрения не связанных показателей, например, сейсмических, снижает риск корреляции.
Эта стратегия может быть оптимизирована в следующих направлениях:
Попробуйте изменить параметры DEMA, чтобы найти оптимальную комбинацию параметров. Чувствительность, на которую непосредственно влияют параметры DEMA.
Увеличение механизма стоп-лома. В настоящее время стратегия зависит только от DECL продавать сигнал стоп-лома, можно установить мобильный стоп-лома или процент стоп-лома.
Добавление других предшествующих показателей вместо MACD, для поиска более ранних сигналов. Например, линия Бринна, KDJ и т. д.
Введение независимых показателей повышает устойчивость стратегии, например, добавление объема сделок, показателей потрясений и т. д.
Построение механизмов оптимизации и обновления параметров, оценка здоровья параметров в режиме реального времени, автоматическая корректировка параметров.
Эта стратегия использует в сочетании среднюю линию DEMA и индикатор MACD, чтобы использовать преимущества обоих для подтверждения и выдачи сигналов о покупке и продаже. По сравнению с отдельным индикатором, она имеет более высокую чувствительность и точность сигнала. В то же время существует определенный простор для улучшения, после чего можно оптимизировать такие направления, как оптимизация параметров, увеличение стоп-лосса и введение предварительных показателей, чтобы сделать стратегию более устойчивой и интеллектуальной.
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © melihtuna
//@version=1
strategy("DEMA Strategy with MACD", overlay=true)
// === Trend Trader Strategy ===
DemaLength = input(21, minval=1)
MacdControl = input(false, title="Control 'MACD Histogram is positive?' when Buy condition")
e1 = ema(close, DemaLength)
e2 = ema(e1, DemaLength)
dema1 = 2 * e1 - e2
pos = close > dema1 ? 1 : 0
barcolor(pos == 0 ? red: pos == 1 ? green : blue )
plot(dema1, color= blue , title="DEMA Strategy with MACD")
// === 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 = 2020, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === MACD ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdCond= MacdControl ? histLine[0] > 0 ? true : false : true
strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond)
strategy.entry("SELL", strategy.short, when = window() and pos == 0)