
Стратегия представляет собой торговую систему, следующую за трендом, основанную на индикаторе Volatility Rate Stop (VStop) и экспоненциальной скользящей средней (EMA). Стратегия сочетает в себе торговую философию Стэна Вайнштейна для оптимизации управления капиталом посредством динамически регулируемых уровней стоп-лосса, а также использования EMA для подтверждения направления тренда. Такое сочетание предоставляет инвесторам и свинг-трейдерам торговую структуру, которая позволяет им улавливать тенденции и эффективно управлять рисками.
Основная логика стратегии основана на двух основных технических индикаторах:
Volatility Stop (VStop): динамический стоп-индикатор, основанный на ATR (среднем истинном диапазоне), который адаптивно корректирует позицию стопа в соответствии с волатильностью рынка. Когда цена находится в восходящем тренде, линия стоп-лосса будет двигаться вверх по мере роста цены; когда тренд разворачивается, линия стоп-лосса меняет направление и пересчитывается.
Экспоненциальная скользящая средняя (EMA): действует как инструмент подтверждения тренда и помогает отфильтровывать ложные сигналы. Прежде чем рассматривать возможность открытия позиции, цена должна быть выше EMA, что гарантирует соответствие направления торговли основному тренду.
Логика формирования торгового сигнала следующая:
Эта стратегия создает полноценную торговую структуру, следующую за трендом, путем объединения системы стоп-лосс по волатильности и скользящей средней. Главные преимущества стратегии заключаются в ее адаптивности и возможностях управления рисками, однако необходимо также обращать внимание на влияние рыночной среды на эффективность стратегии. Ожидается, что благодаря постоянной оптимизации и совершенствованию стратегия будет поддерживать стабильную эффективность в различных рыночных условиях. Трейдерам рекомендуется полностью протестировать настройки параметров и скорректировать стратегии с учетом собственной устойчивости к риску, прежде чем использовать их в реальной торговле.
/*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")