Динамическая позиционная стратегия пересечения двойной скользящей средней

SMA MA
Дата создания: 2024-07-30 16:04:59 Последнее изменение: 2024-07-30 16:04:59
Копировать: 1 Количество просмотров: 459
1
Подписаться
1617
Подписчики

Динамическая позиционная стратегия пересечения двойной скользящей средней

Обзор

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

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

  1. Вычисление скользящих средних: стратегия использует две простые скользящие средние ((SMA) на 9 и 21 день.
  2. Сигналы транзакций генерируются:
    • Сигнал покупки: краткосрочная средняя линия ((9-дневная SMA) на длинную среднюю линию ((21-дневная SMA)
    • Продающий сигнал: долгосрочная средняя линия вниз от краткосрочной
  3. Управление депозитами:
    • Открытие позиции: открытие позиции с несколькими головами при появлении сигнала покупки; открытие позиции с несколькими головами при появлении сигнала продажи
    • Позиции на равных и на обратных позициях: a) при удержании позиции с множественными заголовками, если цена открытия ниже средней долгосрочной линии или появляется сигнал продажи, ликвидировать множественные заголовки и открыть пустую позицию b) при удержании позиции с пустыми позициями, если цена открытия выше долгосрочной средней линии или появляется сигнал покупки, вычеркнуть пустую позицию и открыть позицию с многообещающими позициями
  4. Управление риском: стратегия не устанавливает фиксированный стоп-лосс, а управляет риском путем динамического изменения направления удержания позиции

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

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

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

  1. Недостатки рыночных потрясений: частота торговли может привести к убыткам в рыночных поворотах или потрясениях
  2. Отсталость: скользящая средняя по своей сути является отсталым показателем, который может пропустить начальный этап резкого развития событий
  3. Риск ложного прорыва: краткосрочные колебания цен могут привести к ложному прорыву средней линии и вызвать ошибочные торговые сигналы
  4. Отсутствие остановок: стратегия не устанавливает фиксированные остановки, в крайних случаях может быть более крупным убытком
  5. Чрезмерная торговля: частое изменение позиций может привести к более высоким торговым затратам
  6. Чувствительные к параметрам: показатели стратегии более чувствительны к выбору среднелинейных параметров, разные параметры могут привести к совершенно разным результатам
  7. Ограничения одного индикатора: полагаясь только на равномерное скрещивание, можно игнорировать другую важную рыночную информацию

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

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

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

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

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

//@version=5
strategy(title="MA Cross Backtest", overlay=true, default_qty_type=strategy.cash, default_qty_value=10)

// Parâmetros das Médias Móveis
shortlen = input.int(9, "Short MA Length", minval=1)
longlen = input.int(21, "Long MA Length", minval=1)

// Cálculo das Médias Móveis
short = ta.sma(close, shortlen)
long = ta.sma(close, longlen)

// Plotagem das Médias Móveis
plot(short, color=color.orange, title="Short MA")
plot(long, color=color.green, title="Long MA")

// Sinal de Compra baseado no cruzamento das médias móveis
buySignal = ta.crossover(short, long)

// Sinal de Venda (Short) baseado no cruzamento das médias móveis
sellSignal = ta.crossunder(short, long)

// Plotagem dos Sinais de Compra e Venda
plotshape(series=buySignal, location=location.belowbar, color=color.blue, style=shape.labelup, text="Buy", title="Buy Signal")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal")

// Condições para alertas
alertcondition(buySignal, title="Buy Signal", message="MA Cross Buy Signal")
alertcondition(sellSignal, title="Sell Signal", message="MA Cross Sell Signal")

// Lógica da Estratégia de Backtest
if (buySignal)
    // Se não há posição aberta ou se a posição atual é curta, feche a posição curta antes de abrir uma nova posição longa
    if (strategy.position_size < 0)
        strategy.close("Short", comment="Closing Short Position before Long Entry")
    strategy.entry("Long", strategy.long)

    // Alerta de compra
    alert("MA Cross Buy Signal", alert.freq_once_per_bar_close)

if (strategy.position_size > 0)
    // Se o preço abrir abaixo da média longa
    if (open < long)
        strategy.close("Long", comment="Price Opened Below Long MA")
        strategy.entry("Short", strategy.short, comment="Switched to Short")
        // Alerta de venda
        alert("Price Opened Below Long MA - Switched to Short", alert.freq_once_per_bar_close)
    // Se a média móvel curta cruzar abaixo da média móvel longa
    else if (sellSignal)
        strategy.close("Long", comment="Short MA Crossed Below Long MA")
        strategy.entry("Short", strategy.short, comment="Switched to Short")
        // Alerta de venda
        alert("Short MA Crossed Below Long MA - Switched to Short", alert.freq_once_per_bar_close)

if (strategy.position_size < 0)
    // Se o preço abrir acima da média longa
    if (open > long)
        strategy.close("Short", comment="Price Opened Above Long MA")
        strategy.entry("Long", strategy.long, comment="Switched to Long")
        // Alerta de compra
        alert("Price Opened Above Long MA - Switched to Long", alert.freq_once_per_bar_close)