Стратегия расширенного тренда объема цен (EPVT) - это стратегия сочетания технических индикаторов. Она сочетает в себе индикатор ускорения импульса с другими вспомогательными индикаторами для определения потенциальных точек переворота тренда и сдвигов импульса.
Основным показателем этой стратегии является расширенная тенденция объема цен (EPVT). Метод ее расчета: совокупный объем торгов * процентное изменение цены. Затем вычисляются максимальные и минимальные значения EPVT за определенный период, чтобы получить диапазон эталонного значения. Кривая индикатора EPVT - это кривая разницы между EPVT и этим диапазоном эталонного значения.
Когда кривая индикатора EPVT пересекает нулевую ось, это указывает на увеличение покупательного давления и появляется длинный сигнал.
Для улучшения качества сигналов стратегия также использует простую скользящую среднюю для подтверждения надежности изменений тренда.
Эта стратегия сочетает в себе индикаторы из трех измерений: тенденции, импульса и объема торговли, которые могут более всесторонне оценить настроение и интенсивность рынка.
Установка трех уровней получения прибыли для выхода позволяет выбрать различные коэффициенты прибыли в соответствии с вашим собственным риском.
Эта стратегия в значительной степени опирается на морфологию кривых индикаторов и будет выдавать ложные сигналы, когда тенденция атипична.
Параметры могут быть корректированы соответствующим образом или могут быть добавлены другие индикаторы фильтрации для оптимизации.
Оптимизация параметров, например, настройка параметра цикла EPVT для поиска оптимальной комбинации параметров.
Добавьте условия фильтрации тренда, например, определение направления ценового канала или скользящей средней на основе сигнала EPVT.
Оптимизируйте стратегии стоп-лосса, такие как установка стопов фиксированной стоимости или ATR.
Стратегия динамического ускорения расширенного тренда объема цен отслеживает изменения настроения на рынке с помощью индикатора EPVT, используя потенциальные поворотные моменты тренда. Установка трех уровней получения прибыли различных коэффициентов позволяет удовлетворить различные аппетиты инвесторов к риску. Эта стратегия стоит дальнейшего тестирования и оптимизации, чтобы стать эффективным инструментом для выявления краткосрочных изменений тренда на рынке.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Extended Price Volume Trend", overlay=true )//@version=5 var cumVol = 0. cumVol += nz(volume) if barstate.islast and cumVol == 0 runtime.error("No volume is provided by the data vendor.") src = close lenght = input(200,"Trend Lenght") vt = ta.cum(ta.change(src)/src[1]*volume) upx = ta.highest(vt,lenght) downx = ta.lowest(vt,lenght) basex = (upx +downx)/2 VTX = vt - basex VTY = ta.valuewhen(ta.cross(VTX,0),close,0) plot(VTY, color=color.black, title="Extended-PVT") /////////////////////// STRATEGY //////////////// /////////////////////// TAKE PROFIT SECTION //////////////// longConditionx = ta.crossover(close,VTY) ShortConditionx = ta.crossunder(close,VTY) tp1 = input.int(10, minval=1,title = "TP-1") tp2 = input.int(20, minval=1,title = "TP-2") tp3 = input.int(30, minval=1,title = "TP-3") ematp = ta.ema(close,2) TPTAKA1S = VTY*(1-tp1/100) plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1) TPTAKA2S = VTY*(1-tp2/100) plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1) TPTAKA3S = VTY*(1-tp3/100) plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1) TPTAKA1B = VTY*(1+tp1/100) plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1) TPTAKA2B = VTY*(1+tp2/100) plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1) TPTAKA3B = VTY*(1+tp3/100) plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1) BUYTP = ta.crossunder(close,VTY) or ta.crossunder(ematp,TPTAKA1B) or ta.crossunder(ematp,TPTAKA2B) or ta.crossunder(ematp,TPTAKA3B) SELLTP = ta.crossover(close,VTY) or ta.crossover(ematp,TPTAKA1S) or ta.crossover(ematp,TPTAKA2S) or ta.crossover(ematp,TPTAKA3S) /////////////////////// STRATEGY //////////////// // Check for Long Entry longCondition = longConditionx==true if longCondition strategy.entry('Long', strategy.long, comment = "ENTER-LONG") buyclose = ShortConditionx==true or BUYTP==true // Exit condition strategy.close('Long', when=buyclose or BUYTP==true, comment = "EXIT-LONG") // Check for Short Entry ShortCondition = ShortConditionx==true if ShortCondition strategy.entry('Short', strategy.short, comment = "ENTER-SHORT") sellclose = longConditionx==true or SELLTP ==true // Exit condition strategy.close('Short', when=sellclose or SELLTP==true, comment = "EXIT-SHORT") ///// END OF STRATEGY ///////////