uma estratégia comercial baseada na Teoria da Onda de Elliott - página 34

 
Eu derivei um sistema de equações para encontrar os coeficientes de uma parábola usando o método dos mínimos quadrados. Quem se lembra do governante? Ou tenho de ser eu mesmo a entrar nos determinantes... <br / translate="no">

Aqui está um algoritmo para resolver um sistema de equações lineares e implementação sob a forma de regressão polinomial.
Se m=1, é uma linha,
com m=2 é uma parábola,
se m=3, há um cubo, e assim por diante.
//--------------------------------
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 LightSkyBlue
//-----------------------------------
extern double hours = 24;
extern int m = 2;
extern int i0 = 0;
//-----------------------
double fx[];
double a[10,10],b[10],x[10],sx[20];
double sum; 
int p;
int nn;
//*******************************************
int init() 
{
   IndicatorShortName("at_PR (Din)");
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,fx);
   p=hours*60/Period(); 
   nn=m+1; 
   return(0);
}
//**********************************************************
int start()
{ 
  int i,n,k;
  sx[1]=p+1;
  SetIndexDrawBegin(0,Bars-p+i0);
  //----------------------sx---------------------
  for(i=1; i<=nn*2-2; i++) 
  {
    sum=0.0; 
    for(n=i0; n<=i0+p; n++) {sum+=MathPow(n,i);} 
    sx[i+1]=sum;
  }  
  //----------------------syx--------------------
  for(i=1; i<=nn; i++) 
  {
    sum=0.0; 
    for(n=i0; n<=i0+p; n++) 
    {
      if (i==1) sum+=Close[n]; 
      else 
      sum+=Close[n]*MathPow(n,i-1);
    } 
    b[i]=sum;
  } 
  //===============Matrix========================
  for(int j=1; j<=nn; j++) 
  {
    for(i=1; i<=nn; i++) 
    {
      k=i+j-1; 
      a[i,j]=sx[k];
    }
  }  
  //===============Gauss=========================
  af_Gauss(nn,a,b,x);
  //=============================================
  for (i=i0; i<=i0+p; i++) 
  {
    sum=0; 
    for(k=1; k<=m; k++) sum+=x[k+1]*MathPow(i,k); 
    fx[i]=x[1]+sum;
  } 
  //-------------------------------------------------------------
  return(0);
}
//*************************************************************** 
void af_Gauss(int n, double& a[][],double& b[], double& x[])
{
  int i,j,k,l;
  double q,m,t;

  for(k=1; k<=n-1; k++) 
  {
    l=0; 
    m=0; 
    for(i=k; i<=n; i++) 
    {
      if (MathAbs(a[i,k])>m) {m=MathAbs(a[i,k]); l=i;}
    } 
    if (l==0) return(0);   

    if (l!=k) 
    {
      for(j=1; j<=n; j++) 
      {
        t=a[k,j]; 
        a[k,j]=a[l,j]; 
        a[l,j]=t;
      } 
      t=b[k]; 
      b[k]=b[l]; 
      b[l]=t;
    }  

    for(i=k+1;i<=n;i++) 
    {
      q=a[i,k]/a[k,k]; 
      for(j=1;j<=n;j++) 
      {
        if (j==k) a[i,j]=0; 
        else 
        a[i,j]=a[i,j]-q*a[k,j];
      } 
      b[i]=b[i]-q*b[k];
    }
  }  
  
  x[n]=b[n]/a[n,n]; 
  
  for(i=n-1;i>=1;i--) 
  {
    t=0; 
    for(j=1;j<=n-i;j++) 
    {
      t=t+a[i,i+j]*x[i+j]; 
      x[i]=(1/a[i,i])*(b[i]-t);
    }
  }
  return;
}
//********************************************************************** 


Com base nisso, você pode construir tanto RMS quanto níveis de probabilidade e otimizar o comprimento e a extrapolação.
Embora com uma extrapolação confiável ainda não esteja tudo claro para mim, alguém pode me iluminar?
Se alguém prestasse atenção a isso? Ou talvez eu fale de tudo isso para nada?

 
Eu derivei um sistema de equações para encontrar os coeficientes de uma parábola usando o método dos mínimos quadrados. Quem se lembra do governante? Ou tenho de ser eu mesmo a entrar nos determinantes...

Rosh, por que tudo é tão complicado? Como você vai encontrar coeficientes se não sabe de antemão que esta amostra em particular contém o que você precisa? Na verdade, você pode tornar tudo mais simples! Vladislav disse logo no início que os erros de aproximação mostram a ordem de aproximação. E eu já escrevi sobre isso. Posso repeti-lo mais uma vez. Se tivermos uma equação da seguinte forma: y=ax^2+bx+c, então aproximando a amostra com o canal de regressão linear y1=b1X+c1 você obtém de fato o coeficiente b1 igual ao coeficiente b da equação inicial. Depois, subtraindo a equação de regressão linear da primeira equação, obtemos uma equação da forma y=ax^2+c2. Ou seja, você pode dizer a partir desta equação que o topo da parábola será deslocado por c2 contra o eixo x. Também levar em conta o fato de que o vértice da parábola estará no meio da amostra. Se tomarmos o vértice da parábola em (0,c2), isto é, a origem da amostra no vértice da parábola, trataremos da equação (y-c2)=ax^2. Mas é claro que não conhecemos os parâmetros 2x a e c2 nesta equação. Mas sabemos como eles dependem um do outro c2=y-ax^2. Também conhecemos os pontos de intersecção da parábola com o eixo x. Portanto, temos três pontos no eixo x - o vértice e a intersecção com o eixo x, pelos quais precisamos encontrar a parábola desejada. Aqui não vejo outra maneira de resolver o problema do que encontrar por aproximação sucessiva tal e conseqüentemente tal parâmetro c2 , no qual o erro RMS de aproximação por uma parábola será mínimo. E então pelo conhecido c2 também podemos obter o parâmetro c da primeira equação, devido ao qual temos a equação completa da função quadrática. Acho que isto é o que leva a maior parte do tempo computacional de Vladislava, uma vez que tudo o resto pode tomar uma parte menos significativa em termos de tempo computacional.
 
Yuri, você está absolutamente aborrecido por nada. Eu realmente não entendi sua pergunta. Responderei como você perguntou: para o problema que você está resolvendo - essa é a avaliação certa a ser feita ali.

Boa sorte e boas tendências.
 
Vladislav, na foto que você apresentou, você pode ver que no MMLevls_VG indicador MMPeriod parâmetro é 240. É assim? Você está dizendo que tudo leva a um gráfico diário. Talvez algo que eu não entenda?
 
Вывел систему уравнений для нахождения коэ-тов параболы по методу наименьших квадратов. Кто помнит линейку? Или самому придется лезть в детерминанты...

Rosh, por que tudo é tão complicado? Como você vai procurar coeficientes se você não sabe antecipadamente que esta amostra em particular contém o que você precisa? Na verdade, você pode tornar tudo mais simples! Vladislav disse logo no início que os erros de aproximação mostram a ordem de aproximação. E eu já escrevi sobre isso. Posso repeti-lo mais uma vez. Se tivermos uma equação da seguinte forma: y=ax^2+bx+c, então aproximando a amostra com o canal de regressão linear y1=b1X+c1 você obtém de fato o coeficiente b1 igual ao coeficiente b da equação inicial. Depois, subtraindo a equação de regressão linear da primeira equação, obtemos uma equação da forma y=ax^2+c2. Ou seja, você pode dizer a partir desta equação que o topo da parábola será deslocado por c2 contra o eixo x. Também levar em conta o fato de que o vértice da parábola estará no meio da amostra. Se tomarmos o vértice da parábola em (0,c2), que é a origem da amostra no vértice da parábola, trataremos da equação (y-c2)=ax^2. Mas é claro que não conhecemos os parâmetros 2x a e c2 nesta equação. Mas sabemos como eles dependem um do outro c2=y-ax^2. Também conhecemos os pontos de intersecção da parábola com o eixo x. Portanto, temos três pontos no eixo x - o vértice e a intersecção com o eixo x, pelos quais precisamos encontrar a parábola desejada. Aqui não vejo outra maneira de resolver o problema do que encontrar por aproximação sucessiva tal e conseqüentemente tal parâmetro c2 , no qual o erro RMS de aproximação por uma parábola será mínimo. E então pelo conhecido c2 também podemos obter o parâmetro c da primeira equação, devido ao qual temos a equação completa da função quadrática. Acho que isto é o que leva a maior parte do tempo computacional de Vladislava, já que tudo o resto pode levar menos tempo computacional.


Eu não entendo - quais são os problemas. A equação da parábola é buscada a partir das mesmas considerações que o canal de regressão linear - via MNC. A solução para este sistema de equações é inequívoca, e não requer iterações, ela é resolvida de frente.
Zi=Deti/Det , onde Zi é o coeficiente da parábola, Det é o determinante da matriz, Deti é o determinante da matriz obtida pela substituição da coluna de termos livres (Ti) pela coluna i. Da mesma forma, podemos aplicar os mesmos critérios ao canal curvilíneo resultante (descrito sem ambiguidade no futuro) - o RMS de toda a amostra no canal da parábola não é maior que o RMS de 2/3 da amostra. Por enquanto vou ficar em silêncio sobre Hurst, porque não tenho uma resposta, mas estou prestes a chegar a ela :)

HZ Encontrei um livro de referência matemática de 1986, por isso sou muito esperto :)
(Kolmogorov ou Demidovich teria sido melhor).
 
Respondo como solicitado: para o tipo de declaração de problema que está sendo resolvido - essa é a avaliação correta ali.


Obrigado, eu entendo. No entanto, não concordo com isso, e mantenho minha opinião.
 
Encontrei um livro de referência matemática de 1986, então estou ficando muito mais esperto :)

É MUITO bom que exista uma solução simples que não requeira iterações. Eu também estou um pouco enferrujado em linal :o(. Também vou ter que dar uma olhada em alguns livros. Rosh, se você já trabalhou nisso definitivamente, acho que todos os interessados também estariam interessados em ler a solução completa que você já esboçou acima. E talvez você possa até fazer disso um artigo separado sobre a Alpari?
 
Comecei a tirar fotos do livro, e depois desisti - a qualidade não era boa. Encontrado através da Yandex http://www.exponenta.ru/educat/class/courses/la/theme3/theory.asp#4

E aqui está uma espécie de curso - http://www.exponenta.ru/educat/class/courses/student/la/examples.asp
 
Вывел систему уравнений для нахождения коэ-тов параболы по методу наименьших квадратов. Кто помнит линейку? Или самому придется лезть в детерминанты...

Aqui está o algoritmo para resolver um sistema de equações lineares e a implementação em forma de regressão polinomial.
Se m=1 - uma linha,
em m=2 é uma parábola,
Se m=3 - um cubo, etc.


Sim, isto é exatamente o que solandr queria. No entanto, havia uma pergunta - para escrever um código tão complicado tão rapidamente usando minhas fórmulas - você precisa ser um especialista. Mas eu olhei através do código e tenho meu próprio algoritmo, pelo menos a indexação dos termos da matriz espelha meu sistema de equações. Agora vejo que o ANG3110 comeu um cachorro em tais coisas (um galho em uma aranha que me lembro) :)
 
Agora vejo que o ANG3110 comeu o cachorro neste tipo de coisa (ramo em aranha que me lembro) :)

De fato, eu o apoio totalmente!!!
Muito bom e um indicador necessário!
ANG3110, você poderia explicar o código? É difícil de se safar logo de cara. Talvez você tenha seu próprio blog no fórum, onde tudo está escrito em detalhes sobre este indicador? Agradecemos antecipadamente pela informação.