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

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

Автор:Чао Чжан, Дата: 2023-10-20 17:02:52
Тэги:

img

Обзор

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

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

Стратегия основана на следующих принципах:

  1. Используйте 200-дневную простую скользящую среднюю (slowMA) для определения тенденции цен.
  2. Когда цена закрытия (закрытия) пересекает уровень slowMA, это сигнализирует о тенденции к росту, поэтому вы должны идти на длинный курс.
  3. Когда цена закрытия (закрытия) пересекает ниже slowMA, это сигнализирует о снижающейся тенденции, поэтому выходите короткими.
  4. Используйте переменные last_long и last_short для записи времени последнего длинного и короткого входа.
  5. Использовать функцию перекрестного действия для обнаружения перекрестного действия между last_long и last_short для генерации торговых сигналов.
  6. В период обратного тестирования при получении длинного сигнала (long_signal) выбирайте длинный, а при получении короткого сигнала (short_signal) - короткий.

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

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

Стратегия имеет следующие преимущества:

  1. Логика стратегии проста и легко понять и реализовать.
  2. Длительный скользящий средний фильтрует шум и блокирует основную тенденцию.
  3. Своевременные обратные сделки могут зафиксировать значительные колебания цен вокруг перемены тренда.
  4. Он использует только один показатель, избегая сложности нескольких показателей.
  5. Ясные правила въезда и выезда без вмешательства человека.

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

Существуют также некоторые риски:

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

Риски могут быть устранены путем следующих оптимизаций:

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

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

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

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

  2. Добавьте краткосрочный MA для отслеживания как долгосрочных, так и краткосрочных тенденций.

  3. Включить индикаторы тренда, такие как MACD, чтобы улучшить идентификацию обратного тренда.

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

  5. Испытание прочности на различных продуктах и периодах времени.

  6. Используйте машинное обучение для адаптивной оптимизации параметров.

Заключение

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


/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// MA 200 /////////////
slowMA = sma(close, input(200))

/////////////// Strategy ///////////////
long = close > slowMA
short = close < slowMA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long Entry",  strategy.long, when=long_signal)
    strategy.entry("Short Entry", strategy.short, when=short_signal)
    strategy.exit("Long Ex", "Long Entry")
    strategy.exit("Short Ex", "Short Entry")

/////////////// Plotting /////////////// 
plot(slowMA, color = long ? color.lime : color.red, linewidth=2)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)

Больше