Prime Wave Backtesting-Strategie


Erstellungsdatum: 2024-01-08 11:54:52 zuletzt geändert: 2024-01-08 11:54:52
Kopie: 0 Klicks: 846
1
konzentrieren Sie sich auf
1617
Anhänger

Prime Wave Backtesting-Strategie

Überblick

Die Massengewellenband-Rückhalte-Strategie beurteilt Markttrends, indem sie die höchsten und niedrigsten Massen in der Nähe des Preises erkennt und diese beiden Massenreihen als ein Band darstellt. Die Strategie wurde von der Firma Modular Financial Engineering entwickelt.

Strategieprinzip

  1. Finden Sie die höchsten und niedrigsten Primzahlen, indem Sie die Positiv-Negativ-Schwankungen eines angegebenen Preises anhand der prozentualen Kapazitätsdifferenz der Eingabe durchsuchen.
  2. Mit den Funktionen “highest” und “lowest” erhält man die höchsten und niedrigsten Punkte des positiven Bereichs in der nächsten N-Roten-K-Linie.
  3. Beurteilen Sie, ob der Schlusskurs die Höchst- und Tiefpunkte der Quantitativwellenbänder durchbrochen hat, und entscheiden Sie, ob Sie mehr oder weniger machen.
  4. Optionale Umkehrung des Handelssignals.

Analyse der Stärken

  1. Die Zufälligkeit und die unregelmäßige Verteilung der Primzahlen werden genutzt, um die Zufälligkeit im Markt zu erfassen.
  2. Die Massenbandbreite hat eine gewisse Verzögerung und kann einen Teil des Geräusches filtern.
  3. Die Quantitative Wave hat eine untere Flexibilität, die sich an unterschiedliche Perioden und Handelsarten anpassen kann, indem sie die Differenzprozentsätze anpasst.

Risikoanalyse

  1. Die Massenbandbreite passt nicht vollständig zu den Preisbewegungen und es gibt ein gewisses Rückstand.
  2. Eine unumgängliche Preisumkehr könnte zu falschen Signalen führen.
  3. Der Prozentsatz der Kapazität, der für die Konferenz eingesetzt wurde, filtert einige der gültigen Signale aus.

Risiken können durch geeignete Anpassungen der Parameter und in Kombination mit anderen Indikatoren vermieden werden.

Optimierungsrichtung

  1. Es kann eine Kombination von Indikatoren wie beispielsweise einem Moving Average verwendet werden, um eine Doppelbedingung auszulösen.
  2. Die Verwendung von anderen Zufallszahlen wie Fibonacci-Zahlen kann untersucht werden.
  3. Die automatische Optimierung der Parameter kann durch Einsatz von Machine Learning-Algorithmen ermöglicht werden.

Zusammenfassen

Die Qualitätswahlbandrückmessung ist eine sehr innovative und nützliche Strategie. Sie nutzt die Eigenschaften der Qualitätszahl, um die Marktzufälligkeit zu erfassen, und berücksichtigt auch die Trends der Preisrückstandskennung. Die nächsten Schritte können optimiert werden, um die Signalqualität zu verbessern, die Zufallszahl zu erweitern und die Strategie automatisch zu optimieren.

Strategiequellcode
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/03/2018
// Determining market trends has become a science even though a high number 
// or people still believe it’s a gambling game. Mathematicians, technicians, 
// brokers and investors have worked together in developing quite several 
// indicators to help them better understand and forecast market movements.
// The Prime Number Bands indicator was developed by Modulus Financial Engineering 
// Inc. This indicator is charted by indentifying the highest and lowest prime number 
// in the neighborhood and plotting the two series as a band.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
PrimeNumberUpBand(price, percent) =>
    res = 0
    res1 = 0
    for j = price to price + (price * percent / 100)
        res1 := j
	    for i = 2 to sqrt(price)
        	res1 := iff(j % i == 0 , 0, j)
            if res1 == 0 
                break
		if res1 > 0 
		    break
    res := iff(res1 == 0, res[1], res1)
    res

PrimeNumberDnBand(price, percent) =>
    res = 0
    res2 = 0
    for j = price to price - (price * percent / 100)
        res2 := j
	    for i = 2 to sqrt(price)
        	res2 := iff(j % i == 0 , 0, j)
            if res2 == 0 
                break
		if res2 > 0 
		    break
    res := iff(res2 == 0, res[1], res2)
    res

strategy(title="Prime Number Bands Backtest", overlay = true)
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
Length = input(5, minval=1)
srcUp = input(title="Source Up Band",  defval=high)
srcDn = input(title="Source Down Band",  defval=low)
reverse = input(false, title="Trade reverse")
xPNUB = PrimeNumberUpBand(srcUp, percent)
xPNDB = PrimeNumberDnBand(srcDn, percent)
xHighestPNUB = highest(xPNUB, Length)
xLowestPNUB = lowest(xPNDB, Length)
pos = iff(close > xHighestPNUB[1], 1,
       iff(close < xLowestPNUB[1], -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(xHighestPNUB, color=red, title="PNUp")
plot(xLowestPNUB, color=green, title="PNDn")