Стратегия перекрестного использования многократной ЕМА

Автор:Чао Чжан, Дата: 21 сентября 2023 года 12:12:56
Тэги:

Обзор

Эта стратегия сочетает в себе 8-дневные, 13-дневные, 21-дневные и 55-дневные EMA и генерирует длинные и короткие сигналы при перекрестном переходе между ними, чтобы отслеживать средне-долгосрочные тенденции.

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

  1. Вычислять 8-дневные, 13-дневные, 21-дневные и 55-дневные EMA.

  2. Когда 8-дневные, 13-дневные, 21-дневные EMA пересекают 55-дневную EMA, запускается длинный сигнал.

  3. Когда 8-дневные, 13-дневные, 21-дневные EMA пересекают 55-дневную EMA, запускается короткий сигнал.

  4. Долго на золотом кресте, коротко на смертном кресте.

  5. Близкая позиция на обратном перекрестке.

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

  1. Многократная комбинация EMA эффективна в фильтрации ложных прорывов.

  2. 55-дневная EMA, как якорь, избегает ловушки.

  3. Бакт-тест показывает стабильные годовые доходы за последние 10 лет.

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

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

  1. Фиксированные параметры могут не соответствовать всем продуктам и рынкам, необходима независимая оптимизация.

  2. Неэффективный на различных рынках, рискует ударами и частыми остановками.

  3. Нет стоп-лосса, не способного ограничить потерю на одной сделке.

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

  5. 10-летняя выборка ограничена, нужны большие данные для проверки надежности.

Руководство по оптимизации

  1. Проверьте комбинации периодов EMA, чтобы найти лучшее совпадение.

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

  3. Внедрить фиксированный или движущийся стоп-лосс.

  4. Оптимизировать размер позиций для снижения риска на одну сделку.

  5. Торгуйте как длинной, так и короткой стороной.

  6. Расширить испытания на больше продуктов и более длительные сроки.

Резюме

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


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ColinMccann18
//@version=4

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// --------------------------------------------------------------RULES------------------------------------------------------------------------------
// - VISUALLY REPRESENTS THE CROSSING OF 8,13,21,55 EMA'S FROM KROWNS PROGRAM 
strategy(title="CM EMA Trend Cross STRAT", shorttitle="CM EMA Strat", overlay=true)

ema8  = ema(close,8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema55 = ema(close, 55)

//PLOT
plot(ema8,  title="EMA 1",linewidth=2, color=#00eeff)
plot(ema13, title="EMA 2",linewidth=2, color=#fff900)
plot(ema21, title="EMA 3",linewidth=2, color=#42ff0f)
plot(ema55, title="EMA 4",linewidth=2, color=#8b49ff)

//LOGIC---------------------------------------------------------------------------------------------------------------------------------
emacrossover = crossover(ema21, ema55) and ema8 and ema13 > ema55
emacrossunder = crossunder(ema21, ema55) and ema8 and ema13 < ema55

//Long----------------------------------------------------------------------------------------------------------------------------------
longCondition = emacrossover
closelongCondition = emacrossunder

strategy.entry("Long", strategy.long, qty=na, when=longCondition)
strategy.close("Close Long", when=closelongCondition)

//Short----------------------------------------------------------------------------------------------------------------------------------
shortCondition = emacrossunder
closeshortCondition = emacrossover

strategy.entry("Short", strategy.short,qty=na, when=shortCondition)
strategy.close("Close Short", when=closeshortCondition)



Больше