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

Автор:Чао Чжан, Дата: 2024-03-11 12:06:22
Тэги:

img

Обзор стратегии

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

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

В этом коде стратегии используются две скользящие средние: быстрая скользящая средняя (по умолчанию 14 периодов) и медленная скользящая средняя (по умолчанию 28 периодов).

Основная логика стратегии заключается в следующем:

  1. Вычислить значения быстрой скользящей средней и медленной скользящей средней
  2. Если быстрая скользящая средняя пересекает медленную скользящую среднюю, она генерирует длинный сигнал и открывает длинную позицию.
  3. Если быстрая скользящая средняя пересекается ниже медленной скользящей средней и допускается короткое расстояние (allowShorting=true), он генерирует короткий сигнал и открывает короткую позицию.
  4. Если быстрая скользящая средняя пересекается ниже медленной скользящей средней и не допускается короткое расписание (allowShorting=false), длинная позиция закрывается.

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

Преимущества стратегии

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

Стратегические риски

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

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

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

Оптимизация стратегии

  1. Внедрить больше технических индикаторов, таких как MACD и RSI, чтобы выстроить многофакторную стратегию и улучшить точность сигналов
  2. Оптимизировать управление позициями, например, учитывая такие факторы, как ATR или волатильность для динамической корректировки размеров позиций
  3. Для рынков с ограниченным диапазоном следует рассмотреть возможность внедрения индикаторов определения тренда, таких как ADX, чтобы избежать частой торговли.
  4. Используйте алгоритмы машинного обучения или оптимизации для автоматического поиска оптимальной комбинации параметров

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

Резюме

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


/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
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/
// © z4011

//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) 

float fastMA = switch fastMAType
    "Simple" => ta.sma(close, fastMALength)
    "Exponential" => ta.ema(close, fastMALength)
    "Weighted" => ta.wma(close, fastMALength)
    "Relative" => ta.rma(close, fastMALength)

plot(fastMA, color = color.aqua, linewidth = 2)

float slowMA = switch slowMAType
    "Simple" => ta.sma(close, slowMALength)
    "Exponential" => ta.ema(close, slowMALength)
    "Weighted" => ta.wma(close, slowMALength)
    "Relative" => ta.rma(close, slowMALength)

plot(slowMA, color = color.blue, linewidth = 2)


longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
    strategy.entry("Short", strategy.short)

closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
    strategy.close("Long", "Close")


Больше