
Стратегия торговли с прогрессивной равной линией - это стратегия торговли, основанная на перекрестных сигналах экспоненциальных движущихся средних, установленных на двух разных параметрах. Она использует короткопериодическую линию EMA и длиннопериодическую линию EMA, которая создает торговый сигнал, когда они пересекаются. Быстрая линия делает больше, когда она пересекает медленную линию вверх, и плавность, когда она пересекает нижнюю.
Основными показателями стратегии являются две линии EMA: быстрая и медленная. Параметр быстрой линии по умолчанию устанавливается на 13-ю линию, что повышает чувствительность к изменению цены; параметр медленной линии по умолчанию устанавливается на 48-ю линию, что повышает медленную реакцию на изменение цен.
Согласно этому принципу, стратегия делает больше, когда быстрая линия сверху вверх пробивает медленную линию, что означает, что цена начинает расти, и можно купить; когда быстрая линия сверху вниз пробивает медленную линию, что означает, что восходящая тенденция закончена, и следует вовремя остановить. Для контроля риска стратегия также устанавливает начальный стоп-убыток и отслеживание стоп-убытков: начальный стоп-убыток составляет 8% от цены входа, а отслеживание стоп-убытков - 120 пунктов. Это может быть как можно скорее, чтобы остановить убыток и уменьшить убытки, когда цена переворачивается.
В кодовой реализации стратегия определяет EMA-крестные сигналы с помощью функций crossover и crossunder, которые вызывают соответствующие entry и close, чтобы купить и закрыть позиции.
Стратегия постепенного линейного трейдинга имеет следующие преимущества:
Стратегические сигналы должны быть простыми, понятными и удобными для новичков.
Среднелинейный индикатор хорошо отражает рыночный шум и может обнаруживать изменения в тренде;
Конфигурируемость, параметры быстрого и медленного движения и точка остановки могут быть настроены по вашему желанию;
В сочетании с методами сдерживания убытков можно эффективно контролировать риски.
Устойчивость.
Однако эта стратегия несет в себе определенные риски:
В период сильных рыночных колебаний перекрестные сигналы EMA могут задерживаться и не отражать изменения цены;
Слишком быстрое изменение параметров среднелинейного показателя может привести к большему количеству ошибочных сигналов;
При слабой тенденции EMA пересекается с меньшим количеством и не может эффективно улавливать ценовые движения.
Стратегия сама по себе не учитывает анализ тенденций на большом уровне, и, когда общая тенденция рынка не ясна, она может привести к сделкам, которые отклоняются от основных тенденций.
Эти риски могут быть смягчены следующими способами:
в сочетании с другими показателями для подтверждения равнолинейного перекрестного сигнала, например MACD, KD и т. д.;
Применение параметров EMA в зависимости от рынка для снижения частоты ошибочных сигналов;
Добавление модуля определения тенденций, ссылаясь на долгосрочную среднюю линию для определения направления общей ситуации.
Эта стратегия может быть оптимизирована в следующих направлениях:
Увеличение фильтрации условий открытия позиции, чтобы избежать чрезмерного количества ненужных сделок в условиях потрясений. Для установления порога открытия позиции можно использовать такие показатели, как волатильность, объем сделок;
Для определения позиции стоп-стоп в сочетании с высокими и низкими точками рынка, уровнями поддержки и т. д. для повышения точности стоп-стоп-стоп;
Добавление модуля определения тенденций, чтобы фильтровать краткосрочные сигналы с помощью долгосрочных тенденций в более высоких временных рамках, чтобы избежать отклонений от основных тенденций;
Параметры EMA могут быть обучены и оптимизированы с помощью машинного обучения, чтобы сделать их более подходящими для реальных рыночных условий и снизить погрешность сигналов.
Эти моменты являются основными направлениями, в которых стратегия может быть улучшена и оптимизирована в будущем.
Стратегия постепенной смежности является базовой стратегией, следующей за тенденцией. Она использует пересечение скоростной и медленной линий EMA для определения ценовых тенденций и в сочетании с средствами контроля риска. Сигналы этой стратегии простые, понятные и легко понятные, особенно подходят для новичков. Это одна из типичных стратегий количественного входа.
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// *** USE AT YOUR OWN RISK ***
//
strategy("EMA Strategy", shorttitle = "EMA Strategy", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)
// === Inputs ===
// short ma
maFastSource = input(defval = close, title = "Fast MA Source")
maFastLength = input(defval = 13, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource = input(defval = close, title = "Slow MA Source")
maSlowLength = input(defval = 48, title = "Slow MA Period", minval = 1)
// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop = input(defval = true, title = "Use Initial Stop Loss?")
slPoints = input(defval = 25, title = "Initial Stop Loss Points", minval = 1)
useTS = input(defval = true, title = "Use Trailing Stop?")
tslPoints = input(defval = 120, title = "Trail Points", minval = 1)
useTSO = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset = input(defval = 20, title = "Trail Offset Points", minval = 1)
// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)
plot(fastMA, color=blue)
plot(slowMA, color=purple)
goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())
// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())
if (useStop)
strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)