Estratégia de Backtesting Prime Wave


Data de criação: 2024-01-08 11:54:52 última modificação: 2024-01-08 11:54:52
cópia: 0 Cliques: 846
1
focar em
1617
Seguidores

Estratégia de Backtesting Prime Wave

Visão geral

A estratégia de retorno de banda de ondas de massas determina a tendência do mercado identificando os máximos e mínimos massas próximos do preço e traçando essas duas séries de massas como uma banda. A estratégia foi desenvolvida pela empresa de engenharia financeira Modular.

Princípio da estratégia

  1. De acordo com a percentagem de diferença de capacidade da entrada, percorra uma faixa de flutuações positivas e negativas de um preço especificado, procurando o maior e o menor número de primos.
  2. Utilize as funções highest e lowest para obter os pontos mais altos e mais baixos da faixa de ondas de número de massas na linha K da raiz N mais próxima.
  3. Para avaliar se o preço de fechamento ultrapassou os pontos mais altos e mais baixos da faixa de ondas de qualidade, decida fazer mais ou fazer menos.
  4. Opção de inverter o sinal de negociação.

Análise de vantagens

  1. Utilizando a distribuição aleatória e irregular de números primos, capta a aleatoriedade no mercado.
  2. As faixas de ondas de massa possuem um certo atraso e podem filtrar parte do ruído.
  3. A ondulação quantitativa possui uma flexibilidade mínima, que pode ser adaptada a diferentes períodos e diferentes variedades de negociação, ajustando a porcentagem de diferença de volume.

Análise de Riscos

  1. As faixas de ondas de massa não se encaixam perfeitamente com a movimentação dos preços, existindo um certo atraso.
  2. A inversão do preço da matéria-prima pode levar a sinais errados.
  3. A porcentagem de capacidade foi configurada para filtrar os sinais válidos da convenção.

O risco pode ser evitado por meio de ajustes apropriados nos parâmetros e em combinação com outros indicadores.

Direção de otimização

  1. Pode-se combinar indicadores como a média móvel para definir um sinal de disparo de dupla condição.
  2. Pode-se estudar o uso de outros números aleatórios, como o número de Fibonacci.
  3. Algoritmos de aprendizagem de máquina podem ser introduzidos para a otimização automática dos parâmetros.

Resumir

A estratégia de retorno de banda de ondas de massa, em geral, é uma estratégia muito inovadora e de valor prático. Utiliza as características do número de massa para capturar a aleatoriedade do mercado, mas também leva em conta a tendência de identificação de atraso de preços. O valor de pesquisa é alto. O próximo passo pode ser otimizado em termos de melhoria da qualidade do sinal, expansão do tipo de número aleatório, otimização automática e outros aspectos, tornando a estratégia mais eficaz.

Código-fonte da estratégia
/*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")