Стратегия торговли с перемещающейся средней

Автор:Чао Чжан, Дата: 2024-01-24 14:59:44
Тэги:

img

Обзор

Стратегия торговли скользящей средней кроссовер - это относительно распространенная количественная стратегия торговли. Эта стратегия генерирует торговые сигналы путем расчета скользящих средних различных периодов и в соответствии с их ситуацией кроссовера. В частности, она рассчитывает экспоненциальные скользящие средние (EMA) 4 периодов, 8 периодов и 20 периодов. Когда краткосрочная EMA пересекает долгосрочную EMA, перейдите в длинный; когда краткосрочная EMA пересекает длинную EMA, перейдите в короткий.

Логика стратегии

Основная логика этой стратегии заключается в следующем:

  1. Вычислить линии EMA 4 периодов, 8 периодов и 20 периодов.
  2. Оценить взаимосвязь между 4-периодной линией EMA и 8-периодной линией EMA:
    1. Когда 4-периодная линия EMA пересекает 8-периодную линию EMA, это означает, что ценовая тенденция укрепляется, что является бычьим сигналом.
    2. Когда 4-периодный EMA пересекается ниже 8-периодного EMA, это означает ослабление ценовой тенденции, что является медвежьим сигналом.
  3. В то же время, судите о направлении 20-периодической линии EMA:
    1. Если 20-периодная линия EMA поднимется, то ввести длинный.
    2. Если 20-периодная линия EMA снижается, то вводить короткий.
  4. Когда отношение между 4-периодической линией EMA и 8-периодической линией EMA переворачивается, подготовить выход.
  5. Когда направление 20-периодической линии EMA изменится, выйти сейчас.

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

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

Основными преимуществами этой стратегии являются:

  1. Логика стратегии проста и понятна, легко понять и реализовать.
  2. Двойная фильтрация может уменьшить ложные сигналы.
  3. Усиление от 20-периодного EMA может выявить основные тенденции и повысить стабильность.
  4. Настраиваемые параметры для регулирования частоты торговли.
  5. Легко комбинируется с другими показателями или моделями для создания сложных стратегий.

Риски стратегии

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

  1. Стратегии двойной скользящей средней имеют тенденцию генерировать ложные сигналы.
  2. Фиксированные периоды не могут адаптироваться к изменениям рынка.
  3. Легко вызывать убытки во время колебаний рынка.

Основными решениями являются:

  1. Соответственно сократить период хранения и вовремя остановить потерю.
  2. Динамически оптимизировать параметры и корректировать периоды скользящей средней.
  3. Сочетать с другими показателями или моделями для создания сложных стратегий.

Руководство по оптимизации

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

  1. Оптимизация периода: определить оптимальную комбинацию периодов MA в соответствии с различными сортами.

  2. Оптимизация стоп-потери: разумно устанавливать точки стоп-потери для контроля одиночных потерь.

  3. Оптимизация параметров: динамическая оптимизация параметров с использованием генетических алгоритмов, цепочек Маркова и т. д.

  4. Слияние моделей: интеграция с LSTM, RNN и другими моделями глубокого обучения для извлечения большего количества альфа.

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

Резюме

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2.05)
//stock strategy
strategy(title = "stub",   overlay = true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true, commission_type=strategy.commission.percent,commission_value=.0,default_qty_value=10000)


testStartYear = input(1900, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12, "Backtest Start Month")
testEndDay = input(1, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() => true

ema1 = ema(close,4)
ema2 = ema(close,8)
ema3 = ema(close,20)

go_long = ema1[0] > ema2[0] and ema3[0] > ema3[1]
exit_long = ema1[0] < ema2[0] or ema3[0] < ema3[1]

go_short = ema1[0] < ema2[0] and ema3[0] < ema3[1]
exit_short = ema1[0] > ema2[0] or ema3[0] > ema3[1]

 
if testPeriod()
    strategy.entry("simpleBuy", strategy.long, when=go_long)
    strategy.exit("simpleBuy", "simpleSell",when=exit_long)
    
    strategy.entry("simpleSell", strategy.short,when=go_short)
    strategy.exit("simpleSell", "simpleSell",when=exit_short)
        
    


Больше