Расширенная стратегия тенденции объема цен

Автор:Чао Чжан, Дата: 2024-01-18 16:32:28
Тэги:

img

Обзор

Стратегия расширенного тренда объема цен (EPVT) - это стратегия сочетания технических индикаторов. Она сочетает в себе индикатор ускорения импульса с другими вспомогательными индикаторами для определения потенциальных точек переворота тренда и сдвигов импульса.

Принцип стратегии

Основным показателем этой стратегии является расширенная тенденция объема цен (EPVT). Метод ее расчета: совокупный объем торгов * процентное изменение цены. Затем вычисляются максимальные и минимальные значения EPVT за определенный период, чтобы получить диапазон эталонного значения. Кривая индикатора EPVT - это кривая разницы между EPVT и этим диапазоном эталонного значения.

Когда кривая индикатора EPVT пересекает нулевую ось, это указывает на увеличение покупательного давления и появляется длинный сигнал.

Для улучшения качества сигналов стратегия также использует простую скользящую среднюю для подтверждения надежности изменений тренда.

Анализ преимуществ

Эта стратегия сочетает в себе индикаторы из трех измерений: тенденции, импульса и объема торговли, которые могут более всесторонне оценить настроение и интенсивность рынка.

Установка трех уровней получения прибыли для выхода позволяет выбрать различные коэффициенты прибыли в соответствии с вашим собственным риском.

Анализ рисков

Эта стратегия в значительной степени опирается на морфологию кривых индикаторов и будет выдавать ложные сигналы, когда тенденция атипична.

Параметры могут быть корректированы соответствующим образом или могут быть добавлены другие индикаторы фильтрации для оптимизации.

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

  1. Оптимизация параметров, например, настройка параметра цикла EPVT для поиска оптимальной комбинации параметров.

  2. Добавьте условия фильтрации тренда, например, определение направления ценового канала или скользящей средней на основе сигнала EPVT.

  3. Оптимизируйте стратегии стоп-лосса, такие как установка стопов фиксированной стоимости или 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 ///////////


Больше