
Стратегия VWAP - это стратегия, которая отслеживает среднюю цену акции в течение определенного времени. Эта стратегия использует VWAP в качестве ориентира, открывая позиции, когда цена выше или ниже VWAP. Она также устанавливает условия стоп-лосса и стоп-стоп для управления сделкой.
Эта стратегия сначала рассчитывает типичную цену (среднее значение наивысшей цены, наименьшей цены и цены закрытия) и сумму, умноженную на объем сделки, а также на сумму объема сделки. Затем вычислить значение VWAP, умноженное на сумму, разделенную на сумму объема сделки. Когда цена пересекает VWAP, делайте больше; когда цена пересекает, делайте пустое.
Стоп-условие для многопозиционных позиций - это стоп-условие, когда цена увеличивается на 3% по сравнению с начальной ценой; стоп-условие - это стоп-условие, когда цена снижается на 1% по сравнению с начальной ценой. Позиции по открытой позиции также являются аналогичными условиями.
Основными преимуществами стратегии VWAP являются:
Использование VWAP, признанного важным статистическим показателем, в качестве базового показателя для торговых сигналов, чтобы сделать стратегию более эффективной;
При использовании одновременно VWP сигналов и стоп-стопов можно получать прибыль в тренде, а также уменьшать потери.
Стратегическая логика проста и понятна, легко понятна и реализуема.
Однако эта стратегия также несет в себе некоторые риски:
ВВАП не может прогнозировать будущие цены, поэтому сигналы ВВАП могут задерживаться;
Слишком мягкие условия для остановки убытков могут привести к увеличению убытков;
Чем дольше время отслеживания, тем больше торговых сигналов, и эффект может быть разным.
Эти риски можно снизить, например, путем корректировки параметров, оптимизации алгоритмов остановки убытков.
Эта стратегия может быть оптимизирована в следующих направлениях:
Оптимизация параметров VWAP для поиска оптимального цикла вычислений;
могут быть протестированы другие алгоритмы отслеживания стоп-убытков, такие как движущиеся стоп-убытки, движущиеся стоп-убытки индекса;
В качестве фильтра можно использовать другие индикаторы, чтобы избежать ошибок в сигнале VWAP; например, индикатор мощности, индикатор ленты Брин и т. д.
В целом, средняя цена-обмен-количество стратегии стоимости использует прогнозирующую силу важного показателя VWP, устанавливает условия для остановки и уменьшения убытков, чтобы получить долгосрочную положительную прибыль. Однако, все еще требуется дальнейшая оптимизация и объединение других стратегий, чтобы уменьшить риск, вызванный рыночными колебаниями, и увеличить стратегическую прибыльность.
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("VWAP Strategy by Royce Mars", overlay=true)
cumulativePeriod = input(14, "Period")
var float cumulativeTypicalPriceVolume = 0.0
var float cumulativeVolume = 0.0
typicalPrice = (high + low + close) / 3
typicalPriceVolume = typicalPrice * volume
cumulativeTypicalPriceVolume := cumulativeTypicalPriceVolume + typicalPriceVolume
cumulativeVolume := cumulativeVolume + volume
vwapValue = cumulativeTypicalPriceVolume / cumulativeVolume
// Buy condition: Price crosses over VWAP
buyCondition = crossover(close, vwapValue)
// Short condition: Price crosses below VWAP
shortCondition = crossunder(close, vwapValue)
// Profit-taking condition for long positions: Sell long position when profit reaches 3%
profitTakingLongCondition = close / strategy.position_avg_price >= 1.03
// Profit-taking condition for short positions: Cover short position when profit reaches 3%
profitTakingShortCondition = close / strategy.position_avg_price <= 0.97
// Stop loss condition for long positions: Sell long position when loss reaches 1%
stopLossLongCondition = close / strategy.position_avg_price <= 0.99
// Stop loss condition for short positions: Cover short position when loss reaches 1%
stopLossShortCondition = close / strategy.position_avg_price >= 1.01
// Strategy Execution
strategy.entry("Buy", strategy.long, when=buyCondition)
strategy.close("Buy", when=shortCondition or profitTakingLongCondition or stopLossLongCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Short", when=buyCondition or profitTakingShortCondition or stopLossShortCondition)
// Plot VWAP on the chart
plot(vwapValue, color=color.blue, title="VWAP")