Стратегия покупки и продажи VWAP и SuperTrend

VWAP ATR
Дата создания: 2024-06-03 10:45:14 Последнее изменение: 2024-06-03 10:45:14
Копировать: 0 Количество просмотров: 1114
1
Подписаться
1617
Подписчики

Стратегия покупки и продажи VWAP и SuperTrend

Обзор

Эта стратегия сочетает в себе VWAP и супертенденционный индикатор. Для определения сигнала купли-продажи используется сравнение относительной позиции цены и VWAP и направления супертенденционного индикатора. При пересечении VWAP с положительной стороной вверх по цене создается сигнал купли-продажи; при пересечении VWAP с отрицательной стороной вниз по цене создается сигнал продажи.

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

  1. Вычислите показатель VWAP, используя функцию ta.vwap, для которой можно настроить длину VWAP.
  2. Вычислить индикатор супертенденции, используя функцию ta.supertrend, с возможностью настройки ATR-периодов и кратности.
  3. Оценка условий покупки: VWAP на текущей цене и положительное направление супертенденции.
  4. Оценка условий продажи: VWAP в текущей цене и отрицательное направление супертенденции.
  5. Запись состояния предыдущего сигнала, чтобы избежать последовательного появления сигнала. Новый торговый сигнал будет генерироваться только в том случае, если текущий сигнал отличается от предыдущего сигнала.

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

  1. В сочетании с VWAP и Supertrends, можно более полно оценить тенденции рынка и потенциальные переломные моменты.
  2. Индекс VWAP учитывает объемы сделок, что позволяет лучше отражать реальные тенденции рынка.
  3. Супертенденционный индикатор имеет свойства отслеживания тенденций и фильтрации колебаний, что помогает уловить основные тенденции.
  4. Механизм, позволяющий избежать дублирования сигналов, позволяет снизить частоту транзакций и снизить их стоимость.

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

  1. При значительной волатильности рынка или неопределенности трендов эта стратегия может создавать больше ложных сигналов.
  2. Выполнение стратегии зависит от выбора параметров VWAP и супертенденции, различные параметры могут привести к различным результатам.
  3. Эта стратегия не учитывает риск-менеджмент и контроль позиций, а в практическом применении требует сочетания с другими мерами для контроля риска.

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

  1. Присоединение механизмов подтверждения тенденции, например, использование средней линии или других индикаторов тенденции для дальнейшей фильтрации сигналов.
  2. Оптимизация параметров для поиска оптимальных комбинаций длины VWAP, циклов ATR и множителей, с помощью отсчета исторических данных.
  3. Внедрение мер по управлению рисками, таких как установка стоп-лосс и стоп-стоп, для контроля риска в отдельных сделках.
  4. Подумайте о том, чтобы использовать стратегии управления капиталом, такие как фиксированная пропорция или формула Келли, для оптимизации размеров позиций.

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

VWAP и супер трендовые стратегии покупок и продаж стремятся полностью захватить рыночные тенденции и потенциальные переломные моменты, используя комбинацию двух различных типов показателей. Логика стратегии ясна, ее легко реализовать и оптимизировать. Однако ее эффективность зависит от выбора параметров и отсутствует риск-менеджмент. В практическом применении требуется дальнейшая оптимизация и усовершенствование для адаптации к различным рыночным условиям и потребностям торговли.

Исходный код стратегии
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="VWAP and Super Trend Buy/Sell Strategy", shorttitle="VWAPST", overlay=true)


//===== VWAP =====
showVWAP = input.bool(title="Show VWAP", defval=true, group="VWAP")
VWAPSource = input.source(title="VWAP Source", defval=hl2, group="VWAP")
VWAPrice = ta.vwap(VWAPSource)
plot(showVWAP ? VWAPrice : na, color=color.teal, title="VWAP", linewidth=2)


//===== Super Trend =====
showST = input.bool(true, "Show SuperTrend Indicator", group="Super Trend")
Period = input.int(title="ATR Period", defval=10, group="Super Trend")
Multiplier = input.float(title="ATR Multiplier", defval=2.0, group="Super Trend")


// Super Trend ATR
Up = hl2 - (Multiplier * ta.atr(Period))
Dn = hl2 + (Multiplier * ta.atr(Period))
var float TUp = na
var float TDown = na
TUp := na(TUp[1]) ? Up : close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := na(TDown[1]) ? Dn : close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
var int Trend = na
Trend := na(Trend[1]) ? 1 : close > TDown[1] ? 1 : close < TUp[1] ? -1 : Trend[1]


Tsl = Trend == 1 ? TUp : TDown
linecolor = Trend == 1 ? color.green : color.red
plot(showST ? Tsl : na, color=linecolor, style=plot.style_line, linewidth=2, title="SuperTrend")


// Buy/Sell Conditions
var bool previousBuysignal = false
var bool previousSellsignal = false


buysignal = not previousBuysignal and Trend == 1 and close > VWAPrice
sellsignal = not previousSellsignal and Trend == -1 and close < VWAPrice


// Ensure the signals are not repetitive
if (buysignal)
    previousBuysignal := true
    previousSellsignal := false
else if (sellsignal)
    previousBuysignal := false
    previousSellsignal := true


// Execute buy and sell orders
if (buysignal)
    strategy.entry("Buy", strategy.long)
if (sellsignal)
    strategy.entry("Sell", strategy.short)


// Plot Buy/Sell Labels
//plotshape(buysignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.normal)
//plotshape(sellsignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.normal)