
Эта стратегия является стратегией межциклической торговли, основанной на показателях EMA. Она использует два различных цикла EMA в качестве сигнала для покупки и продажи, делая больше при прохождении длинного цикла EMA на коротком цикле EMA, и делая пустоту при прохождении длинного цикла EMA на коротком цикле EMA.
В качестве торгового сигнала в стратегии используется золотая спираль EMA. В частности, рассчитываются краткосрочные EMA и долгосрочные EMA, которые генерируют сигнал покупки, когда краткосрочные EMA пересекают долгосрочные EMA, и сигнал продажи, когда краткосрочные EMA пересекают долгосрочные EMA.
После вхождения в позицию стратегия одновременно устанавливает стоп-лосс и стоп-стоп. Стоп-лосс - это определенный процент от цены входа, который служит в качестве линии стоп-лосс, и если цена касается стоп-лосс, то это означает ликвидацию; стоп-лосс - это определенный процент от цены входа, который служит в качестве линии стоп-лосс, и если цена касается стоп-лосс, то это означает ликвидацию.
Эта стратегия также позволяет выбирать только лизинг или лизинг, а также выбирать между внутридневными сделками или держать позиции. Для внутридневных сделок, они будут обязательными до закрытия акций США.
Эта стратегия имеет следующие преимущества:
Используйте EMA, чтобы отфильтровать кривые, чтобы избежать ошибочного восприятия высокочастотных колебаний, и по случаю зафиксировать средне-длинные тенденции.
Используйте пересечение коротких и длинных ЭМА в качестве торговых сигналов, чтобы избежать частых торгов.
Установка стоп-стоп-стоп для контроля риско-прибыльности каждого заказа, полезная для управления капиталом.
Существует множество вариантов торговли, включая оптовую или дисковую торговлю, а также торговлю в течение суток или торговлю с позицией, для различных типов трейдеров.
Совместимость с различными видами торговли, включая акции, иностранную валюту, цифровые валюты и т. д.
Однако есть и потенциальные риски этой стратегии:
Показатели EMA задерживаются и могут пропустить кратковременный трендовый поворот.
Неправильный выбор долгосрочных и краткосрочных ЭМА может привести к искажению торговых сигналов.
Слишком длительный срок хранения может привести к более серьезным рыночным потрясениям.
Механическое остановка может привести к преждевременному выходу из игры или снижению прибыли.
Соответствующие меры по управлению рисками:
Оптимизация параметров EMA, чтобы найти оптимальную комбинацию циклов.
Добавлены другие показатели в качестве вспомогательных.
Динамическая коррекция остановки убытков.
Вмешательство человека в аномальную ситуацию
Эта стратегия может быть оптимизирована в следующих направлениях:
Оптимизируйте параметры EMA, чтобы найти подходящую комбинацию длинных и коротких циклов для разных сортов.
Добавление других показателей, таких как MACD, KD и т.д., для достижения многопоказательного резонанса.
Добавление обучения моделей машинного обучения, создание динамического стоп-ущерба.
Доступ к более продвинутым показателям RISK для характеристики.
Добавление адаптивных торговых элементов для оптимизации параметров.
В целом, эта стратегия является отличным шаблоном для стратегии отслеживания тенденций. Основным преимуществом является то, что она использует индикатор 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")