Стратегия торговли с лидирующими индикаторами Ehlers

Автор:Чао ЧжанДата: 31-10-2023 14:13:30
Тэги:

img

Обзор

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

Принцип стратегии

Стратегия сначала рассчитывает Сниженную синтетическую цену (DSP), которая получается путем вычитания значения фильтра Butterworth 3-го порядка из фильтра Butterworth 2-го порядка, чтобы получить функцию, которая находится в фазе с доминирующим циклом данных о реальных ценах.

Затем он вычисляет ведущий индикатор Ehlers (ELI), который получается путем вычитания простой скользящей средней цены синтетической цены с отрывом от самой цены синтетической цены с отрывом, и может дать предварительные указания на циклическую переломную точку.

Наконец, когда линия ELI пересекает DSP, генерируются сигналы покупки и продажи. Если ELI пересекает DSP, генерируется сигнал покупки. Если ELI пересекает DSP, генерируется сигнал продажи.

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

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

Кроме того, объединение ценовой тенденции для генерации торговых сигналов отфильтровывает несущественную низкочастотную информацию о ценах, что делает стратегию более ориентированной на циклические модели цен, не нарушая краткосрочный шум на рынке.

Риски и оптимизация

Основным риском этой стратегии является возможность неправильной идентификации сигналов ELI, что приводит к преждевременному вхождению и потерям.Это может быть оптимизировано путем корректировки параметров индикатора для тонкой настройки чувствительности индикатора.

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

Риски могут управляться путем подтверждения сигналов с помощью других индикаторов или корректировки размеров позиций и стратегий стоп-лосса. Например, установка ордеров стоп-лосса, сокращение размеров позиций и т.д.

Резюме

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


/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/03/2017
// This Indicator plots a single
// Daily DSP (Detrended Synthetic Price) and a Daily ELI (Ehlers Leading
// Indicator) using intraday data.
// Detrended Synthetic Price is a function that is in phase with the dominant
// cycle of real price data. This one is computed by subtracting a 3 pole Butterworth
// filter from a 2 Pole Butterworth filter. Ehlers Leading Indicator gives an advanced
// indication of a cyclic turning point. It is computed by subtracting the simple
// moving average of the detrended synthetic price from the detrended synthetic price.
// Buy and Sell signals arise when the ELI indicator crosses over or under the detrended
// synthetic price.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading
////////////////////////////////////////////////////////////
strategy(title="D_ELI (Ehlers Leading Indicator)", shorttitle="D_ELI (Ehlers Leading Indicator)")
Length = input(7, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=red, linestyle=line)
xHL2 = request.security(syminfo.tickerid, 'D', hl2)
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
xResultEMA = ema(xEMA1_EMA2, Length)
nRes = xEMA1_EMA2 - xResultEMA
pos = iff(nRes > 0, 1,
	     iff(nRes < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(request.security(syminfo.tickerid, "D", xEMA1_EMA2), color=blue, title="D_DSP")
plot(request.security(syminfo.tickerid, "D", nRes), color=green, title="D_ELI")

Больше