В процессе загрузки ресурсов... загрузка...

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

Автор:Чао Чжан, Дата: 2021-09-21 10:28:27
Тэги:

Обзор

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

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

Основными этапами этой стратегии являются:

  1. Установите быстрый скользящий средний период fastMA и медленный скользящий средний период slowMA.

  2. Вычислить скоростную скользящую среднюю скоростную и медленную скользящую среднюю медленную на основе типа ввода Type. Type=1 - простая скользящая средняя, Type=2 - экспоненциальная скользящая средняя.

  3. Установите временной диапазон старта и финиша.

  4. Определите функцию перекрестного движения: когда быстрый пересекает медленный, генерируйте сигнал покупки; когда быстрый пересекает медленный, генерируйте сигнал продажи.

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

  6. Когда окно обратного теста заканчивается или функция перекрестка пересекается ниже, высылается ордер на закрытие длинного.

  7. Нарисуйте средний скоростной и медленный скоростной.

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

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

Преимущества этой стратегии:

  1. Движущиеся средние эффективны в определении тенденций и фильтрации случайных колебаний.

  2. Сочетание быстрых и медленных скользящих средних может определить изменения тренда.

  3. Параметры скользящих средних могут быть скорректированы в соответствии с тенденциями разных периодов.

  4. Гибкий выбор между простыми и экспоненциальными скользящими средними.

  5. Функциональность Backtest позволяет тестировать и оптимизировать параметры стратегии.

  6. Простая и понятная логика, легко понятная и реализуемая.

  7. Рисование графиков скользящих средних позволяет визуально определить тенденции и эффекты.

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

Некоторые риски этой стратегии:

  1. Может генерировать ложные сигналы в периоды, ограниченные диапазоном.

  2. Движущиеся средние имеют эффект отставания, могут пропустить повороты.

  3. Опирается исключительно на пересечение скользящей средней, никаких других показателей или фильтров.

  4. Не учитывает затраты на торговлю.

  5. Нет стратегии стоп-лосса.

  6. Неразумные параметры могут повлиять на эффективность стратегии.

  7. Неправильный выбор временного диапазона обратного испытания может привести к переподключению.

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

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

  1. Добавьте другие индикаторы, такие как MACD, RSI, чтобы подтвердить сигналы и улучшить точность.

  2. Добавьте стратегию стоп-лосса для контроля одиночных потерь.

  3. Оптимизировать параметры скользящей средней для различных периодов.

  4. Добавить размещение позиций на основе рыночных условий.

  5. Учитывайте торговые издержки, корректируйте точки входа и выхода.

  6. Проверьте более длительные сроки, чтобы избежать перегрузки.

  7. Постоянно оптимизируйте параметры с помощью анализа ходов вперед.

Резюме

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


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

//@version=2
// strategy("MavCrossover v2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// Revision:        1
// Author:          @ToS_MavericK

// === INPUT SMA ===
fastMA  = input(defval = 13,  title = "FastMA", minval = 1, step = 1)
slowMA  = input(defval = 144,  title = "SlowMA", minval = 1, step = 1)
Type    = input(defval = 1,  title = "Type (1 = SMA, 2 = EMA)", minval = 1, maxval = 2, step = 1)
SlowMAIsFactor = input(false)

slowMA := SlowMAIsFactor == true ? round(fastMA * slowMA) : slowMA

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

// === MA SETUP ===
fast = Type == 1 ? sma(close, fastMA) : ema(close, fastMA)
slow = Type == 1 ? sma(close, slowMA) : ema(close, slowMA)

// === EXECUTION ===
strategy.entry("L", strategy.long, when = crossover(fast, slow) and window())   // buy long when "within window of time" AND crossover
strategy.close("L", when = crossunder(fast, slow) or time > finish)             // sell long when window ends OR crossunder         

plot(fast, title = 'FastMA', color = yellow, linewidth = 2, style = line)  // plot FastMA
plot(slow, title = 'SlowMA', color = aqua, linewidth = 2, style = line)    // plot SlowMA

Больше