Bandas de números primos Estrategia de prueba posterior

El autor:¿ Qué pasa?, Fecha: 2024-01-08 11:54:52
Las etiquetas:

img

Resumen general

La estrategia de backtest de bandas de números primos juzga las tendencias del mercado identificando los números primos más altos y más bajos alrededor de un precio y trazando estas dos series de números primos como una banda.

Estrategia lógica

  1. Cruce un rango de fluctuación de precios especificado basado en el porcentaje de tolerancia de entrada para encontrar los números primos más altos y más bajos.
  2. Utilice las funciones más altas y más bajas para obtener los puntos más altos y más bajos de las bandas de números primos en las barras N más recientes.
  3. Determinar la dirección larga o corta en función de si el precio de cierre rompe los puntos más altos y más bajos de las bandas de números primos.
  4. Puede elegir revertir las señales comerciales.

Análisis de ventajas

  1. Captura la aleatoriedad del mercado utilizando las características de distribución aleatoria e irregular de los números primos.
  2. Las bandas de números primos tienen cierto retraso, lo que puede filtrar algo de ruido.
  3. Los límites superior e inferior de las bandas de números primos son flexibles y pueden ajustarse mediante el porcentaje de tolerancia para adaptarse a los diferentes ciclos y a las diferentes variedades de comercio.

Análisis de riesgos

  1. Las bandas de números primos no pueden adaptarse completamente al movimiento de precios y tienen un cierto grado de retraso.
  2. Las inversiones de precios debidas a los extremos podrían dar lugar a señales erróneas.
  3. El porcentaje de tolerancia excesiva filtra algunas señales válidas.

Los riesgos se pueden evitar ajustando adecuadamente los parámetros, combinándolos con otros indicadores, etc.

Direcciones de optimización

  1. Establecer condiciones duales para activar las señales combinando medias móviles simples y otros indicadores.
  2. Investigue el uso de otros números aleatorios como los números de Fibonacci.
  3. Introducir algoritmos de aprendizaje automático para lograr la optimización automática de parámetros.

Resumen de las actividades

La estrategia de backtest de bandas de números primos en general es una estrategia muy innovadora con valor práctico. Utiliza las características de los números primos para capturar la aleatoriedad del mercado mientras también considera el retraso de precios en la identificación de tendencias, muy valioso para la investigación.


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

Más.