
Эта стратегия является системой внутридневных коротких линий торговли, основанной на технических показателях, для определения торговых сигналов, в основном используя взаимосвязь между 20-циклическим подвижным средним индексом ((EMA 20) и средней ценой, взвешенной по объему сделки, основанной на типичных расчетах цен ((VWAP)). Стратегия использует динамические стоп-пороги и целевую прибыль, точно рассчитывая соотношение риска и прибыли с помощью ATR ((средняя величина реального волнового диапазона) и размера корпуса оружия ((сигнальный корпус), что позволяет достичь баланса контроля риска и максимизации прибыли.
Основные принципы стратегии основаны на перекрестных отношениях между двумя средними линиями (EMA 20 и фиксированный VWAP) и взаимодействии цены с этими средними линиями. В частности:
Механизм генерации входного сигнала:
Применение типичных ценСтратегия: используйте типичную цену ((высокая цена + низкая цена + цена закрытия) / 3 для вычисления VWAP, что дает более полную информацию о ценах, чем просто использование цены закрытия.
VWAP в ближайшее время:VWAP перенастраивается в начале каждого торгового дня, чтобы показатель отражал отношение цены к объему сделки в этот день и был подходящим для использования трейдерами в течение дня.
Динамическое управление рисками:
Отношение риска к прибылиСтратегия по умолчанию использует соотношение риска и дохода 1:3 - потенциальная прибыль в три раза превышает потенциальный риск, что соответствует стандартам управления рисками для профессиональных трейдеров.
Объединение преимуществ комплексных технических показателейВместе с возможностью отслеживания трендов EMA и преимуществом VWAP в пересчете объемов транзакций, сигнал становится более надежным.
Динамическая остановка убытков в связи с волатильностью рынка: С помощью ATR расчетная стоп-позиция позволяет стоп-позиции автоматически корректироваться в зависимости от реальных колебаний рынка, избегая неприспособленности фиксированных стоп-позиций в различных волатильных условиях.
Цели, основанные на размере корпуса: использование фактического размера сигнального столба для определения целевой цены, этот метод может лучше адаптироваться к текущим колебательным характеристикам рынка, устанавливая более отдаленную цель при больших колебаниях и более близкую цель при малых колебаниях.
Перезагрузка VWAP в течение дня: VWAP пересчитывается на каждый торговый день, что позволяет избежать помех исторических данных для текущего торгового дня и обеспечивает более четкую внутридневную цену.
Механизм многократного подтверждения: требует сочетание условий скрещивания равнолинейных и ценовых, снижает вероятность ложных сигналов, повышает точность торгов.
Интуитивное визуализация: Стратегия предоставляет четкие графические знаки, включая сигналы покупки и продажи, стоп-лосс и целевую ценовую линию, что позволяет трейдерам интуитивно понимать и принимать торговые решения.
Риск отставания от среднейНесмотря на то, что EMA реагирует быстрее, чем простая скользящая средняя, существует определенная задержка, которая может привести к пропуску оптимальных точек входа или созданию задержанных сигналов в быстро меняющихся рынках.
VWAP рассчитывается в зависимости от объема транзакцийВ случае аномального объема транзакций, например, крупных крупных транзакций, может возникнуть отклонение VWAP, влияющее на точность сигнала.
Риск частоты торговВ условиях нестабильных рынков средние линии могут часто пересекаться, что приводит к переторгу и увеличению стоимости сделки.
Ограничение риска возникновения поврежденийРынок может столкнуться с краткосрочными ценовыми осколками, которые могут привести к ненужным убыткам и возвращению к первоначальному тренду после запуска стоп-лосса.
Ограничения, установленные целевой ценойПоказатели, основанные на размерах отдельных блоков, могут быть недостаточными для всех рыночных условий, особенно при изменении структуры рынка.
Решение проблемы:
Параметры оптимизации:
Добавить фильтр рыночной среды:
Фильтр времени:
Оптимизация стоп-стоп:
Интеграция многовременного анализа:
Реализация этих направлений оптимизации может значительно повысить устойчивость и рентабельность стратегии, однако необходимо следить за тем, чтобы чрезмерная оптимизация не приводила к проблемам с перенастройкой. Каждое улучшение должно быть проверено на эффективность с помощью строгих обратных отзывов и тестирования вперед.
Движущаяся стоп-стоп-лосс количественная стратегия VWAP intraday является комплексной торговой системой, объединяющей несколько инструментов технического анализа. Она идентифицирует потенциальные торговые возможности с помощью связи между EMA 20 и VWAP, рассчитанной на типичной цене, и использует механизм управления динамическими рисками на основе ATR и размера корпуса для управления рисками и оптимизации доходов.
Основными преимуществами стратегии является ее способность адаптироваться к волатильности рынка и надежность сигналов, предоставляемых в сочетании с различными техническими показателями. Однако, она также подвержена рискам, таким как задержка средней линии и чрезмерная торговля, которые необходимо смягчить с помощью дополнительных фильтрующих условий и оптимизации параметров.
Для дневных трейдеров эта стратегия предоставляет систематизированную торговую структуру, особенно подходящую для трейдеров, которые стремятся захватить краткосрочные рыночные возможности, сохраняя разумный контроль над риском. Благодаря постоянной обратной связи, оптимизации и практике, трейдер может усовершенствовать эту стратегию, чтобы сделать ее индивидуальной и стабильной торговой системой в соответствии со своей способностью к риску и торговыми целями.
/*backtest
start: 2024-07-25 00:00:00
end: 2025-07-23 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("EMA 20 and Anchored VWAP with Typical Price", overlay=true)
// === INPUTS ===
emaLength = input.int(20, title="EMA Length")
atrMultiplier = input.float(2.0, title="Stop Loss Multiplier (x ATR)", minval=1)
riskRewardRatio = input.float(3.0, title="Risk/Reward Ratio", minval=1, step=0.1) // 1:3 Risk/Reward Ratio
// === CALCULATIONS ===
// EMA 20
ema20 = ta.ema(close, emaLength)
// === TYPICAL PRICE ===
typicalPrice = (high + low + close) / 3
// === VWAP CALCULATION (ANCHOR PERIOD = SESSION) ===
// Reset at the start of each session (new day)
var float cumPriceVol = na
var float cumVol = na
if (dayofweek != dayofweek[1]) // Reset at the start of each day
cumPriceVol := typicalPrice * volume
cumVol := volume
else
cumPriceVol := cumPriceVol + (typicalPrice * volume)
cumVol := cumVol + volume
vwap = cumPriceVol / cumVol // VWAP = cumulative price-volume / cumulative volume
// ATR Calculation
atr = ta.atr(14)
// === BUY CONDITIONS ===
// EMA 20 above VWAP and close crosses EMA 20 from below, OR EMA 20 crosses VWAP from below
buyCondition = (ema20 > vwap and ta.crossover(close, ema20)) or ta.crossover(ema20, vwap)
// === SELL CONDITIONS ===
// EMA 20 below VWAP and close crosses EMA 20 from above, OR EMA 20 crosses VWAP from above
sellCondition = (ema20 < vwap and ta.crossunder(close, ema20)) or ta.crossunder(ema20, vwap)
// === STOP LOSS and TARGET ===
// Buy Stop Loss and Target calculation (Weapon Candle is the signal candle)
buyStopLoss = close - atr * atrMultiplier
// Weapon Candle (signal candle) for Buy
weaponCandleSize = high - low
buyTarget = high + 2 * weaponCandleSize // Target = High of weapon candle + 2 * candle size
// Sell Stop Loss and Target calculation (Weapon Candle is the signal candle)
sellStopLoss = close + atr * atrMultiplier
// Weapon Candle (signal candle) for Sell
weaponCandleSizeSell = high - low
sellTarget = low - 2 * weaponCandleSizeSell // Target = Low of weapon candle - 2 * candle size
// === EXECUTE STRATEGY (Buy and Sell) ===
// Buy order entry
if (buyCondition)
strategy.entry("Buy", strategy.long, stop=buyStopLoss, limit=buyTarget)
// Sell order entry
if (sellCondition)
strategy.entry("Sell", strategy.short, stop=sellStopLoss, limit=sellTarget)
// === PLOTS ===
// Plot EMA 20
plot(ema20, color=color.blue, title="EMA 20", linewidth=2)
// Plot VWAP
plot(vwap, color=color.orange, title="Session Anchored VWAP", linewidth=2)
// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")
// === BACKGROUND COLORS ===
bgcolor(buyCondition ? color.new(color.green, 90) : na, title="Buy Background")
bgcolor(sellCondition ? color.new(color.red, 90) : na, title="Sell Background")