Эта стратегия является простой торговой стратегией, основанной на скрещивании быстрых и медленных движущихся средних. Она использует движущиеся средние для подачи сигналов покупки и продажи.
Эта стратегия основана на перекрестке быстрых экспоненциальных движущихся средних (ЭМА) и медленных простых движущихся средних (СМА) в качестве торговых сигналов. Сначала рассчитывается быстрые ЭМА и медленные СМА. Быстрые ЭМА устанавливаются на 13 циклов, а медленные - на 30.
В частности, стратегия рассчитывает быстрые EMA и медленные SMA с помощью maFast и maSlow. Затем она определяет enterLong и exitLong для определения времени покупки и продажи. Когда maFast>maSlow, то есть быстрые EMA с медленными SMA, устанавливается enterLong=true, выпускается многозначный сигнал; когда maSlow>maFast, то есть быстрые EMA с медленными SMA, устанавливается exitLong=true, выпускается равнозначный сигнал.
Таким образом, когда краткосрочная тенденция к росту цен сильнее, чем долгосрочная тенденция, быстрая EMA будет проходить через медленную SMA, создавая сигнал покупки; когда краткосрочная тенденция к снижению будет сильнее, чем долгосрочная тенденция, быстрая EMA будет проходить через медленную SMA, создавая сигнал продажи.
Стратегия пересечения скользящих средних имеет следующие преимущества:
Простая, понятная и реализуемая. Движущаяся средняя - это часто используемый и эффективный технический индикатор, с простым и интуитивно понятным принципом пересечения. Это делает эту стратегию легкой для понимания и применения трейдером.
Высокая гибкость, настраиваемые параметры. Стратегия позволяет настраивать количество циклов быстрого ЭМА и медленного SMA, можно корректировать параметры в зависимости от различных рынков, повышая адаптивность стратегии.
Надежные торговые сигналы. Движущаяся средняя эффективно фильтрует рыночный шум, ее пересечение дает более надежные торговые сигналы.
Применяется для различных рыночных условий. Эта стратегия может использоваться для трендовых рынков и рынков свертывания, приспосабливаясь к различным ситуациям с помощью параметров.
Легкость использования с другими комбинациями индикаторов. Стратегия пересечения скользящих средних может быть гибко комбинирована с другими техническими индикаторами, такими как RSI, в более мощную стратегию.
Однако эта стратегия также несет в себе некоторые риски:
Появление более случайных сигналов. Когда рыночная тенденция не ясна, скользящие средние могут пересекаться многократно, что приводит к частым сигналам о покупке и продаже, увеличивает стоимость торговли и убытки от скольжения.
Легко застрять в рыночных колебаниях. Когда рынок находится в состоянии свертывания колебаний, скользящие средние могут иметь более неопределенные перекрестные сигналы, которые могут привести к ложным торговым сигналам.
Трудность в выборе параметров. Выбор параметров для циклов скользящих средних имеет большое влияние на эффективность стратегии. Выбор оптимальных параметров требует большого количества повторных испытаний.
Сигнал создает задержку. Поскольку сам по себе движущийся средний имеет задержку, его перекрестный сигнал, как правило, бывает поздним и может пропустить оптимальное время входа.
Несовершенная стратегия стоп-ложа. У этой стратегии отсутствует логика стоп-ложа, которая может привести к более крупным потерям.
Эта стратегия пересечения скользящих средних также может быть оптимизирована в следующих аспектах:
Фильтрация сигналов других технических индикаторов, таких как RSI, может уменьшить ложные сигналы. Не делайте больше, когда RSI высокий, не делайте пустоту, когда RSI низкий и т. д.
Добавление комбинированных движущихся средних, можно использовать три или более движущихся средних различных периодов подтверждения сигнала. Например, присоединиться к 50-дневной линии, многоголовый рынок в краткосрочной средней и в среднесрочной долгосрочной.
Присоединение к стратегии остановки убытков, такой как SAR параллельной линии, позволяет своевременно остановить убытки и контролировать риск. Также можно установить адаптируемый мобильный стоп в зависимости от волатильности рынка.
Оптимизация параметров, использование методов, таких как анализ шагов вперед и машинное обучение для оптимизации параметров, чтобы они были более подходящими для различных рыночных условий.
Операция с часовой картой, определение формы, такие как направление объекта K-линии, может улучшить качество сигнала и уменьшить ненужную обратную открытую позицию.
Объединение количественных показателей, таких как объем сделок, может предотвратить ложные прорывы. Подтверждение количественных показателей может сделать сигнал более надежным.
Стратегия пересечения движущейся средней является простой и практичной количественной торговой стратегией. Она использует пересечение быстрых ЭМА и медленных SMA для получения торговых сигналов. Стратегия проста в реализации и легко используется в сочетании с другими техническими показателями.
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Moving Average Cross EMA SMA", overlay=true, initial_capital=10000, currency='USD',default_qty_type=strategy.percent_of_equity,default_qty_value=100)
// Based on strategy by lsills @ https://www.tradingview.com/script/oI8loEZ8-Moving-Average-Cross-Strategy/
// Strategy has several logic alternatives - comment out the undesired logic sections below, only 1 logic section can be active
// === GENERAL INPUTS ===
// short Ema
maFastSource = input(defval = close, title = "Fast EMA Source")
maFastLength = input(defval = 13, title = "Fast EMA Period", minval = 1)
// long Sma
maSlowSource = input(defval = close, title = "Slow SMA Source")
maSlowLength = input(defval = 30, title = "Slow SMA Period", minval = 1)
// longer Sma
maSlowerSource = input(defval = close, title = "Slower SMA Source")
maSlowerLength = input(defval = 30, title = "Slower SMA Period", minval = 1)
// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)
maSlower = vwma(maSlowerSource, maSlowerLength)
rsi = rsi(maSlowerSource, maSlowerLength)
// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)
slower = plot(maSlower, title = "Slower MA", color = teal, linewidth = 2, style = line, transp = 30)
// === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross
enterLong = maFast> maSlow
exitLong = maSlow> maFast
// === LOGIC === Complex 1 - switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met
//enterLong = variance(maFast,maSlowLength) < 0.6 and close[0] > maFast and crossover(maFast, maSlow) and 1.1* maSlow > maSlower and rsi>rsi[2]
//exitLong = variance(maFast,maSlowLength) < 0.6 and close[0] < maSlow and crossover(maSlow, maFast) and maSlow/1.1 < maSlower and rsi<rsi[2]
// === LOGIC === Complex 2- switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met
//enterLong = maFast> maSlow and 1.1* maSlow > maSlower and rsi>rsi[1] and close > close[3] //and close > close[2]
//exitLong = maSlow> maFast and maSlow/1.1 < maSlower and rsi<rsi[1] and close < close[3] // and close < close[2]
// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong)
strategy.entry(id="Short Entry", long=false, when=exitLong)
// === FILL ====
fill(fast, slow, color = maFast > maSlow ? green : red)