Стратегия следования за трендом на основе скользящей средней


Дата создания: 2024-02-20 14:36:11 Последнее изменение: 2024-02-20 14:36:11
Копировать: 0 Количество просмотров: 614
1
Подписаться
1617
Подписчики

Стратегия следования за трендом на основе скользящей средней

Обзор

Стратегия основана на DMI-индикаторе, который определяет направление тенденции цен на акции, отслеживая перекрёстки +DI и -DI, в сочетании с ADX-индикатором, чтобы идентифицировать сильные и слабые тенденции, что позволяет отслеживать тенденцию.

Стратегический принцип

Стратегия использует два компонента показателя DMI: +DI и -DI. +DI измеряет движение вверх, +DI вверх, -DI указывает на усиление движения вверх, -DI измеряет движение вниз, -DI вниз, +DI указывает на усиление движения вниз.

Когда +DI находит -DI, это означает, что формируется восходящая тенденция, и в этом случае стратегия является многосторонним входом. После входа, линейный перемещающийся стоп отслеживает определенную долю наивысшей цены. Когда цена отступает, стоп снижается, в некоторой степени блокируя предыдущую прибыль.

Когда -DI пересекает +DI, означает замену нисходящей тенденции, в этом случае стратегия является равномерной. Сила и слабость тенденции могут быть идентифицированы с помощью показателя ADX. Чем выше ADX, тем более очевидна тенденция цен на акции.

В целом, эта стратегия позволяет зафиксировать переломные моменты в тенденциях цен на акции и отслеживать движущиеся средние тренды.

Анализ преимуществ стратегии

Преимущества этой стратегии заключаются в трех аспектах:

  1. Использование показателя DMI для определения направления тенденции цен на акции является более точным. DMI более точен для определения обратной тенденции, чем такие показатели, как простая движущаяся средняя.

  2. Используйте индикаторы ADX, чтобы определить сильные и слабые стороны тренда, избегайте частых торгов в условиях шока.

  3. Линейный механизм движущегося остановки, который позволяет динамически регулировать положение остановки, заблаговременно останавливать потерю при обратном тренде. И блокировать часть прибыли, эффективно контролируя риск.

  4. Правила стратегии простые, понятные, легко понятные и реализуемые, подходящие для количественных сделок.

Анализ рисков

Основные риски этой стратегии:

  1. Возможность того, что индикатор DMI не будет работать на некоторых специфических рынках. DMI не применим ко всем рынкам и может создавать ошибочные сигналы, когда тенденция не очевидна.

  2. Риск падения цены акций после превышения точки остановки. Существует определенный буфер, который может снизить этот риск.

  3. Риск неправильной настройки параметров ADX. Параметры ADX напрямую влияют на результаты выбора стратегии, если настройка слишком большая или слишком маленькая, это может повлиять на производительность.

  4. Из-за использования линейного подвижного метода остановки убытков существует риск быть остановленным в быстром росте. При этом параметры отслеживания убытков могут быть скорректированы в зависимости от конкретных обстоятельств.

Дополнительное снижение риска может быть достигнуто с помощью параметровой настройки, строгого остановки и оптимизации процедурных рамок.

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. В качестве вспомогательного решения используются другие показатели, такие как MACD, KDJ и т. д., чтобы повысить стабильность стратегии.

  2. Тестирование различных способов остановки, таких как кривоперемещающаяся остановка, времяперемещающаяся остановка и др.

  3. Увеличение механизма управления позициями, постепенное увеличение позиций после определения направления тенденции, повышение доходности.

  4. Методы, такие как высокочастотный фактор и машинное обучение, динамически оптимизируют параметры DMI и ADX, чтобы сделать стратегию более интеллектуальной.

  5. Добавление программируемых модулей управления ветром, использование бюджетных методов риска и тщательное управление максимальной отдачей.

Сотрудничество с различными средствами позволяет эффективно повысить эффективность, стабильность и безопасность стратегии.

Подвести итог

Общая логика работы стратегии ясна и понятна. Используйте индикатор DMI для определения направления тенденции цен на акции, индикатор ADX для определения силы тенденции, линейный метод остановки движущихся потерь для эффективного контроля риска.

Исходный код стратегии
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 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/
//@version=5
//1.0 - 240202 @caddjax

strategy(title = "+DI Crossover", overlay=false)

//DMI + ADX Chart w/ overlay
// © jrregencia

lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(6, minval=1, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
adxmax = input.int(50, title="ADX Max Buying Area", minval=1, maxval=100)
adxmin = input.int(0, title="ADX Min Buying Area", minval=0, maxval=99)



//DI cross alert
DIPcross = ta.crossover(plus, minus) ? plus : na
plotshape(DIPcross, style = shape.cross , color=color.white, location=location.absolute)

plot(adx, color=color.rgb(255, 238, 0, 23), title="ADX", linewidth=2)
p1 = plot(plus, color=color.rgb(16, 137, 0, 31), title="+DI", linewidth=1)
p2 = plot(minus, color=color.rgb(143, 82, 255, 25), title="-DI", linewidth=1)
adxmaxl = hline(adxmax, title="ADX MaxLine", color=color.silver, linestyle=hline.style_solid)
adxminl = hline(adxmin, title="ADX MinLine", color=color.silver, linestyle=hline.style_solid)
fill(p1, p2, title="Cloud Fill", color = plus > minus ? color.teal : color.red, transp=50)
fill(adxmaxl, adxminl, title="ADX Fill", color=color.silver, transp=90)

// Configure trail stop level with input options (optional)
longTrailPerc = input.float(3, title="Trail Long Loss (%)",
     minval=0.0, step=0.1) * 0.01
// Determine trail stop loss prices
longStopPrice = 0.0

// Determine entry condition
enterLong = ta.crossover(plus, minus) ? plus : na

longStopPrice := if strategy.position_size > 0
    stopValue = high[1] * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0
// Submit entry orders
if enterLong
    strategy.entry("EL", strategy.long)    
// Submit exit orders for trail stop loss price
if strategy.position_size > 0
    strategy.exit("XL TRL STP", stop=longStopPrice)