
Эта стратегия использует систему двойной скользящей средней для оценки тренда и принятия торговых решений, а также определяет начало, продолжение или конец рыночных трендов посредством относительного положения быстрой скользящей средней и медленной скользящей средней в определенный момент времени. Стратегия проверяет позиционное соотношение между быстрой EMA и медленной EMA в фиксированное время каждый день, устанавливает длинную позицию, когда быстрая линия находится выше медленной линии, и устанавливает короткую позицию, когда быстрая линия находится ниже медленной линии. тем самым достигается отслеживание тренда в торговле.
Суть стратегии заключается в оценке тренда на основе двух экспоненциальных скользящих средних (EMA) разных периодов. Быстрая EMA (период по умолчанию — 10) более чувствительна к изменениям цен и может быстрее улавливать рыночные тенденции; медленная EMA (период по умолчанию — 50) отражает долгосрочные тенденции. Стратегия проверяет позиционное соотношение двух скользящих средних в указанное время каждого торгового дня (по умолчанию 9:00), определяет направление рыночного тренда и совершает сделки на основе сигнала пересечения скользящих средних. Когда быстрая EMA пересекает медленную EMA снизу вверх, это указывает на то, что краткосрочный восходящий импульс усилился, и пришло время входить на рынок и открывать длинную позицию; когда быстрая EMA пересекает медленную EMA снизу вверх, это указывает на то, что краткосрочный восходящий импульс усилился, и пришло время входить в рынок и открывать длинную позицию. Тенденция к снижению усилилась, и пришло время выходить на рынок и открывать короткую позицию.
Эта стратегия реализует простую и эффективную торговую систему отслеживания тренда путем объединения быстрой и медленной системы двойной скользящей средней с механизмом проверки по фиксированному времени. Преимуществами этой стратегии являются четкая логика и высокая степень автоматизации, но она также имеет ограничения, такие как задержка скользящей средней и фиксированное время входа. Стратегию еще предстоит усовершенствовать за счет внедрения дополнительных технических индикаторов, оптимизации механизмов выбора параметров и усиления мер контроля рисков. В целом, это базовая стратегическая структура, имеющая практическую ценность, которую можно дополнительно улучшить и оптимизировать в соответствии с конкретными потребностями.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Daily EMA Comparison Strategy", shorttitle="Daily EMA cros Comparison", overlay=true)
//------------------------------------------------------------------------------
// Inputs
//------------------------------------------------------------------------------
fastEmaLength = input.int(10, title="Fast EMA Length", minval=1) // Fast EMA period
slowEmaLength = input.int(50, title="Slow EMA Length", minval=1) // Slow EMA period
checkHour = input.int(9, title="Check Hour (24h format)", minval=0, maxval=23) // Hour to check
checkMinute = input.int(0, title="Check Minute", minval=0, maxval=59) // Minute to check
//------------------------------------------------------------------------------
// EMA Calculation
//------------------------------------------------------------------------------
fastEMA = ta.ema(close, fastEmaLength)
slowEMA = ta.ema(close, slowEmaLength)
//------------------------------------------------------------------------------
// Time Check
//------------------------------------------------------------------------------
// Get the current bar's time in the exchange's timezone
currentTime = timestamp("GMT-0", year, month, dayofmonth, checkHour, checkMinute)
// Check if the bar's time equals or passes the daily check time
isCheckTime = (time >= currentTime and time < currentTime + 60 * 1000) // 1-minute tolerance
//------------------------------------------------------------------------------
// Entry Conditions
//------------------------------------------------------------------------------
// Buy if Fast EMA is above Slow EMA at the specified time
buyCondition = isCheckTime and fastEMA > slowEMA
// Sell if Fast EMA is below Slow EMA at the specified time
sellCondition = isCheckTime and fastEMA < slowEMA
//------------------------------------------------------------------------------
// Strategy Execution
//------------------------------------------------------------------------------
// Enter Long
if buyCondition
strategy.entry("Long", strategy.long)
// Enter Short
if sellCondition
strategy.entry("Short", strategy.short)
//------------------------------------------------------------------------------
// Plot EMAs
//------------------------------------------------------------------------------
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")