Стратегия торговли скользящей средней кроссовер - это относительно распространенная количественная стратегия торговли. Эта стратегия генерирует торговые сигналы путем расчета скользящих средних различных периодов и в соответствии с их ситуацией кроссовера. В частности, она рассчитывает экспоненциальные скользящие средние (EMA) 4 периодов, 8 периодов и 20 периодов. Когда краткосрочная EMA пересекает долгосрочную EMA, перейдите в длинный; когда краткосрочная EMA пересекает длинную EMA, перейдите в короткий.
Основная логика этой стратегии заключается в следующем:
С помощью этого метода мы используем пересечение между различными скользящими средними периодами для оценки рыночных сигналов и используем направление самой длинной скользящей средней для фильтрации ложных сигналов, создавая стабильную торговую стратегию.
Основными преимуществами этой стратегии являются:
Эта стратегия также сопряжена с некоторыми рисками:
Основными решениями являются:
Стратегия может быть оптимизирована в следующих аспектах:
Оптимизация периода: определить оптимальную комбинацию периодов MA в соответствии с различными сортами.
Оптимизация стоп-потери: разумно устанавливать точки стоп-потери для контроля одиночных потерь.
Оптимизация параметров: динамическая оптимизация параметров с использованием генетических алгоритмов, цепочек Маркова и т. д.
Слияние моделей: интеграция с LSTM, RNN и другими моделями глубокого обучения для извлечения большего количества альфа.
Оптимизация портфеля: комбинировать с другими стратегиями технических индикаторов для построения портфелей стратегии.
В целом, стратегия пересечения скользящей средней является относительно классической и широко используемой количественной торговой стратегией. Эта стратегия имеет простую логику и легко понимается и реализуется с определенной стабильностью. Но есть также некоторые проблемы, такие как генерация ложных сигналов, неспособность адаптироваться к изменениям рынка и т. Д. Эти проблемы могут быть улучшены с помощью оптимизации параметров, оптимизации стоп-лосса, слияния моделей и других методов. В целом, стратегия скользящей средней может использоваться в качестве базового модуля в инструментарии стратегии, в сочетании с более сложными стратегиями для построения надежных сложных стратегий.
/*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)