
Стратегия представляет собой систему следования за трендом, которая сочетает в себе многопериодную скользящую среднюю со средневзвешенной по объему ценой (VWAP). Стратегия определяет направление тренда посредством пересечения трех простых скользящих средних (SMA) с 9 периодами, 50 периодами и 200 периодами и объединяет VWAP в качестве индикатора подтверждения силы цены для реализации многомерного механизма подтверждения торгового сигнала. Данная стратегия подходит как для внутридневной торговли (1-минутный график), так и для краткосрочной торговли (1-часовой график).
Основная логика стратегии основана на следующих ключевых элементах:
Одновременно должны быть выполнены условия длинного входа:
Условия короткого входа должны быть выполнены одновременно:
Предложения по контролю рисков:
Это полноценная торговая система, которая объединяет многопериодные скользящие средние и VWAP, обеспечивая более надежные торговые сигналы благодаря механизму множественного подтверждения. Преимуществами стратегии являются четкая логика, простота реализации и хорошие возможности контроля рисков. Хотя существуют определенные риски гистерезиса и чувствительности параметров, стабильность и адаптивность стратегии можно дополнительно улучшить с помощью рекомендуемых направлений оптимизации. Данная стратегия подходит в качестве базовой структуры, и трейдеры могут персонализировать ее в соответствии со своим стилем торговли и рыночной средой.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-05 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA Crossover Strategy with VWAP", overlay=true)
// Input lengths for SMAs
sma9Length = 9
sma50Length = 50
sma200Length = 200
// Calculate SMAs
sma9 = ta.sma(close, sma9Length) // 9-period SMA
sma50 = ta.sma(close, sma50Length) // 50-period SMA
sma200 = ta.sma(close, sma200Length) // 200-period SMA
// Calculate VWAP
vwapValue = ta.vwap(close)
// Long entry condition: SMA 9 crosses above SMA 50 and SMA 200 is less than SMA 50, and close is above VWAP
longCondition = ta.crossover(sma9, sma50) and (sma200 < sma50) and (close > vwapValue)
if (longCondition)
strategy.entry("Long", strategy.long)
// Exit condition for long: SMA 9 crosses below SMA 50
longExitCondition = ta.crossunder(sma9, sma50)
if (longExitCondition)
strategy.close("Long")
// Short entry condition: SMA 9 crosses below SMA 50 and SMA 200 is greater than SMA 50, and close is below VWAP
shortCondition = ta.crossunder(sma9, sma50) and (sma200 > sma50) and (close < vwapValue)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit condition for short: SMA 9 crosses above SMA 50
shortExitCondition = ta.crossover(sma9, sma50)
if (shortExitCondition)
strategy.close("Short")
// Plotting the indicators on the chart
plot(sma9, color=color.blue, title="SMA 9")
plot(sma50, color=color.orange, title="SMA 50")
plot(sma200, color=color.red, title="SMA 200")
plot(vwapValue, color=color.green, title="VWAP")