В процессе загрузки ресурсов... загрузка...

Торговая стратегия VWAP

Автор:Чао Чжан, Дата: 2024-04-29 14:20:39
Тэги:ЕМАVWAP

img

Обзор

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

Принцип стратегии

  1. Расчет показателей EMA и VWAP.
  2. Определить, находится ли он в течение указанного времени торговли.
  3. Условие длинного входа: цена закрытия больше, чем VWAP и EMA, объем больше, чем предыдущая свеча, и цена закрытия больше, чем цена открытия.
  4. Условие короткого входа: цена закрытия ниже, чем VWAP и EMA, объем больше, чем предыдущая свеча, а цена открытия больше, чем цена закрытия.
  5. Условие длинного выхода: цена закрытия падает ниже VWAP или EMA, достигает уровней стоп-лосса или уровень получения прибыли или достигает указанного времени выхода.
  6. Условие короткого выхода: цена закрытия превышает VWAP или EMA, достигает уровней стоп-лосса или уровень получения прибыли или достигает указанного времени выхода.

Преимущества стратегии

  1. Он рассматривает тенденцию цен (EMA), справедливую стоимость рынка (VWAP) и объем торгов одновременно, что делает условия открытия более строгими, что помогает улучшить показатель выигрыша стратегии.
  2. Он устанавливает стоп-лосс и прибыль, чтобы контролировать риск и блокировать прибыль.
  3. Он ограничивает время торговли и время выхода, чтобы избежать рисков в неторговые часы и ночное хранение.

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

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

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

  1. Рассмотреть возможность добавления дополнительных условий фильтрации, таких как индикаторы ATR и RSI, для дальнейшего подтверждения силы тренда и импульса.
  2. Уровни стоп-лосса и стоп-прибыли могут устанавливаться динамически, например, в соответствии с ATR или процентным стоп-лосом, чтобы адаптироваться к различным волатильностям рынка.
  3. Оптимизировать параметры, такие как длина EMA, источник VWAP, уровень стоп-лосса и уровень прибыли, и т.д., чтобы повысить стабильность и рентабельность стратегии.
  4. Для контроля общего риска следует рассмотреть возможность добавления управления позициями, например, корректировки объема открытия в зависимости от волатильности или коэффициента капитала.

Резюме

С учетом тенденций цен, справедливой стоимости рынка и объема торгов, эта стратегия торгуется в течение определенного времени торговли. Хотя установлены стоп-лосс, прибыль и ограниченное время торговли, она все равно должна обращать внимание на такие риски, как волатильность рынков и скольжение в фактическом применении. В будущем устойчивость и рентабельность стратегии могут быть улучшены путем добавления большего количества условий фильтрации, оптимизации параметров и управления позициями.


/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true)

// Inputs
emaLength = input.int(21, title="EMA Length")
vwapSource = input.source(defval=hlc3, title='VWAP Source')
stopLossPoints = input.float(100, title="Stop Loss (points)")
targetPoints = input.float(200, title="Target (points)")
session = input("0950-1430", title='Only take entry during')
exit = input(defval='1515-1525', title='Exit Trade')

tradein = not na(time(timeframe.period, session))
exit_time = not na(time(timeframe.period, exit))

// Calculate indicators
ema = ta.ema(close, emaLength)
vwapValue = ta.vwap(vwapSource)

// Entry Conditions
longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein
shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein

// Exit Conditions
longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time
shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time

// Plotting
plot(vwapValue, color=color.blue, title="VWAP")
plot(ema, color=color.green, title="EMA")

// Strategy
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if longExitCondition
    strategy.close('Long', immediately=true)

if shortExitCondition
    strategy.close("Short", immediately=true)


Связанные

Больше