Stratégie de négociation de l'oscillateur de nombres premiers

Auteur:ChaoZhang est là., Date: 2023-11-02 14:42:22 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie utilise l'indicateur de l'oscillateur de nombre premier pour déterminer les tendances du marché et construire des positions longues/courtes en conséquence.

La logique de la stratégie

La stratégie définit d'abord une fonction PrimeNumberOscillator qui prend le prix et Percent permis comme paramètres. La fonction recherche le nombre premier le plus proche du prix dans la plage Percent permis et renvoie leur différence. Une différence positive indique une tendance haussière et une différence négative indique une tendance baissière.

Dans la stratégie, la fonction PrimeNumberOscillator est appelée pour calculer la valeur xPNO. La direction de la position est déterminée par le signe de xPNO et multipliée par le facteur inverse pour obtenir la direction finale du commerce.

La stratégie repose principalement sur l'indicateur PNO pour la direction de la tendance. L'indicateur lui-même est assez brut et doit être combiné avec d'autres facteurs pour la vérification du signal.

Analyse des avantages

  • Basé sur des principes mathématiques, relativement objectifs
  • Peut identifier les tendances cachées dans les oscillations
  • Réglage flexible des paramètres pour régler la sensibilité
  • Simple à mettre en œuvre, facile à comprendre et à optimiser

Analyse des risques

  • Le PNO lui-même est brut, sujet à de multiples faux signaux
  • Besoin de vérification à partir d'autres indicateurs techniques, ne peut pas être utilisé seul
  • Une sélection minutieuse des paramètres est nécessaire, trop grand ou trop petit échouera
  • Fréquence de négociation élevée, contrôle des besoins de dimensionnement des positions

Directions d'optimisation

  • Ajouter des filtres comme la moyenne mobile, RSI pour la vérification du signal
  • Mettre en œuvre un stop loss pour limiter le risque à la baisse
  • Ajustement dynamique autorisé Pourcentage basé sur les conditions du marché
  • Optimiser la taille des positions grâce à la volatilité et à d'autres indicateurs

Conclusion

La stratégie détermine la direction de la tendance basée sur les principes d'oscillation des nombres premiers, avec une logique et une mise en œuvre simples. Mais PNO a des limites qui nécessitent une utilisation prudente. La combinaison d'autres indicateurs techniques pour vérifier les signaux et contrôler le risque est nécessaire.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/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.
//
// Developed by Modulus Financial Engineering Inc., the prime number oscillator indicates the 
// nearest prime number, be it at the top or the bottom of the series, and outlines the 
// difference between that prime number and the respective series.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
PrimeNumberOscillator(price, percent) =>
    res = 0
    res1 = 0
    res2 = 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
    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(res1 - price < price - res2,  res1 - price, res2 - price)
    res := iff(res == 0, res[1], res)
    res
    
strategy(title="Prime Number Oscillator Backtest")
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
reverse = input(false, title="Trade reverse")
xPNO = PrimeNumberOscillator(close, percent)
pos = iff(xPNO > 0, 1,
       iff(xPNO < 0, -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 ) 
clr = iff(xPNO > 0, green, red)
p1 = plot(xPNO, color=blue, title="KPO")
p2 = plot(0, color=black, title="0")
fill(p1,p2,color=clr)

Plus de