Adaptive Volatilität Endvolumen-Elemente-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-17
Tags:

img

Übersicht

Diese Strategie verwendet die Endvolumen-Element-Methode in Kombination mit adaptiven Volatilitätsmetriken, um lange und kurze Signale zu bestimmen, die zu den Trendfolgestrategien gehören.

Grundsätze

Die Strategie berechnet zunächst den Durchschnitt der hohen und niedrigen Preise, den Durchschnitt der Schlusskosten der letzten N-Barren und den durchschnittlichen hohen, niedrigen und schließenden Preisen des vorherigen Balkens. Dann berechnet sie die logarithmischen Renditen Intra und Inter für den aktuellen und vorherigen Balken. In der Zwischenzeit berechnet sie die Volatilitäten Vintra und Vinter von Intra und Inter.

Auf der Grundlage der Volatilitätsniveaus und anpassbaren Parameter wird der adaptive Cutoff-Koeffizient CutOff bestimmt. Wenn die Preisänderung den CutOff übersteigt, werden Long- oder Short-Signale generiert. Insbesondere berechnet er die Differenz MF zwischen dem aktuellen Schlusskurs und dem Durchschnitt der hohen und niedrigen Preise. Wenn MF größer als CutOff ist, ist es ein langes Signal. Wenn MF kleiner als negativer CutOff ist, ist es ein kurzes Signal.

Schließlich werden nach den Signalen die Fondsströme berechnet, aus denen das Positionssignal pos hervorgeht und die FVE-Kurve für Endvolumenelemente erstellt wird.

Vorteile

  1. Anpassungsfähige Parameter, die für verschiedene Zeitrahmen und Volatilitätsniveaus ohne manuelle Anpassung anwendbar sind.

  2. Genaue Erfassung von Trendänderungen der Preise.

  3. Die FVE-Kurve spiegelt klar den Vergleich von langen und kurzen Kräften wider.

  4. Solides theoretisches Fund-Flow-Analysen, relativ zuverlässige Signale.

Risiken

  1. Kann bei starken Marktschwankungen mehr falsche Signale erzeugen und N entsprechend anpassen.

  2. Sie können andere Indikatoren kombinieren.

  3. Die Flow-Signale können manchmal von der technischen Analyse abweichen. Sie können mehrere Signale kombinieren.

Optimierung

  1. Kann die Wirkung verschiedener N-Werte testen.

  2. Kann verschiedene Kombinationen von Cintra und Cinter testen, um optimale Parameter zu finden.

  3. Kann mit anderen Indikatoren wie MACD kombiniert werden, um die Robustheit zu verbessern.

  4. Kann Stop-Loss-Mechanismen einbauen, um Einzelhandelsverluste zu kontrollieren.

Schlussfolgerung

Insgesamt ist diese Strategie mit soliden Prinzipien ziemlich zuverlässig. Sie kann als Bestandteil von Trendfolgestrategien dienen und funktioniert noch besser, wenn sie richtig mit anderen kombiniert wird. Der Schlüssel besteht darin, optimale Parameter zu finden und ein solides Risikomanagement zu etablieren. Wenn sie weiter optimiert wird, kann sie zu einem sehr leistungsstarken Trendfolgensystem werden.


/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/08/2017
// This is another version of FVE indicator that we have posted earlier 
// in this forum.
// This version has an important enhancement to the previous one that`s 
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra 
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate 
// price changes in minute charts and underestimate corresponding changes in 
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to 
// all time frames automatically.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Volatility Finite Volume Elements", shorttitle="FVI")
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1, step=0.1)
Cinter = input(0.1, step=0.1)
reverse = input(false, title="Trade reverse")
xhl2 = hl2
xhlc3 = hlc3
xClose = close
xIntra = log(high) - log(low)
xInter = log(xhlc3) - log(xhlc3[1])
xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
xStDevInter = stdev(sma(xInter, Samples) , Samples)
xVolume = volume
TP = xhlc3
TP1 = xhlc3[1]
Intra = xIntra
Vintra = xStDevIntra
Inter = xInter
Vinter = xStDevInter
CutOff = Cintra * Vintra + Cinter * Vinter
MF = xClose - xhl2 + TP - TP1
FveFactor = iff(MF > CutOff * xClose, 1, 
             iff(MF < -1 * CutOff * xClose, -1,  0))
xVolumePlusMinus = xVolume * FveFactor
Fvesum = sum(xVolumePlusMinus, Samples)
VolSum = sum(xVolume, Samples)
xFVE = (Fvesum / VolSum) * 100
xEMAFVE = ema(xFVE, Perma)
pos = iff(xFVE > xEMAFVE, 1,
	   iff(xFVE < xEMAFVE, -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(xFVE, color=green, title="FVI")
plot(xEMAFVE, color=blue, title="FVI EMA")

Mehr