Стратегия многократного отслеживания трендов широко использует четыре индикатора MACD, RSI, ATR и DEMA для выявления долгосрочных и краткосрочных тенденций акций и проведения торговли отслеживанием трендов.
MACD - это обозначение движущегося среднего конвергентного дивергенса, который является индикатором, следующим за трендом. MACD состоит из быстро движущейся средней линии и медленно движущейся средней линии, обычно используя параметры 12-дневной EMA для быстрой линии, 26-дневной EMA для медленной линии и сигнальной линии как 9-дневной EMA MACD. Когда MACD пересекает линию сигнала, это сигнал покупки, а когда пересекает ниже, это сигнал продажи. Эта стратегия использует золотой крест MACD и мертвый крест для определения направления тренда.
RSI означает индекс относительной силы, который отражает состояние перекупленности и перепроданности акций.
Эта стратегия широко использует четыре индикатора MACD, RSI, ATR и DEMA, принимая во внимание как отслеживание тренда, так и торговлю прорывом, которые могут найти лучшие точки входа в тренд.
MACD может эффективно определить направление и поворотные моменты средне- и долгосрочных тенденций цен на акции.
RSI может судить о том, является ли акция перекупленной или перепроданной в краткосрочной перспективе, чтобы избежать погони за максимумами и продажи минимумов в моменты перелома тренда.
ATR динамически регулирует положение стоп-потери для эффективного контроля одиночных потерь.
DEMA служит вспомогательным индикатором для фильтрации шума.
Сочетание нескольких индикаторов может повысить надежность торговых сигналов.
В этой стратегии также есть некоторые риски:
Дивергенция может возникнуть при комбинации нескольких индикаторов, что приводит к неправильным торговым сигналам.
ATR как динамический индикатор стоп-лосса подвержен нарушениям при больших колебаниях, приводящих к потерям.
DEMA как трендовый фильтр может фильтровать некоторые более сильные краткосрочные торговые возможности.
Неправильные параметры стратегии могут привести к частой торговле, увеличению затрат на транзакции и потерям от скольжения.
Для контроля рисков параметры показателей могут быть соответствующим образом скорректированы. Для подтверждения также могут быть введены дополнительные показатели суждения. Разработка количественных торговых стратегий требует тщательного анализа исторических данных, надежного бэкстестинга и разумного управления рисками. Я не могу рекомендовать конкретные действия, но могу предложить сосредоточиться на принципах разработки разумной стратегии.
Стратегия также может быть оптимизирована в следующих аспектах:
Испытайте различные комбинации параметров, чтобы найти оптимальные параметры.
Добавьте стратегии стоп-лосса, такие как движущаяся стоп-лосс, средняя стоп-лосс и т.д., чтобы еще больше контролировать риски.
Для улучшения точности сигналов необходимо внедрить дополнительные показатели оценки, такие как KDJ, Bollinger Bands и т.д.
Оптимизируйте выбор времени входа, комбинируя стратегии выхода, чтобы найти лучшие точки входа.
Дифференцированные параметры для бычьих и медвежьих рынков.
Построение моделей по характеристикам запасов для улучшения адаптивности.
Стратегия многократного отслеживания тренда интегрирует 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)