Стратегия идентифицирует направление тренда в сочетании с трендовым индикатором DMI и движущейся средней для подачи сигналов о покупке и продаже. Стратегия создает торговый сигнал, когда DMI показывает, что предложение вступило в состояние тренда, а движущаяся средняя подтверждает направление тренда.
Стратегия основана на двух показателях:
DMI включает в себя DMI+ и DMI-, используемые для идентификации наличия и направления тренда. Когда DMI+ выше DMI-, указывается на повышение; когда DMI- выше DMI+, указывается на снижение.
Движущаяся средняя, обычно выбираемая средняя от 15 до 50 дней, используется для определения направления ценовой тенденции. Когда цена выше (ниже) движущейся средней, она показывает тенденцию к росту (снижению).
Сначала стратегия рассчитывает ДМИ+, ДМИ- и движущиеся средние. В то время как ДМИ показывает состояние тренда ((ДМИ+ выше ДМИ- или ДМИ- выше ДМИ+), в то же время, если движущаяся средняя также подтверждает направление тренда, то создается торговый сигнал.
В этой стратегии также добавлена опция обратного ввода. После включения обратного ввода, сигналы опережения и пустоты будут обратными.
Такая стратегия, объединяющая трендовые и трендовые индикаторы, позволяет повысить надежность сигналов, используя преимущества обоих показателей в качестве взаимодополняющих.
Преимущество DMI заключается в том, что он позволяет быстро идентифицировать тренды. В то время как движущаяся средняя может отфильтровывать часть шума, подтверждая направление тренда.
Кроме того, в стратегию добавлена опция поворота, которая позволяет выбирать позитивную или негативную торговлю в зависимости от фактических потребностей. Это увеличивает гибкость стратегии.
Основные риски этой стратегии:
При переходе в тренд может возникнуть ошибочный сигнал, что может привести к убыткам. Для этого необходимо скорректировать параметры или установить стоп-лосс, чтобы контролировать риск.
Формирование тренда занимает определенное время, в течение которого стратегия подвержена воздействию ценовых колебаний, создавая ошибочные сигналы. Для фильтрации такого шума можно соответствующим образом скорректировать DMI и параметры промежуточного периода движущейся средней.
В обратном порядке торговля рискует увеличить убытки при регрессии. При запуске обратного пути необходимо контролировать долю одиночных убытков или использовать движущийся стоп для блокировки части прибыли.
При разных породах и разных временных периодах параметры требуют переоптимизации. Прямое воспроизведение параметров может быть неэффективным при использовании в других породах или периодах.
Эта стратегия может быть оптимизирована в следующих аспектах:
Тестирование различных циклических параметров скользящих средних и нахождение оптимальной комбинации параметров для преобразования тенденции сцепления.
Тестирование параметров цикла сглаживания DMI, кратковременный обратный шум, возникающий в фильтрующей тенденции.
Оценить разницу между эффективностью включенной обратной опции и торговли по умолчанию в историческом отслеживании и выбрать более оптимальный вариант.
Включение стратегий остановки убытков, таких как движущиеся остановки, временные остановки, преодоление остановки убытков и т. Д., Чтобы контролировать одиночные потери.
Оценить эффективность оптимизации параметров различных сортов и циклов, оптимизировать комбинацию параметров.
Фильтрация в сочетании с другими индикаторами, такими как сильный и слабый RSI, позволяет избежать ошибочных сигналов в локальных критических точках.
Эта стратегия объединяет преимущества обоих показателей - динамического трендового индикатора DMI и движущейся средней, чтобы войти в игру раньше, когда формируются тенденции, и избежать заключения в шоковых ситуациях. Опция обратной торговли также увеличивает гибкость стратегии.
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 03/03/2017
// The related article is copyrighted material from Stocks & Commodities Aug 2009
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining DMI And Moving Average For A EUR/USD Trading System")
Length_MA = input(30, minval=1)
Length_DMI = input(14, minval=1)
reverse = input(false, title="Trade reverse")
xMA = sma(close, Length_MA)
up = change(high)
down = -change(low)
trur = rma(tr, Length_DMI)
xPDI = fixnan(100 * rma(up > down and up > 0 ? up : 0, Length_DMI) / trur)
xNDI = fixnan(100 * rma(down > up and down > 0 ? down : 0, Length_DMI) / trur)
nPDI = xPDI
nNDI = xNDI
nMA = xMA
nPDI_1 = xPDI[1]
nNDI_1 = xNDI[1]
nMA_1 = xMA[1]
bMDILong =iff(nPDI > nNDI and nPDI_1 < nNDI_1, true,
iff(nPDI < nNDI and nPDI_1 > nNDI_1, false, false))
bMDIShort = iff(nPDI > nNDI and nPDI_1 < nNDI_1, false,
iff(nPDI < nNDI and nPDI_1 > nNDI_1, true, false))
bMALong = iff(close > nMA and close[1] < nMA_1, true,
iff(close < nMA and close[1] > nMA_1, false, false))
bMAShort = iff(close > nMA and close[1] < nMA_1, false,
iff(close < nMA and close[1] > nMA_1, true, false))
pos = iff(bMDILong and bMALong, 1,
iff(bMDIShort and bMAShort, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1 )
strategy.entry("Long", strategy.long)
if (possig == -1 )
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nPDI, color=green, title="DMI Plus")
plot(nNDI, color=red, title="DMI Minus")