
Эта стратегия - это количественная торговая стратегия, которая сочетает в себе среднюю цену, взвешенную по величине сделки (VWAP), и дисперсию сходства с подвижными средними величинами (MACD). Эта стратегия использует VWAP как важный уровень ценовой ориентации, используя MACD, чтобы зафиксировать изменения в рыночной динамике и, таким образом, более точно определить местоположение покупателей и продавцов в сделке.
Основная логика стратегии основана на следующих ключевых элементах:
Двузначная стратегия VWAP-MACD обеспечивает надежную техническую поддержку для принятия торговых решений путем комбинирования торгово-весового и динамического анализа. Разработка стратегии является разумной, логически четкой, имеет хорошую практичность и масштабируемость. Благодаря постоянной оптимизации и совершенствованию управления рисками стратегия может обеспечить стабильную прибыль в реальных сделках.
/*backtest
start: 2025-01-08 00:00:00
end: 2025-02-06 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("VWAP + MACD Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// VWAP Calculation
vwapValue = ta.vwap(close)
// MACD Settings
fastLength = input.int(12, title="MACD Fast Length")
slowLength = input.int(26, title="MACD Slow Length")
signalSmoothing = input.int(9, title="MACD Signal Smoothing")
// MACD Calculation
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
macdHistogram = macdLine - signalLine
// Plot VWAP
plot(vwapValue, color=color.orange, title="VWAP")
// Plot MACD
hline(0, "Zero Line", color=color.gray)
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(macdHistogram, color=(macdHistogram >= 0 ? color.green : color.red), style=plot.style_histogram, title="MACD Histogram")
// Long Condition: MACD crosses above Signal and price is above VWAP
longCondition = ta.crossover(macdLine, signalLine) and close > vwapValue
if (longCondition)
strategy.entry("Long", strategy.long)
// Short Condition: MACD crosses below Signal and price is below VWAP
shortCondition = ta.crossunder(macdLine, signalLine) and close < vwapValue
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Long: MACD crosses below Signal or price crosses below VWAP
exitLong = ta.crossunder(macdLine, signalLine) or close < vwapValue
if (exitLong)
strategy.close("Long")
// Exit Short: MACD crosses above Signal or price crosses above VWAP
exitShort = ta.crossover(macdLine, signalLine) or close > vwapValue
if (exitShort)
strategy.close("Short")