Длинные и короткие стратегии, основанные на уровнях поддержки и трендовой EMA

INDICATORS EMA ATR SL TP SMC
Дата создания: 2025-02-21 10:56:01 Последнее изменение: 2025-02-21 10:56:01
Копировать: 2 Количество просмотров: 323
2
Подписаться
319
Подписчики

Длинные и короткие стратегии, основанные на уровнях поддержки и трендовой EMA Длинные и короткие стратегии, основанные на уровнях поддержки и трендовой EMA

Обзор

Это многоцелевая стратегия, основанная на поддержке и трендовых EMA. Стратегия, которая позволяет найти оптимальные входные возможности, идентифицируя рыночные тенденции и ключевые поддерживающие позиции, в сочетании с динамическими остановками ATR и сегментированной прибылью для управления рисками. Стратегия, в основном, фокусируется на том, что цены возвращаются к поддержке во время восходящей тенденции, чтобы повысить уровень успешности сделки, устанавливая разумный риск-возврат.

Стратегический принцип

Стратегия использует 100-циклическую ЭМА в качестве индикатора тренда, подтверждающего восходящий тренд, когда цена находится выше ЭМА. При этом рассчитывается 10-циклическая минимальная цена в качестве краткосрочной поддержки, когда цена возвращается вблизи поддержки ((поддержка +0.5*ATR) при поиске возможности для входа. После входа используется метод с частичной прибылью, при 5x ATR выигрышная позиция закрывается на 50%, оставшаяся позиция закрывается полностью при 10x ATR, при этом устанавливается 1x ATR в качестве динамического стоп-лосса. Риск на каждую сделку контролируется в пределах 3% от общей стоимости счета, чтобы реализовать управление риском путем динамического расчета размера позиции.

Стратегические преимущества

  1. Трендовые характеристики: используйте EMA для определения трендов и избегайте противоположных сделок
  2. Динамическая поддержка: используя последние 10-циклические минимумы в качестве поддержки, чтобы лучше отражать текущее состояние рынка
  3. Гибкий риск-менеджмент: динамические цели по остановке убытков и прибыли на основе ATR, адаптированные к рыночным колебаниям
  4. Раздельный механизм получения прибыли: распределение прибыли в разных ценовых уровнях, гарантируя прибыль, но не упуская из виду основные тенденции
  5. Точный контроль позиций: количественное управление рисками с учетом динамики расстояния от остановки

Стратегический риск

  1. Риск ложного прорыва: возможны ложные прорывы вблизи поддержки, рекомендуется увеличить показатели подтверждения
  2. Риск обратного тренда: отсталость EMA может привести к убыткам в момент перелома тренда
  3. Риск переторгов: частое возникновение поддержки может привести к переторговке
  4. Риск скольжения: при сильных колебаниях может возникнуть более крупное скольжение Решение:
  • Добавить индикаторы подтверждения тренда
  • Оптимизация условий поступления
  • Настройка интервала транзакций
  • Настройка пределов убытков

Направление оптимизации стратегии

  1. Многомерное определение тенденций: объединение показателей тенденций на несколько временных периодов повышает точность определения тенденций
  2. Оптимизация входных условий: дополнительные показатели, такие как увеличение объема переводов, волатильность и т. Д., в качестве фильтрующих условий входа
  3. Оптимизация динамических параметров: адаптация параметров в зависимости от состояния рынка
  4. Повышение показателей рыночных настроений: внедрение таких показателей рыночных настроений, как VIX, оптимизация времени торговли
  5. Усовершенствование механизма сдерживания: динамическая корректировка целевой прибыли в зависимости от рыночных колебаний

Подвести итог

Стратегия создает целостную торговую систему, объединяя трендовое следование и отклонение от поддерживающих позиций, и реализует управление рисками с помощью сегментированного получения прибыли и динамического остановки убытков. Основные преимущества стратегии заключаются в ее совершенном механизме контроля риска и четкой логике торговли, но все еще требует постоянной оптимизации параметров и условий входа в практику, чтобы адаптироваться к различным рыночным условиям.

Исходный код стратегии
/*backtest
start: 2024-02-22 00:00:00
end: 2024-05-30 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Ultra-Profitable SMC Long-Only Strategy", shorttitle="Ultra_Profit_SMC", overlay=true)

// User Inputs
emaTrendLength = input.int(100, title="Trend EMA Length")  // Faster EMA to align with aggressive trends
supportLookback = input.int(10, title="Support Lookback Period")  // Short-term support zones
atrLength = input.int(14, title="ATR Length")
atrMultiplierSL = input.float(1.0, title="ATR Multiplier for Stop-Loss")
atrMultiplierTP1 = input.float(5.0, title="ATR Multiplier for TP1")
atrMultiplierTP2 = input.float(10.0, title="ATR Multiplier for TP2")
riskPercent = input.float(3.0, title="Risk per Trade (%)", step=0.1)

// Calculate Indicators
emaTrend = ta.ema(close, emaTrendLength)  // Trend EMA
supportLevel = ta.lowest(low, supportLookback)  // Support Level
atr = ta.atr(atrLength)  // ATR

// Entry Conditions
isTrendingUp = close > emaTrend  // Price above Trend EMA
nearSupport = close <= supportLevel + (atr * 0.5)  // Price near support zone
longCondition = isTrendingUp and nearSupport

// Dynamic Stop-Loss and Take-Profit Levels
longStopLoss = supportLevel - (atr * atrMultiplierSL)
takeProfit1 = close + (atr * atrMultiplierTP1)  // Partial Take-Profit at 5x ATR
takeProfit2 = close + (atr * atrMultiplierTP2)  // Full Take-Profit at 10x ATR

// Position Sizing
capital = strategy.equity
tradeRisk = riskPercent / 100 * capital
positionSize = tradeRisk / (close - longStopLoss)

// Execute Long Trades
if (longCondition)
    strategy.entry("Ultra Long", strategy.long, qty=positionSize)

// Exit Conditions
strategy.exit("Partial Exit", from_entry="Ultra Long", limit=takeProfit1, qty_percent=50)  // Exit 50% at TP1
strategy.exit("Full Exit", from_entry="Ultra Long", limit=takeProfit2, qty_percent=100, stop=longStopLoss)  // Exit the rest at TP2

// Plot Indicators
plot(emaTrend, color=color.blue, title="Trend EMA")
plot(supportLevel, color=color.green, title="Support Level", linewidth=2)