Стратегия многократного отслеживания тенденций

Автор:Чао Чжан, Дата: 2023-11-17 17:19:37
Тэги:

img

Обзор

Стратегия многократного отслеживания трендов широко использует четыре индикатора MACD, RSI, ATR и DEMA для выявления долгосрочных и краткосрочных тенденций акций и проведения торговли отслеживанием трендов.

Логика стратегии

Стратегия торговли MACD

MACD - это обозначение движущегося среднего конвергентного дивергенса, который является индикатором, следующим за трендом. MACD состоит из быстро движущейся средней линии и медленно движущейся средней линии, обычно используя параметры 12-дневной EMA для быстрой линии, 26-дневной EMA для медленной линии и сигнальной линии как 9-дневной EMA MACD. Когда MACD пересекает линию сигнала, это сигнал покупки, а когда пересекает ниже, это сигнал продажи. Эта стратегия использует золотой крест MACD и мертвый крест для определения направления тренда.

Стратегия перекупленной перепроданной стоимости

RSI означает индекс относительной силы, который отражает состояние перекупленности и перепроданности акций.

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

Эта стратегия широко использует четыре индикатора MACD, RSI, ATR и DEMA, принимая во внимание как отслеживание тренда, так и торговлю прорывом, которые могут найти лучшие точки входа в тренд.

  1. MACD может эффективно определить направление и поворотные моменты средне- и долгосрочных тенденций цен на акции.

  2. RSI может судить о том, является ли акция перекупленной или перепроданной в краткосрочной перспективе, чтобы избежать погони за максимумами и продажи минимумов в моменты перелома тренда.

  3. ATR динамически регулирует положение стоп-потери для эффективного контроля одиночных потерь.

  4. DEMA служит вспомогательным индикатором для фильтрации шума.

  5. Сочетание нескольких индикаторов может повысить надежность торговых сигналов.

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

В этой стратегии также есть некоторые риски:

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

  2. ATR как динамический индикатор стоп-лосса подвержен нарушениям при больших колебаниях, приводящих к потерям.

  3. DEMA как трендовый фильтр может фильтровать некоторые более сильные краткосрочные торговые возможности.

  4. Неправильные параметры стратегии могут привести к частой торговле, увеличению затрат на транзакции и потерям от скольжения.

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

Руководство по оптимизации

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

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

  2. Добавьте стратегии стоп-лосса, такие как движущаяся стоп-лосс, средняя стоп-лосс и т.д., чтобы еще больше контролировать риски.

  3. Для улучшения точности сигналов необходимо внедрить дополнительные показатели оценки, такие как KDJ, Bollinger Bands и т.д.

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

  5. Дифференцированные параметры для бычьих и медвежьих рынков.

  6. Построение моделей по характеристикам запасов для улучшения адаптивности.

Резюме

Стратегия многократного отслеживания тренда интегрирует MACD, RSI, ATR и DEMA четыре индикатора, достигая органической комбинации отслеживания тренда и прорыва тренда. По сравнению с стратегиями с одним индикатором эта стратегия может обеспечить более надежные торговые сигналы и избежать определенных ложных сигналов. Благодаря оптимизации параметров, стратегиям остановки потерь, вспомогательным суждениям и т. Д. Выполнение стратегии может быть еще лучше. Эта стратегия подходит для количественной торговли, требующей более высоких возможностей переключения тренда, и является перспективной идеей стратегии, которая стоит долгосрочного отслеживания и оптимизации.


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 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/
// © prim722

// © OTS Music

//@version=4
strategy("Atrend by OTS", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
if (crossover(delta, 0))
	strategy.entry("MACD buy", strategy.long, comment="MACD buy")
if (crossunder(delta, 0))
	strategy.entry("MACD sell", strategy.short, comment="MACD sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
length = input( 18 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
if (not na(vrsi))
	if (co)
		strategy.entry("RSI buy", strategy.long, comment="RSI buy")
	if (cu)
		strategy.entry("RSI sell", strategy.short, comment="RSI sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=false)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.white)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="", text="", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.white, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_line, linewidth=2, color=color.gray)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="", text="", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.white : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.gray : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="ATrend Buy", message="ATrend Buy!")
alertcondition(sellSignal, title="ATrend Sell", message="ATrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="ATrend Direction Change", message="ATrend has changed direction!")

length1 = input(25, minval=1)
srcb = input(close, title="Source")
e1 = ema(srcb, length1)
e2 = ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color.red)

Больше