Трехэкспоненциальная скользящая средняя стратегия

Автор:Чао Чжан, Дата: 2023-11-15 10:54:39
Тэги:

img

Обзор

Трижды экспоненциальная скользящая средняя только стратегия длинная - это долгосрочная стратегия, основанная на индикаторе тройной экспоненциальной скользящей средней (TEMA). Она использует TEMA для фильтрации краткосрочного рыночного шума и выявления средне- и долгосрочных направлений тренда. Стратегия длинна, когда цена пересекает TEMA, и выходит, когда цена падает ниже TEMA. Она подходит для инвесторов, заинтересованных в средне- и долгосрочной трендовой торговле.

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

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

В частности, стратегия сначала рассчитывает EMA (ema1) периода fastEmaPeriod, затем рассчитывает еще одну EMA (ema2) ema1 с использованием того же периода и, наконец, рассчитывает ema3 на основе ema2.

Благодаря многократному экспоненциальному сглаживанию, TEMA может эффективно идентифицировать средне- и долгосрочные направления тренда, несмотря на зигзаги и переломы, отфильтровывая краткосрочный шум.

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

  • TEMA эффективно идентифицирует средне- и долгосрочные тенденции и отфильтровывает краткосрочный шум, избегая сбоев.

  • Только длинные позиции избегают неограниченного риска снижения.

  • Процентный размер позиций для контроля риска

  • Временное окно обратного тестирования оптимизирует параметры на конкретные исторические периоды.

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

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

  • TEMA может не сигнализировать об изменении тренда для своевременного прекращения потерь.

  • Процентный размер не ограничивает размер потерь на торговую сделку, что требует остановок.

  • Обратное тестирование может привести к переподготовке, оптимизированные параметры могут не соответствовать будущим рынкам.

Направления к улучшению

  • Добавьте показатели волатильности для укрепления параметров.

  • Внедрить стоп-лосс для контроля размера потерь на одной сделке.

  • Оптимизировать размещение позиций до меньшего размера во время снижения.

  • Добавить индикаторы тенденции по временным рамкам для повышения точности тренда.

  • Испытайте различные параметры периода хранения для оптимального.

Заключение

В целом, стратегия Triple EMA Long Only определяет направления тренда с помощью индикатора TEMA, держит долгосрочные позиции, чтобы избежать краткосрочного шума, остается только долго, чтобы избежать неограниченного снижения, и эффективно улавливает средне- и долгосрочные тенденции.


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

//@version=2
strategy("TEMA_System_long_only", overlay=true)

//Collect inputs parameters

fastEmaPeriod = input(7, minval=1, title="Fast TEMA Period")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 4, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

fastEma = ema(close, fastEmaPeriod)

//convert EMA into TEMA

ema1 = ema(close, fastEmaPeriod)
ema2 = ema(ema1, fastEmaPeriod)
ema3 = ema(ema2, fastEmaPeriod)

fastTEMA = 3 * (ema1 - ema2) + ema3


buy  = close > fastTEMA
sell = close < fastTEMA

plot(fastTEMA, title = 'TEMA', linewidth=3, color=white)

if window()
    strategy.entry("long",strategy.long, when = buy)
    strategy.close("long", when = sell )

Больше