Стратегия следования за трендом на основе двойных индикаторов EMA и AC


Дата создания: 2024-01-15 12:02:54 Последнее изменение: 2024-01-15 12:02:54
Копировать: 3 Количество просмотров: 597
1
Подписаться
1617
Подписчики

Стратегия следования за трендом на основе двойных индикаторов EMA и AC

Обзор

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

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

Стратегия состоит из двух модулей:

  1. Двойной модуль EMA

    • Используйте 2-дневную ЭМА и 20-дневную ЭМА, чтобы построить двойной индикатор ЭМА. Когда цена превышает 2-дневную ЭМА, это считается сигналом покупки; когда цена превышает 20-дневную ЭМА, это считается сигналом продажи.

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

  2. Модуль AC

    • Используйте положительное и отрицательное значения индикатора AC Accelerated Oscillation для подтверждения трендового сигнала. Торговый сигнал создается только в том случае, если двойные индикаторы EMA и AC находятся в одном направлении.

    • Модуль повышает надежность сигнала, фильтруя ложные сигналы.

В совокупности, эта стратегия объединяет в себе двойные суждения EMA о больших тенденциях, а также фильтрацию ложных прорывов в AC-индикаторе, чтобы сформировать систематическую систему отслеживания тенденций.

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

У этой стратегии есть следующие преимущества:

  1. Двойная EMA отслеживает средне-длинные тенденции, AC устраняет кратковременный шум, комбинация работает хорошо.

  2. Сигнальная фильтрация эффективна, она позволяет избежать слепого зачистки после получения большего количества голосов или слепого зачистки после получения большего количества голосов.

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

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

  5. Помимо того, что это очень популярный сорт, он также имеет хорошие отслеживаемые результаты.

Анализ стратегических рисков

Однако есть и другие риски:

  1. Неправильная настройка параметров двойной EMA может привести к пропуску более коротких трендов или созданию избыточных сделок.

  2. Неправильная настройка параметров AC может отфильтровать более слабый эффективный сигнал или недостаточное количество шума.

  3. Невозможность справиться с быстро меняющимися рынками, такими как стремительные скалистые падения.

  4. В качестве стратегии отслеживания трендов следует использовать то, что не позволяет получить достаточную прибыль в условиях бурного рынка.

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

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

  1. Тестируйте больше комбинаций параметров, чтобы найти оптимальные, которые лучше соответствуют характеристикам разных сортов.

  2. Добавление модуля “стоп-лост” для прекращения убытков при чрезмерном убытке.

  3. Оптимизация фильтрации сигнала в сочетании с другими показателями.

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

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

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

Исходный код стратегии
/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/01/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The Accelerator Oscillator has been developed by Bill Williams 
// as the development of the Awesome Oscillator. It represents the 
// difference between the Awesome Oscillator and the 5-period moving 
// average, and as such it shows the speed of change of the Awesome 
// Oscillator, which can be useful to find trend reversals before the 
// Awesome Oscillator does.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos

AC(nLengthSlow,nLengthFast) =>
    pos = 0.0
    xSMA1_hl2 = ta.sma(hl2, nLengthFast)
    xSMA2_hl2 = ta.sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = ta.sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    cClr = nRes > nRes[1] ? color.blue : color.red
    iff_1 = nRes > 0 ? 1 : nz(pos[1], 0)
    pos := nRes < 0 ? -1 : iff_1           
    pos

strategy(title='Combo 2/20 EMA & Accelerator Oscillator (AC)', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Accelerator Oscillator  ═════●'
nLengthSlow = input(33,  title="Length Slow", group=I2)
nLengthFast = input(6, title="Length Fast", group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)

StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAC = AC(nLengthSlow,nLengthFast)
iff_1 = posEMA20 == -1 and prePosAC == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAC == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)