Стратегия торговли на основе индикаторов ADX и MACD

Автор:Чао Чжан, Дата: 2023-12-13 15:45:24
Тэги:

img

Обзор

Стратегия называется Стратегия следования тренду на основе индикаторов ADX и MACD. Она использует средний индекс направленного движения (ADX) для определения направления и силы тренда, в сочетании с торговыми сигналами от движущейся средней конвергенции дивергенции (MACD), для реализации тренда после сделок. Она будет устанавливать длинные или короткие позиции только тогда, когда ADX указывает на сильный тренд, а MACD дает торговые сигналы.

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

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

В частности, логика торговых сигналов:

Длинный сигнал: +DI > -DI и линия разницы MACD пересекается над линией сигнала
Короткий сигнал: -DI > +DI и линия разницы MACD пересекается ниже линии сигнала

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

Преимущества

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

Кроме того, реализована логика стоп-лосса. Она будет активно сокращать убытки, если потеря позиции превысит установленную пользователем цену стоп-лосса. Это также является особенностью стратегии.

Риски

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

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

  2. Определенная пользователем цена стоп-лосса может быть проникнута, что приводит к убыткам, превышающим ожидания.

  3. Слишком много неэффективных сделок может произойти на различных рынках, пожирая транзакционные расходы.

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

Руководство по улучшению

В этой стратегии все еще есть возможности для улучшения:

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

  2. Параметры ADX и MACD можно автоматически оптимизировать с помощью машинного обучения.

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

Эти методы могут способствовать дальнейшему улучшению стабильности и рентабельности стратегии.

Заключение

В заключение, стратегия следующего за трендом, основанная на индикаторах ADX и MACD, имеет преимущества в определении направления тренда, поиске оптимального времени входа, установке логики остановки и т. Д., Что делает ее значительной торговой системой. При правильном настройке параметров и контроле рисков она способна приносить достойную доходность от инвестиций. Но трейдеры все равно должны быть осторожны с потенциальными рисками и внимательно следить за меняющейся рыночной средой.


/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("TUE ADX/MACD Confluence V1.0", overlay=true)

showsignals = input(true, title="Show BUY/SELL Signals")
showcandlecolors = input(true, title="Show Candle Colors")
length = input(14, title="ADX Length")
smoothing = input(10, title="ADX Smoothing")
macdsource = input(close, title="MACD Source")
macdfast = input(12, title="MACD Fast Length")
macdslow = input(26, title="MACD Slow Length")
macdsignal = input(9, title="MACD Signal Length")
colorup = input(color.green, title="Up Candle Color")
colordown = input(color.red, title="Down Candle Color")

/////////////////////////////////////////////////////////////////////////////////////////////// ADX AND MACD CALC
[diplus, diminus, adx] = ta.dmi(length, smoothing)

[macdline, signalline, histline] = ta.macd(macdsource, macdfast, macdslow, macdsignal)

//////////////////////////////////////////////////////////////////////////////////////////////TRADE CALC

longcheck = diplus > diminus and macdline > signalline
shortcheck = diminus > diplus and signalline > macdline

int trade = 0

//Open from nothing

if trade == 0 and longcheck
    trade := 1

else if trade == 0 and shortcheck
    trade := -1
    
//Reversal

else if trade == 1 and shortcheck
    trade := -1
    
else if trade == -1 and longcheck
    trade := 1
    
//Keep status quo until crossover

else
    trade := trade[1]

//////////////////////////////////////////////////////////////////////////////////////////////PLOT 

colors = longcheck ? colorup : shortcheck ? colordown : color.white

plotcandle(open, high, low, close, color = showcandlecolors ? colors : na)

plotshape(trade[1] != 1 and trade == 1 and showsignals, style=shape.labelup, text='BUY', textcolor=color.white, color=color.green, size=size.small, location=location.belowbar)
plotshape(trade[1] != -1 and trade == -1 and showsignals, style=shape.labeldown, text='SELL', textcolor=color.white, color=color.red, size=size.small, location=location.abovebar)

///////////////////////////////////////////////////////////////////////////////////////////// ALERTS

// Add Stop Loss
stopLossPrice = input(100, title="Stop Loss Price")

if trade == 1
    strategy.entry("Long", strategy.long)

if trade == -1
    strategy.entry("Short", strategy.short)

if trade == 1 and close < close[1] - stopLossPrice
    strategy.close("LongExit")

if trade == -1 and close > close[1] + stopLossPrice
    strategy.close("ShortExit")


Больше