Эта стратегия представляет собой количественную торговую систему, основанную на перекрестке двойных экспоненциальных скользящих средних (EMA). Она использует краткосрочную EMA (14 периодов) и долгосрочную EMA (100 периодов) для захвата точек перехода тренда на рынке путем определения времени входа через пересечение краткосрочных и долгосрочных скользящих средних. Сигналы покупки генерируются, когда краткосрочная EMA пересекает длительную EMA, а сигналы продажи генерируются, когда происходит обратное. Эта стратегия особенно подходит для трейдеров, которые хотят позиционировать себя в начале переворотов тренда.
Основная логика стратегии основана на изменениях импульса в ценовых тенденциях. Краткосрочная EMA более чувствительна к изменениям цен, в то время как долгосрочная EMA лучше фильтрует рыночный шум и отражает первичную тенденцию. Когда краткосрочная скользящая средняя пересекается выше долгосрочной скользящей средней, это указывает на усиление краткосрочной импульса и возможного восходящего тренда; когда краткосрочная скользящая средняя пересекается ниже долгосрочной скользящей средней, это предполагает ослабление импульса и потенциальный нисходящий тренд. Стратегия использует функции ta.crossover и ta.crossunder для точного захвата этих точек пересечения и выполнения операций позиций в соответствующие времена.
Dynamic EMA Trend Crossover Entry Quantitative Strategy является классической и практичной системой, следующей за трендом. Сочетая краткосрочные и долгосрочные экспоненциальные скользящие средние, стратегия эффективно захватывает возможности перехода на рыночный тренд.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy", overlay=true) // Input for EMAs shortEmaLength = input(14, title="Short EMA Length") longEmaLength = input(100, title="Long EMA Length") // Calculate EMAs shortEma = ta.ema(close, shortEmaLength) longEma = ta.ema(close, longEmaLength) // Plot EMAs plot(shortEma, color=color.blue, title="9 EMA") plot(longEma, color=color.red, title="100 EMA") // Historical Signal Tracking var float lastBuyPrice = na var float lastSellPrice = na // Buy and Sell Signals buySignal = ta.crossover(shortEma, longEma) sellSignal = ta.crossunder(shortEma, longEma) // Track last buy and sell prices if (buySignal) lastBuyPrice := close if (sellSignal) lastSellPrice := close // Plot buy and sell signals on the chart plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Logic if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy")