Количественная стратегия Momentum Moving Average Crossover


Дата создания: 2024-01-26 11:39:26 Последнее изменение: 2024-01-26 11:39:26
Копировать: 0 Количество просмотров: 587
1
Подписаться
1617
Подписчики

Количественная стратегия Momentum Moving Average Crossover

Обзор

Стратегия объединяет два ключевых технических показателя: скользящие средние и объем торгов, и разрабатывает правила входа и выхода для длинных и коротких позиций, чтобы сформировать полноценную количественную торговую стратегию.

Стратегический принцип

Ключевые показатели

  1. Движущаяся средняя: быстрая движущаяся средняя (синяя линия) и медленная (красная линия) [2].
  2. Количество сделок: 24-часовое количество сделок (фиолетовый цвет) и среднее количество сделок за 7 дней (фиолетовый цвет).

Условия стратегии

Условия для входа в лонг:

  1. Пройдите медленную скользящую среднюю по быстрой скользящей средней.
  2. 24-часовой объем торгов ниже 50% от среднего объема торгов за 7 дней

Условия для входа в короткие позиции:
Пройдите под скользящей средней и пройдите под медленной

Вход и выход

Вступление в лотерею:При выполнении условий по вхождению в долгосрочную позицию

Короткие позиции:Выполнение условий по вхождению в короткую позицию

Остановка и остановка: Показать стоп-пост и стоп-пост после переустройства

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

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

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

  1. Двухлинейная стратегия может привести к частым сделкам
  2. Качество данных по объемам сделок не гарантируется
  3. Оптимизация параметров рискует быть переоптимизированной

Улучшение методов:

  1. Приемлемая корректировка среднелинейных параметров, снижение частоты торгов
  2. Количественные сигналы с подтверждением дополнительных источников данных
  3. Строгие проверки обратной связи для предотвращения переоптимизации

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

  1. Добавить другие индикаторы фильтрации
  2. Динамическая корректировка стоп-стоп-поста
  3. Анализ многократных временных рамок для повышения стабильности

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

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

Исходный код стратегии
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA and Volume Strategy", overlay=true)

// Input parameters
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")
volumePercentageThreshold = input(50, title="Volume Percentage Threshold")

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Calculate 24-hour volume and weekly volume average
dailyVolume = request.security(syminfo.tickerid, "D", volume)
weeklyVolumeAvg = ta.sma(request.security(syminfo.tickerid, "W", volume), 7)

// Strategy conditions
longCondition = ta.crossover(fastMA, slowMA) and dailyVolume < (weeklyVolumeAvg * volumePercentageThreshold / 100)
shortCondition = ta.crossunder(fastMA, slowMA)

// Set take profit and stop loss levels
takeProfitLong = close * 1.50
stopLossLong = close * 0.90

// Strategy orders
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Plot moving averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")

// Plot 24-hour volume and weekly volume average
plot(dailyVolume, color=color.purple, title="24-Hour Volume", transp=0)
plot(weeklyVolumeAvg, color=color.orange, title="Weekly Volume Average")

// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)

// Plot take profit and stop loss levels only when a valid trade is active
plotshape(series=longCondition, title="Take Profit Long", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=longCondition, title="Stop Loss Long", color=color.red, style=shape.triangledown, size=size.small)