Торговая стратегия на основе двойной скользящей средней


Дата создания: 2024-01-19 14:10:38 Последнее изменение: 2024-01-19 14:10:38
Копировать: 0 Количество просмотров: 574
1
Подписаться
1617
Подписчики

Торговая стратегия на основе двойной скользящей средней

Обзор

Двойная движущаяся средняя торговая стратегия - это распространенная количественная торговая стратегия, в которой используются движущиеся средние двух разных временных периодов, чтобы создать торговый сигнал в зависимости от их перекрестного положения. В частности, когда краткосрочная движущаяся средняя пересекает долгосрочную движущуюся среднюю, это рассматривается как сигнал покупки; когда долгосрочная движущаяся средняя пересекает краткосрочную движущуюся среднюю, это рассматривается как сигнал продажи.

Принципы

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

В частности, в стратегии определены два скользящих средних: 5-дневная краткосрочная скользящая средняя, используемая для улавливания краткосрочных ценовых тенденций; и 15-дневная долгосрочная скользящая средняя, используемая для определения долгосрочных ценовых тенденций. Когда 5-дневная линия пересекает 15-дневную линию снизу, это означает, что краткосрочные цены начали расти, что является сигналом покупки; когда 5-дневная линия пересекает 15-дневную линию снизу, что означает, что краткосрочные цены начали снижаться, что является сигналом продажи.

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

По сравнению с другими стратегиями, стратегия двойных движущихся средних имеет следующие преимущества:

  1. Простая в использовании и понятная для новичков в квантовой торговле
  2. Причины, по которым люди избегают отслеживать ценовые тенденции на сложных рынках
  3. Гибкость настройки параметров, которая позволяет адаптироваться к различным рыночным условиям путем корректировки циклов движущихся средних
  4. Переломные моменты в долгосрочных и краткосрочных тенденциях Capture
  5. Настраиваемая частота транзакций, снижение расходов на транзакции и потеря скольжения

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

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

  1. Возможно создание ложного сигнала, движущаяся средняя по своей сути является отсталым сигналом
  2. Необходимо обратить внимание на одновременные длинные и короткие движущиеся средние, более сложные параметры для корректировки и проверки эффективности
  3. Невозможно хорошо управлять сценариями с резкими колебаниями цен, что может привести к ущербу
  4. Частота торговли может быть слишком высокой или слишком низкой, поэтому необходимо оптимизировать курсы.
  5. Эффективность имеет высокую корреляцию с рыночными тенденциями и не очень эффективна в период общей депрессии индекса

Решение проблемы:

  1. В сочетании с другими показателями фильтрует сигналы
  2. Оптимизация параметров скользящих средних, проверка эффективности
  3. Установка соответствующего предела убытков
  4. Настройка параметров движущейся средней для оптимизации частоты торгов
  5. Параметры для различных рыночных условий

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

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

  1. В сочетании с другими индикаторами фильтруют сигналы, такие как MACD, KDJ и т. Д., Чтобы избежать создания ложных сигналов

  2. Введение адаптивных скользящих средних, динамическая корректировка параметров скользящих средних в зависимости от степени волатильности рынка, повышение устойчивости

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

  4. Присоединение к механизму погашения убытков, предотвращение расширения убытков и повышение способности к контролю рисков

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

  6. Марковское состояние переключения, используя различные параметры для различных состояний рынка, повышает адаптивность

Подвести итог

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

Исходный код стратегии
//@version=3
strategy("CS: 2 Moving Averages Script - Strategy (Testing)", overlay=true)

// === GENERAL INPUTS ===
// short ma
ma1Source   = input(defval = close, title = "MA 1 Source")
ma1Length   = input(defval = 5, title = "MA 1 Period", minval = 1)
// long ma
ma2Source   = input(defval = close, title = "MA 2 Source")
ma2Length   = input(defval = 15, title = "MA 2 Period", minval = 1)

// === SERIES SETUP ===
/// a couple of ma's..
ma1 = ema(ma1Source, ma1Length)
ma2 = ema(ma2Source, ma2Length)

// === PLOTTING ===
fast = plot(ma1, title = "MA 1", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(ma2, title = "MA 2", color = green, linewidth = 2, style = line, transp = 30)

// === LOGIC ===
enterLong = crossover(ma1, ma2)
exitLong = crossover(ma2, ma1)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
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 = 2012)

// === 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"

// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=exitLong and window())