Эта стратегия представляет собой торговую систему, основанную на индикаторе волатильности стоп (VStop) и экспоненциальной скользящей средней (EMA). Включая принципы торговли Стэна Вайнштейна, она оптимизирует управление капиталом с помощью динамически регулируемых стоп-потерь при использовании EMA для подтверждения направления тренда. Эта комбинация предоставляет инвесторам и трейдерам свинга основу, которая может одновременно улавливать тенденции и эффективно управлять рисками.
Основная логика основана на двух основных технических показателях: 1. Стоп волатильности (VStop): динамический индикатор стоп-лосса, основанный на ATR (средний истинный диапазон), который адаптируется к волатильности рынка. Когда цена находится в восходящем тренде, линия остановки движется вверх с ценой; когда тренд переворачивается, линия остановки меняет направление и пересчитывается.
Логика генерации торговых сигналов: - Условия входа: цена выше VStop (в восходящем тренде) и цена закрытия выше EMA - Условия выхода: когда цена закрытия падает ниже средней средней - Контроль рисков: позиции стоп-лосса в режиме реального времени, предоставляемые динамически регулируемым VStop
Эта стратегия строит полную тенденцию, следующую торговой структуре, объединяя системы остановок волатильности и скользящих средних. Ее основные преимущества заключаются в адаптируемости и возможностях управления рисками, но необходимо обратить внимание на влияние рыночной среды на эффективность стратегии. Благодаря постоянной оптимизации и улучшению стратегия имеет потенциал для поддержания стабильной производительности в различных рыночных условиях. Трейдерам рекомендуется тщательно протестировать параметры и корректировать стратегию в соответствии с их терпимостью к риску перед живой торговлей.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("VStop + EMA Strategy", overlay=true) // VStop Parameters length = input.int(20, "VStop Length", minval=2) multiplier = input.float(2.0, "VStop Multiplier", minval=0.25, step=0.25) // EMA Parameters emaLength = input.int(30, "EMA Length", minval=1) // VStop Calculation volStop(src, atrlen, atrfactor) => if not na(src) var max = src var min = src var uptrend = true var float stop = na atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr) max := math.max(max, src) min := math.min(min, src) stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src) uptrend := src - stop >= 0.0 if uptrend != uptrend[1] and not barstate.isfirst max := src min := src stop := uptrend ? max - atrM : min + atrM [stop, uptrend] // Calculate VStop [vStop, isUptrend] = volStop(close, length, multiplier) // Plot VStop plot(vStop, "Volatility Stop", style=plot.style_cross, color=isUptrend ? color.teal : color.red) // Calculate 30 EMA emaValue = ta.ema(close, emaLength) plot(emaValue, "EMA", color=color.blue) // Entry and Exit Conditions longCondition = isUptrend and close > emaValue exitCondition = close <= emaValue // Strategy Execution if longCondition and not strategy.opentrades strategy.entry("Long", strategy.long) if exitCondition and strategy.opentrades strategy.close("Long") // Display Strategy Info bgcolor(isUptrend ? color.new(color.teal, 90) : color.new(color.red, 90), title="Trend Background")