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


Дата создания: 2024-03-11 16:17:20 Последнее изменение: 2024-03-11 16:17:20
Копировать: 0 Количество просмотров: 523
1
Подписаться
1617
Подписчики

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

Обзор

Эта стратегия использует множество индексов для идентификации потенциальных точек входа и выхода на рынке. Сравнение различных циклов EMA позволяет оценить текущие тенденции рынка, вступать в торговые сделки в начале формирования тренда и закрывать позиции в начале тренда.

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

Стратегия использует 4 различных циклов EMA в качестве основных показателей, а именно: сверхкраткосрочные EMA (по умолчанию 8), краткосрочные EMA (по умолчанию 13), среднесрочные EMA (по умолчанию 21) и долгосрочные EMA (по умолчанию 55). Когда долгосрочные EMA находятся ниже трех других EMA, стратегия открывает позиции, считая, что они могут быть в начале восходящего тренда; когда долгосрочные EMA находятся выше трех других EMA, считая, что они могут быть в начале нисходящего тренда, стратегия устраняет все позиции.

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

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

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

  2. Тренд-слежение: определение трендов путем сравнения отношений между позициями различных периодических ЭМА, в некоторой степени может быть зафиксировано в начале формирования тренда, и отслеживание тренда.

  3. Гибкость параметров: циклические параметры EMA могут быть гибко изменены в зависимости от особенностей сорта, инвестиционного горизонта и т. Д., Имеют определенную адаптивность.

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

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

  1. Задержка EMA: EMA по сути является индикатором, отслеживающим тенденцию, существует определенная задержка, и в волатильных рынках может происходить больше ложных сигналов.

  2. Чувствительные к параметрам: выбор параметров цикла EMA имеет большое влияние на эффективность стратегии, и после оптимизации параметров не всегда удается поддерживать хорошую производительность на внепримерных данных.

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

  4. Фиксированные позиции: в настоящее время стратегия заключается в фиксированном 1 единице за каждое открытие позиции, отсутствие динамического контроля позиций на основе риска, недостаточно совершенное управление рисками.

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

  1. Введение фильтрации трендов: на основе сигналов EMA добавляется фильтрация показателей интенсивности трендов, таких как ATR, ADX, фильтрация сигналов слабых трендов и периодов колебаний.

  2. Введение фильтра частоты колебаний: на основе фильтрации тенденций можно дополнительно вводить фильтр частоты колебаний, такой как полоса пропускания Brin, который отфильтровывает низкокачественные сигналы, которые могут быть вызваны высокой частотой колебаний.

  3. Оптимизация стоп-порогов: в настоящее время в стратегии отсутствует четкая логика стоп-порогов, и после введения фильтрации трендов и волатильности можно увеличить динамические стоп-пороги на основе ATR или процентов, чтобы контролировать максимальные потери за одну ставку.

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

  5. Параметры оптимизации: для разных сортов, разных циклов, оптимальные параметры EMA могут быть разными, необходимо искать параметры оптимизации в зависимости от особенностей сортов, чтобы повысить применимость стратегии.

Резюме

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

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © n1ghthawk

//@version=5
strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100)

float long = na
float short = na

lowestEMAPeriodInput = input.int(8, "Lowest EMA")
lowEMAPeriodInput = input.int(13, "Low EMA")
medEMAPeriodInput = input.int(21, "Med EMA")
highEMAPeriodInput = input.int(55, "High EMA")

lowestEMA = ta.ema(close, lowestEMAPeriodInput)
lowEMA = ta.ema(close, lowEMAPeriodInput)
medEMA = ta.ema(close, medEMAPeriodInput)
highEMA = ta.ema(close, highEMAPeriodInput)


emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA
emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA

longCondition = ta.change(emaLongCondition)
shortCondition = ta.change(emaShortCondition)

notInTrade = strategy.position_size <= 0
if longCondition and emaLongCondition and notInTrade
    long:=high
    strategy.entry("EL", strategy.long)

if shortCondition and emaShortCondition
    short:=low
    strategy.close("EL")


plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross)
plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross)

plot(lowestEMA, title = "lowestEMA", color=color.blue)
plot(lowEMA, title = "lowEMA", color=color.green)
plot(medEMA, title = "medEMA", color=color.orange)
plot(highEMA, title = "highEMA", color=color.red)