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

MA SMA ML
Дата создания: 2024-06-21 17:59:06 Последнее изменение: 2024-06-21 17:59:06
Копировать: 0 Количество просмотров: 870
1
Подписаться
1617
Подписчики

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

Обзор

В этой статье представлена стратегия количественного трейдинга на основе машинного обучения, основанная на перекрестных перемещающихся средних. Эта стратегия использует перекрестные кратковременные и долгосрочные простые перемещающиеся средние (SMA) для моделирования процесса принятия решений по трейдингу, основанного на машинном обучении.

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

Основные принципы этой стратегии основаны на скрещивании двух скользящих средних:

  1. Краткосрочная скользящая средняя ((Short MA): по умолчанию используется простая скользящая средняя с 9 циклами.
  2. Долгосрочная скользящая средняя ((Long MA): по умолчанию используется простая скользящая средняя с 21 периодом.

Логика формирования торгового сигнала следующая:

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

Стратегия реализована на платформе TradingView и написана на языке Pine Script. Основные функции включают в себя:

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

Стратегические преимущества

  1. Простая и понятная: стратегия пересечения скользящих средних является классическим методом технического анализа, который легко понять и применить.

  2. Следить за тенденциями: эта стратегия эффективно улавливает тенденции рынка и хорошо работает на рынках с четкими тенденциями.

  3. Автоматическое исполнение: Стратегии могут быть автоматически исполнены на платформе TradingView, что уменьшает влияние человеческого вмешательства и эмоциональной торговли.

  4. Визуальная обратная связь: торговцы могут получить интуитивное представление о том, как работает стратегия, отметив точки купли-продажи на графике и нарисовав движущиеся средние.

  5. Гибкость: пользователи могут корректировать периодичность краткосрочных и долгосрочных скользящих средних в зависимости от личных предпочтений и рыночных особенностей.

  6. Реальные напоминания: установленная функция напоминания о сделках помогает трейдерам вовремя использовать рыночные возможности.

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

  8. Широкая применимость: Стратегия может быть применена к различным финансовым инструментам и временным рамкам, имея широкую применимость.

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

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

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

  3. Нет механизма остановки убытков: стратегия не включает в себя параметры остановки убытков и может нести большие потери при резких колебаниях рынка.

  4. Чрезмерная зависимость от исторических данных: стратегия предполагает, что исторические модели повторятся в будущем, но условия рынка могут измениться.

  5. Чувствительность к параметрам: эффективность стратегии чувствительна к выбору циклов движущихся средних, и различные параметры могут привести к значительно различным результатам.

  6. Пропускание основных факторов: чисто технический метод анализа может игнорировать важные фундаментальные и макроэкономические факторы.

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

  8. Риск пересогласования: при оптимизации параметров может возникнуть пересогласованность, в результате чего стратегия будет плохо работать в реальном режиме.

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

  1. Введение стоп-ложа: установление разумных уровней стоп-ложа для контроля риска и блокировки прибыли.

  2. Добавление фильтров: в сочетании с другими техническими показателями (например, RSI, MACD и т. Д.) в качестве фильтров, чтобы уменьшить ложные сигналы.

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

  4. Добавление показателей волатильности: использование показателей волатильности, таких как ATR, для корректировки размера позиции и уровня остановки убытков.

  5. Анализ многократных временных рамок: в сочетании с более длительными временными рамками, повышает точность принятия торговых решений.

  6. Добавление фундаментального анализа: в сочетании с фундаментальными факторами, такими как публикация экономических данных, финансовые отчеты компании и т. д., оптимизация торговых решений.

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

  8. Отзыв и оптимизация: проведение обширной проверки исторических данных, оценка устойчивости стратегии с использованием методов, таких как моделирование Монте-Карло.

  9. Управление капиталом: реализация более сложных стратегий управления капиталом, таких как формула Келли или модель риска с фиксированной пропорцией.

  10. Эмоциональный анализ: интеграция данных о настроениях рынка, таких как эмоциональный анализ социальных сетей, для усиления торговых решений.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-06-15 00:00:00
end: 2024-06-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © yashumani
//@version=5
strategy("ML Based Trading Strategy", overlay=true)

// Define input parameters
shortPeriod = input.int(9, title="Short MA Period")
longPeriod = input.int(21, title="Long MA Period")

// Calculate moving averages
shortMA = ta.sma(close, shortPeriod)
longMA = ta.sma(close, longPeriod)

// Simulated "machine learning" decision based on moving averages crossover
longCondition = ta.crossover(shortMA, longMA)
shortCondition = ta.crossunder(shortMA, longMA)

// Plot moving averages
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")

// Buy signal
if (longCondition)
    strategy.entry("Buy", strategy.long)

// Sell signal
if (shortCondition)
    strategy.entry("Sell", strategy.short)

// Plot buy/sell indicators on chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

// Define and plot order indicators
plotarrow(series=longCondition ? 1 : shortCondition ? -1 : na, colorup=color.green, colordown=color.red, offset=-1)

// Alerts
if (longCondition)
    alert("Buy signal triggered", alert.freq_once_per_bar)

if (shortCondition)
    alert("Sell signal triggered", alert.freq_once_per_bar)