Это кроссоверная количественная стратегия торговли EMA. Она использует две EMA с различными периодами в качестве торговых сигналов, идя длинный, когда более короткий период EMA пересекает более длинный период EMA и идти короткий, когда более короткий период EMA пересекает ниже более длинного периода EMA. Она относится к следующей стратегии тренда. Эта стратегия также устанавливает стоп-лосс и прибыль для контроля рисков.
Эта стратегия использует золотой крест и смертельный крест EMA в качестве торговых сигналов. В частности, она рассчитывает EMA короткого периода и EMA более длительного периода соответственно. Когда EMA более короткого периода пересекает EMA более длительного периода, она генерирует сигнал покупки для длинного периода. Когда EMA более короткого периода пересекает EMA более длинного периода, она генерирует сигнал продажи для короткого периода. Таким образом, движущиеся тенденции EMA определяют направления торговли.
После входа в позиции, стратегия также устанавливает стоп-лосс и берёт прибыль одновременно. Стоп-лосс - это определенный процент от цены входа как линия стоп-лосса. Если цена коснется линии стоп-лосса, она выйдет из позиции для стоп-лосса. Прибыль - это определенный процент от цены входа как линия прибыли. Если цена коснется линии прибыли, она выйдет из позиции для получения прибыли.
Эта стратегия также позволяет выбирать только длинную, только короткую, внутридневную торговлю или торговлю позициями.
Эта стратегия имеет следующие преимущества:
Использование индикатора EMA для фильтрации шума и несложного обнаружения средне-долгосрочных тенденций.
Принятие перекрестных знаков EMA между более короткими и более длительными периодами в качестве торговых сигналов для предотвращения чрезмерной торговли.
Установка стоп-лосса и прибыли для контроля соотношения риск-вознаграждение каждой сделки, что хорошо для управления деньгами.
Разрешать только длинную, только короткую, внутридневную и позиционную торговлю для различных типов трейдеров.
Поддержка нескольких торговых активов, таких как акции, валюты, криптовалюты и т. Д.
Эта стратегия также сопряжена с некоторыми потенциальными рисками:
Показатель EMA имеет отстающий эффект и может пропустить некоторые краткосрочные поворотные моменты тренда.
Неправильный выбор более коротких и более длинных периодов EMA может вызвать беспорядочные торговые сигналы.
Если держать позиции слишком долго, это может привести к более значительным колебаниям на рынке.
Механические стоп-лосс и прибыль могут выйти из позиций слишком рано или преждевременно снизить прибыль.
Соответствующие измерения управления рисками:
Оптимизировать параметры EMA для поиска наилучшей комбинации периодов.
Добавьте другие показатели в качестве вспомогательного суждения.
Динамически регулируйте стоп-лосс и прибыль.
Ручное вмешательство в необычные рыночные условия.
Эта стратегия может быть оптимизирована в следующих аспектах:
Наилучшая оптимизация параметров EMA для поиска подходящих комбинаций коротких и длинных периодов для различных торговых активов.
Добавьте другие индикаторы, такие как MACD, KD для многоиндикаторной синергии.
Добавьте модели машинного обучения для генерирования динамических стоп-лосса и получения прибыли.
Подключить более продвинутые индикаторы риска для разработки функций.
Добавить адаптивные торговые компоненты для самооптимизации параметров.
В целом, это отличный тренд, следующий за шаблоном стратегии. Его основная сила заключается в использовании индикатора EMA для фильтрации шума и достижения устойчивой прибыли, при этом обладая комплексным управлением рисками и вознаграждениями. Благодаря непрерывной оптимизации эта стратегия может стать универсальной количественной стратегией на всех рынках и полезна для трейдеров для изучения и практики.
/*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=5 strategy("EMA Crossover Strategy by Vikrant Singh", overlay=true) // Input for EMA Lengths var bool runningPOS = false var float stopLossLevel = na var float targetLevel = na shortLength = input(11, title="Short EMA Length") longLength = input(21, title="Long EMA Length") // Input for Stop-Loss and Target stopLossPct = input(1, title="Stop-Loss (%)") targetPct = input(3, title="Target (%)") longOnly = input(true, title="Long Only") intraDay = input(true, title="intraday?") // Calculate EMAs emaShort = ta.ema(close, shortLength) emaLong = ta.ema(close, longLength) // Calculate crossover conditions crossoverCondition = ta.crossover(emaShort, emaLong) crossunderCondition = ta.crossunder(emaShort, emaLong) // Entry condition (long position just before crossover) if crossoverCondition and not runningPOS and longOnly and (hour <= 15) strategy.entry("Long", strategy.long) runningPOS := true stopLossLevel := close * (1 - stopLossPct / 100) targetLevel := close * (1 + targetPct / 100) //Entry condition (short position just before crossover) if crossunderCondition and not runningPOS and not longOnly and (hour <= 15) strategy.entry("Short", strategy.short) runningPOS := true stopLossLevel := close * (1 + stopLossPct / 100) targetLevel := close * (1 - targetPct / 100) // Exit conditions (square off on reverse crossover) //Exit long if (crossunderCondition or (low < stopLossLevel) or (high > targetLevel) ) and longOnly and runningPOS strategy.close("Long",comment = "Exit long")// ("Long", from_entry="Long",stop=stopLossLevel, limit=targetLevel) runningPOS := false //Exit short if (crossoverCondition or (high > stopLossLevel) or (low < targetLevel) ) and not longOnly and runningPOS strategy.close("Short", comment = "Exit Short") runningPOS := false if intraDay and runningPOS if (hour >= 15) strategy.close_all(comment = "Intraday square off") //strategy.close("Long",comment = "intraday square off") runningPOS := false // Plot EMAs plot(emaShort, color=color.blue, title="Short EMA") plot(emaLong, color=color.red, title="Long EMA")