Стратегия движущегося среднего перекрестного тренда

Автор:Чао Чжан, Дата: 2024-01-12 10:56:57
Тэги:

img

Обзор

Эта торговая стратегия основана на простой системе пересечения скользящей средней и скользящей средней для отслеживания тренда. Она использует пересечение быстрых и медленных скользящих средних с различными периодами в качестве сигналов для длинного или короткого курса. Когда быстрый MA пересекает более медленного MA снизу, идите на длинный; когда быстрый MA пересекает ниже медленного MA сверху, идите на короткий. Эта стратегия хорошо работает для продуктов с очевидными трендами.

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

Стратегия использует быструю простую скользящую среднюю, такую как 60-дневная, и медленную, такую как 200-дневную.

Когда короткий MA пересекает длинный MA снизу, это сигнализирует о том, что краткосрочные цены начинают расти и выходят на бычий рынок, так что идите на длинный.

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

Захватывая точки перелома ценовых тенденций с использованием быстрых и медленных перекрестников MA, стратегия может соответственно корректировать длинные/короткие позиции.

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

  • Использует перекрестное определение MA для определения основных тенденций, избегая ввода в заблуждение краткосрочными рыночными шумами.
  • Рассматривает как краткосрочные, так и средне- и долгосрочные сроки, более стабильные и надежные.
  • Внедряет простое и эффективное отслеживание трендов, например, длинный в восходящих и короткий в нисходящих.
  • Движущиеся средние имеют широкое применение, легко понятны, а параметры гибкие.
  • Параметры управления рисками регулируются для контролируемых рисков.

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

  • Стратегия основана на четких ценовых тенденциях, неудачи могут произойти во время бурных колебаний рынка.
  • Whipsaws могут производить много ложных сигналов во время рыночных колебаний, вызывая частые открытия и закрытия позиций.
  • У скользящих средних есть задержки, потенциально отсутствующие переломные моменты цен.
  • Неправильные параметры, такие как слишком жесткая остановка потерь или слишком широкая прибыль, могут привести к преждевременному выходу или расторжению прибыльных позиций.
  • Разумные параметры требуют оптимизации в соответствии со спецификой различных продуктов.

Такие методы, как корректировка периодов MA в зависимости от частоты волатильности продуктов, улучшение режима остановки/вывода прибыли с использованием более сложных индикаторов, добавление фильтра объема и т.д., могут оптимизировать эту стратегию и повысить стабильность.

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

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

  1. Оптимизировать быстрые и медленные периоды MA для адаптации к продуктам с различными частотами волатильности.

  2. Улучшить условия входа, добавив больше фильтров, таких как пики громкости, чтобы уменьшить ложные сигналы.

  3. Улучшить стоп-лосс/стоп-прибыль, например, динамический стоп-прибыль или динамический стоп-прибыль, чтобы повысить рентабельность.

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

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

  6. Добавить идентификацию местных моделей, чтобы помочь определить поворотные моменты тренда и улучшить сроки входа и выхода.

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

Резюме

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


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 10m
basePeriod: 1m
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/
// © thebearfib
//
//@version=5
//

strategy("x-over 150d_200d_sma - Free", overlay = true)

repaint = input.bool(defval = false, title = "[RePaint] Uncheck to see real time results") //when you deselect it - it shows what would have happened in real time while trading the system
srcmc   = request.security(syminfo.tickerid, 'D', open, lookahead= repaint ? barmerge.lookahead_on : barmerge.lookahead_off, gaps=barmerge.gaps_off)

fast_length         = input(title="Fast Length", defval=60)
slow_length         = input(title="Slow Length", defval=275)

_fast               = ta.sma(srcmc,  fast_length)
_slow               = ta.sma(srcmc,  slow_length)

plot(_fast, 
  title="Fast SMA", 
  color=color.red,
  linewidth = 1) 

plot(_slow, 
  title="Slow SMA", 
  color=color.white,
  linewidth = 3)
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Calculating  —————————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//
longProfitPerc      = input.float(title="Long Take Profit (%)", minval=0.01, step=1.0, defval=42) * .01
longStopPerc        = input.float(title="Long Stop (%)",        minval=0.01, step=1.0, defval=13)  * .01
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Stop Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longExitPrice  = strategy.opentrades > 0 ? strategy.position_avg_price * (1 + longProfitPerc) : srcmc *  (1 + longProfitPerc)
longStopPrice = strategy.opentrades  > 0 ? strategy.position_avg_price * (1 - longStopPerc)   : srcmc *  (1 - longStopPerc)
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Long Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longCondition   = srcmc > _slow and  ta.crossover(_fast, _slow)
closeCondition  =  ta.crossover(srcmc, _slow)  

if (longCondition)
    strategy.entry("Entry (long)", strategy.long, comment="→ 𝗟𝗴 𝗘𝗻𝘁𝗿𝘆")

if (closeCondition)
    strategy.close("Entry (long)", comment=" 𝗟𝗴 𝗘𝘅𝗶𝘁 ←")

if (strategy.position_size > 0)
    strategy.exit(id="XL", limit=longExitPrice, stop = longStopPrice, comment_profit = "Take Profit", comment_loss = "Stop Loss")
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// —————————————————————————————————  Never the End Just the beginning    —————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//

Больше