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


Дата создания: 2023-11-23 13:38:02 Последнее изменение: 2023-11-23 13:38:02
Копировать: 0 Количество просмотров: 631
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

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

Стратегия реализует автоматическую торговлю с помощью сигналов track и exit. Многоголовый вход вызывается, когда быстрая средняя линия снизу прорывает медленную среднюю линию; пустой вход вызывается, когда быстрая средняя линия снизу падает на медленную среднюю линию. Соответствующий сигнал exit также возникает при обратном пересечении.

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

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

Риски и решения

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

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

  • Можно ввести адаптивную среднюю линию или динамически оптимизированную среднюю линию, чтобы динамически регулировать среднюю линию и лучше отслеживать рынок.
  • Можно добавить условия фильтрации, чтобы избежать ошибочных сигналов при колебаниях цены и неизвестных тенденциях. Например, введите фильтр объема сделки.
  • Для повышения эффективности стратегии могут быть использованы другие показатели, например, лента Брин в качестве фильтра или дополнительного условия для входа в игру.
  • Можно ввести стратегию “стоп-лосс”, чтобы контролировать одиночные потери в пределах допустимого.

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

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

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

//@version=3
strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

MASource   = input(defval = open, title = "MA Source")
MaLength   = input(defval = 18, title = "MA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")
stopLoss = input(50, title = "Stop loss percentage(0.1%)") 

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

MA = sma(MASource,MaLength)

plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(MA, close)
short = crossover(MA, close)

if (long)
    strategy.entry("LongId", strategy.long, when = long)
    strategy.exit("ExitLong", from_entry = "LongId", when = short)

if (short)
    strategy.entry("ShortId", strategy.short, when = short)
    strategy.exit("ExitShort", from_entry = "ShortId", when = long)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)