Strategie für den Rücktest von Primzahlenbändern

Schriftsteller:ChaoZhang, Datum: 2024-01-08 11:54:52
Tags:

img

Übersicht

Die Prime Number Bands Backtest-Strategie beurteilt Markttrends, indem sie die höchsten und niedrigsten Primzahlen um einen Preis herum identifiziert und diese beiden Primzahlenreihen als Band darstellt.

Strategie Logik

  1. Überqueren Sie einen bestimmten Preisschwankungsbereich, basierend auf dem Prozentsatz der Eingabetoleranz, um die höchsten und niedrigsten Primzahlen zu finden.
  2. Verwenden Sie die höchsten und niedrigsten Funktionen, um die höchsten und niedrigsten Punkte der Primzahlbänder in den jüngsten N-Bars zu erhalten.
  3. Die langen oder kurzen Richtungen werden anhand der Frage ermittelt, ob der Schlusskurs durch die höchsten und tiefsten Punkte der Primzahlbänder durchbricht.
  4. Sie können sich dafür entscheiden, die Handelssignale umzukehren.

Analyse der Vorteile

  1. Erfassen Sie die Zufälligkeit des Marktes unter Verwendung der Zufalls- und unregelmäßigen Verteilungsmerkmale von Primzahlen.
  2. Die Primzahlenbänder haben eine gewisse Verzögerung, die Geräusche ausfiltern kann.
  3. Die oberen und unteren Grenzen der Primzahlenbereiche sind flexibel und können durch den Toleranzprozentsatz an unterschiedliche Zyklen und Handelsvarianten angepasst werden.

Risikoanalyse

  1. Primzahlenbänder können nicht vollständig in die Preisbewegung passen und haben eine gewisse Verzögerung.
  2. Preisumkehrungen aufgrund von Extremen könnten zu falschen Signalen führen.
  3. Übermäßige Toleranzprozentsätze filtern einige gültige Signale aus.

Die Risiken können durch eine angemessene Anpassung der Parameter, die Kombination mit anderen Indikatoren usw. vermieden werden.

Optimierungsrichtlinien

  1. Bei der Auslösung von Signalen zwei Bedingungen festlegen, indem einfache gleitende Durchschnitte und andere Indikatoren kombiniert werden.
  2. Untersuchen Sie die Verwendung anderer zufälliger Zahlen wie Fibonacci-Zahlen.
  3. Einführung von Algorithmen für maschinelles Lernen zur automatischen Optimierung von Parametern.

Zusammenfassung

Die Primzahlenbanden-Backteststrategie insgesamt ist eine sehr innovative Strategie mit praktischem Wert. Sie nutzt die Eigenschaften von Primzahlen, um die Marktzufälligkeit zu erfassen und gleichzeitig die Preisverzögerung bei der Identifizierung von Trends zu berücksichtigen, was sich für die Forschung sehr lohnt.


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

Mehr