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

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

img

Обзор

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

Принцип

Стратегия использует две EMA, одна - EMA на большей временной шкале, а другая - EMA на текущей временной шкале. Когда текущая EMA пересекает большее EMA, она длинная. Когда текущая EMA пересекает ниже большей EMA, она короткая.

В частности, стратегия сначала определяет два параметра EMA:

  1. tf - Большие временные рамки, по умолчанию ежедневно.
  2. len - длина периода EMA, по умолчанию 3.

Затем он вычисляет две EMA:

  1. ma1 - 3-дневная EMA на суточных сроках.
  2. ma2 - 3-дневная EMA на текущем временном интервале.

Наконец, он вступает в торговлю на основе:

  • Когда ma2 > ma1, он длинный.
  • Когда ma2 < ma1, он становится коротким.

Осуждая направление тренда через перекрестки между двумя EMA различных периодов, он автоматизирует торговлю.

Преимущества

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

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

Риски

Стратегия также сопряжена с некоторыми рисками:

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

Риски могут быть уменьшены путем установки стоп-лосса, оптимизации параметров, добавления других индикаторов и т.д.

Оптимизация

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

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

Заключение

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


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

//@version=3
strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
tf = input("D", title = "Big Timeframe")
len = input(3, minval = 1, title = "MA length")
src = input(close, title = "MA Source")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MAs
ma1 = request.security(syminfo.tickerid, tf, sma(src, len))
ma2 = sma(src, len)
plot(ma1, linewidth = 2, color = blue, title = "Big TF MA")
plot(ma2, linewidth = 2, color = red, title = "MA")

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]

if ma2 > ma1
    strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if ma2 < ma1
    strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Больше