Geänderte Preis-Volumen-Trendstrategie auf Basis von Preis-Volumen-Veränderungen

Schriftsteller:ChaoZhang, Datum: 2023-12-01 14:56:17
Tags:

img

Übersicht

Diese Strategie wird als Modified Price-Volume Trend Strategy Based on Price-Volume Changes bezeichnet. Diese Strategie berechnet die kumulativen Veränderungen von Preis und Volumen, kombiniert mit gleitenden Durchschnittslinien, um Long- und Short-Positionen zu ermitteln, um den Trend zu verfolgen.

Strategieprinzip

Der Kernindikator dieser Strategie ist der Modified Price Volume Trend (MPVT). Dieser Indikator spiegelt die Marktenthusiasmus und Kapitalzu- und Abflüsse durch die Veränderungen in Preis und Handelsvolumen wider. Die spezifische Berechnungsformel lautet wie folgt:

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

Anschließend wird in Kombination mit den Parametern Level und Scale der Indikator Preis-Volumen-Veränderung Residenz konstruiert:

nRes = Level + Scale * xCumPVT

Der Residenzindikator spiegelt die kombinierten Veränderungen von Preis und Volumen wider. Wenn er über seinen einfachen gleitenden N-Tage-Durchschnitt geht, gehen Sie lang. Wenn er unter seinen einfachen gleitenden N-Tage-Durchschnitt fällt, gehen Sie kurz.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Durch die Beurteilung des Marktenthusiasmus und der Kapitalflussrichtung anhand von Preis-Volumen-Indikatoren können die Wendepunkte des Trends rechtzeitig ermittelt werden.

  2. Flexible Anpassung der Strategieparameter durch Parameteroptimierung, um sich an verschiedene Marktumgebungen anzupassen.

  3. Die Shorting-Strategie kann realisiert werden, indem der umgekehrte Eingabeparameter festgelegt wird, um das Anwendungsszenario der Strategie zu erweitern.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Die Preis-Volumen-Indikatoren sind anfällig für falsche Signale, und es kann Fälle geben, in denen Durchbrüche nicht gelten.

  2. Es eignet sich besser für Trendmärkte und kann in Bandbreitenmärkten falsche Signale erzeugen.

  3. Die Wirkung der Optimierung der Parameter hängt vom historischen Zyklus ab, was zu Risiken der Überanpassung führen kann.

Optimierungsrichtlinien

Zur Optimierung dieser Strategie können folgende Aspekte berücksichtigt werden:

  1. Testen Sie verschiedene gleitende Durchschnitte, z. B. gewichteten gleitenden Durchschnitt, EMA usw., um zu sehen, welche Kombination besser funktioniert.

  2. Kombination mit anderen Indikatoren, wie RSI, KD usw., um Signale zu filtern und die Wahrscheinlichkeit falscher Signale zu verringern.

  3. Test verschiedene Parameterkombinationen, um das optimale Parameterpaar zu finden.

  4. Verbesserung der Stabilität der Strategie durch Kombination mit Trendindikatoren wie Bollinger Bands.

Zusammenfassung

Diese Strategie berechnet die kumulativen Veränderungen von Preis und Volumen, um einen Preis-Volumen-Veränderungs-Residenzindikator zu entwerfen, der Kapitalzuflüsse und -ausflüsse effektiv widerspiegeln kann.


/*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)

Mehr