Модифицированная стратегия ценового объема на основе изменений ценового объема

Автор:Чао Чжан, Дата: 2023-12-01 14:56:17
Тэги:

img

Обзор

Эта стратегия называется Modified Price-Volume Trend Strategy Based on Price-Volume Changes. Эта стратегия рассчитывает совокупные изменения цены и объема, в сочетании с скользящими средними линиями для установления длинных и коротких позиций, с целью отслеживания тенденции.

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

Основным показателем этой стратегии является индикатор модифицированного тренда объема цен (MPVT). Этот индикатор отражает рыночный энтузиазм и приток и отток капитала через изменения цен и объема торговли. Конкретная формула расчета выглядит следующим образом:

rV = Volume / 50000
xCumPVT = Yesterday's xCumPVT + (rV * (Latest Close Price - Yesterday's Close Price) / Yesterday's Close Price) 

Затем в сочетании с параметрами "Уровень" и "Масштаб" создается индикатор изменения цены и объема жилья:

nRes = Level + Scale * xCumPVT

Индикатор Residence отражает комбинированные изменения цены и объема. Когда он пересекает его N-дневную простую скользящую среднюю, идти длинный. Когда он падает ниже его N-дневную простую скользящую среднюю, идти короткий.

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

Основными преимуществами этой стратегии являются:

  1. Оценивая рыночный энтузиазм и направление потока капитала с помощью показателей цены и объема, можно своевременно определить поворотные моменты тенденции.

  2. Гибкая корректировка параметров стратегии путем оптимизации параметров для адаптации к различным рыночным условиям.

  3. Стратегия короткого расписания может быть реализована путем установки параметра обратного ввода для расширения сценария применения стратегии.

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

В этой стратегии также есть некоторые риски:

  1. Показатели объема цен подвержены ложным сигналам, и могут быть случаи, когда прорывы не имеют значения.

  2. Он более подходит для трендовых рынков и может производить ложные сигналы на рынках с диапазоном.

  3. Эффект оптимизации параметров зависит от исторического цикла, что может привести к рискам чрезмерного приспособления.

Руководство по оптимизации

Для оптимизации этой стратегии можно рассмотреть следующие аспекты:

  1. Проверьте различные скользящие средние, такие как взвешенная скользящая средняя, EMA и т. д., чтобы увидеть, какая комбинация работает лучше.

  2. Комбинировать с другими индикаторами, такими как RSI, KD и т. д., чтобы отфильтровать сигналы и уменьшить вероятность ложных сигналов.

  3. Проверить различные комбинации параметров, чтобы найти оптимальную пару параметров.

  4. Улучшить стабильность стратегии, объединив ее с индикаторами тренда, такими как полосы Боллинджера.

Резюме

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


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-20 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/07/2018
//  The related article is copyrighted material from
//  Stocks & Commodities.
//  Strategy by HPotter.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Modified Price-Volume Trend Backtest", shorttitle="MPVT")
Level = input(0)
Scale = input(1)
Length = input(23)
reverse = input(false, title="Trade reverse")
xOHLC4 = ohlc4
xV = volume
rV = xV / 50000
xCumPVT = nz(xCumPVT[1]) + (rV * (xOHLC4 - xOHLC4[1]) / xOHLC4[1])
nRes = Level + Scale * xCumPVT
xMARes = sma(nRes, Length)
pos = iff(nRes > xMARes, 1,
       iff(nRes < xMARes, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=red, title="MPVT", linewidth = 2)
plot(xMARes, color=blue, title="MPVT", linewidth = 2)

Больше