O indicador do sistema Sultonov - página 113

 
Олег avtomat:

O método dos mínimos quadrados tem uma oscilação muito alta. É por isso que não é grosseiro. E não é o ideal. Isto é bem conhecido.

Para resolver seu problema, Yusuf, os métodos mais adequados são os métodos gradientes.

Por favor, descreva brevemente os métodos de gradiente ou cite as fontes que revelam mais completamente a essência do método.

 
Yousufkhodja Sultonov:

Descreva os métodos de gradiente, por favor, brevemente ou cite fontes para a descrição mais completa do método.

Em resumo: Métodos gradientes.

Você pode ler mais sobre isso aqui.

Há também referências à literatura.

 

.

 

.

 

.

 

.

 
Yousufkhodja Sultonov:

Então, siga as recomendações e profecias da Semko, eu não estou impondo nenhum TC a você.

Yusuf, não há necessidade de inventar coisas. Eu não fiz nenhuma recomendação ou profetizei nada.

Tudo o que tentei fazer foi economizar seu tempo, para que você não o desperdiçasse em besteiras inúteis. E também, para que você não perca o tempo dos outros com esta porcaria.

Yousufkhodja Sultonov:

Foi explicado a você, é algo completamente diferente. É do tipo: "Estou procurando por isto, não sei o quê!"

Eu quase não tinha dúvidas de que você seria apanhado pela falta de uma pila solta. E você não percebeu que era você quem estava sendo ridicularizado por Fedoseyev ))))

Mas, é verdade, eu esperava que você fosse mais razoável do que parece e entendi que um SLAU com e sem um membro livre é essencialmente a mesma coisa - os mesmos ovos, mas em perfil. E um membro livre não acrescentará ordem a este caos.

Pense sobre isso.
Aqui está um exemplo de um SLAU comum:

x0 = a1*x1 + a2*x2 + a3*x3

x1 = a1*x2 + a2*x3 + a3*x4 

x2 = a1*x3 + a2*x4 + a3*x5

Mas com um prazo livre.

x0 = a0 + a1*x1 + a2*x2 + a3*x3

x1 = a0 + a1*x2 + a2*x3 + a3*x4 

x2 = a0 + a1*x3 + a2*x4 + a3*x5

depois de somar as três equações.

nós recebemos:

a0 = S0 - a1*S1 - a2*S2 - a3*S3

где S0..S3     - среднее арифметическое столбцов матрицы
S0 = (x0+x1+x2)/3
S1 = (x1+x2+x3)/3
S2 = (x2+x3+x4)/3
S3 = (x3+x4+x5)/3

após a substituição, obtemos novamente um SLAU sem um prazo livre.

∆x0 = a1*∆x1 + a2*∆x2 + a3*∆x3

∆x1 = a1*∆x2 + a2*∆x3 + a3*∆x4 

∆x2 = a1*∆x3 + a2*∆x4 + a3*∆x5

где ∆x0..∆x5  - дельта (приращение) цены к среднему арифметическому текущего столбца.

где ∆x0 = x0-S0 = x0-(x0+x1+x2)/3 и т.д.

Isto é, se no primeiro caso fosse um SLAU de centavos, no caso do SLAU com prazo livre a0 será transformado em um simples SLAU de incrementos.

Matemática do 7º ano.

Então, que diferença isso faz!

Se uma tentativa de usar SLAU para análise e previsão de preços é apenas uma estupidez, então a entrada do termo livre a0 é estupidez ao quadrado.

E não importa como você pomposamente chama isso de bobagem ("Vamos compensar nossa digressão introduzindo o conceito de C0 - contabilizando a pressão dos dados históricos sobre o preço no início da análise, assumindo que o mercado tem uma memória. ") - a estupidez ainda será estupidez.


Além disso, meu indicador é muito fácil de refazer para seu SLAU com um termo livre A0. Você só precisa adicionar algumas linhas de código sem alterar a função principal SLAU()

Haverá o mesmo ruído branco e o mesmo rendimento que na previsão do movimento de preços usando uma moeda.

Mas eu não vou ser preguiçoso. Passarei mais 30 minutos e o farei.

 

Kolya, mostrarei sua ilusão com um exemplo simples, após o qual você será forçado a admitir que, em tais casos, a presença de um membro livre é absolutamente necessária. Vejamos os exemplos que você deu:

Aqui está um simples SLAU para um exemplo:

x0 = a1*x1 + a2*x2 + a3*x3

x1 = a1*x2 + a2*x3 + a3*x4 

x2 = a1*x3 + a2*x4 + a3*x5

Если представить, что, между х-сами нет никакой зависимомти, то, а1=0; а2=0, а3=0 и получим, что и х0=0, х1=0 и х3=0! Получили нулевые расчетные значения х-сов. Это нонсенс.

mas com um prazo livre

x0 = a0 + a1*x1 + a2*x2 + a3*x3

x1 = a0 + a1*x2 + a2*x3 + a3*x4 

x2 = a0 + a1*x3 + a2*x4 + a3*x5
В этом случае, получим х1=а0, х2=а0, х3=а0, что указывет, всего навсего, на отсутствие зависимости между х-сами, без каких-либо парадоксов. Тепеь, поняли своё заблуждение?

 
Nikolai Semko:

Yusuf, não invente coisas. Eu não fiz nenhuma recomendação e não profetizei nada.

Tudo o que eu estava tentando fazer era poupar seu tempo, para que você não o desperdiçasse em porcarias inúteis. E também, para que você não perca o tempo dos outros com essa porcaria.

Eu quase não tinha dúvidas de que você seria apanhado pela falta de uma pila solta. E você não entendeu que era você quem estava sendo ridicularizado por Fedoseyev ))))

Mas, é verdade, eu esperava que você fosse mais razoável do que parece e entendi que um SLAU com e sem um membro livre é essencialmente a mesma coisa - os mesmos ovos, mas de perfil. E um membro livre não acrescentará ordem a este caos.

Considere isto.
Aqui está um SLAU simples, por exemplo:

Mas com um prazo livre.

depois de somar as três equações.

nós recebemos:

após a substituição, obtemos novamente um SLAU sem um prazo livre.

Isto é, se no primeiro caso fosse um SLAU de centavos, no caso do SLAU com prazo livre a0 será transformado em um simples SLAU de incrementos.

Matemática do 7º ano.

Então, que diferença isso faz!

Se uma tentativa de usar SLAU para análise e previsão de preços é apenas uma estupidez, então a entrada do termo livre a0 é estupidez ao quadrado.

E não importa como você chame isso de bobagem ("Vamos compensar nossa digressão introduzindo o conceito C0 - contabilidade da pressão dos dados históricos sobre o preço no início da análise, supondo que o mercado tenha memória"). ") - a estupidez ainda será estupidez.


Além disso, meu indicador é muito fácil de refazer para seu SLAU com um termo livre A0. Você só precisa adicionar algumas linhas de código sem alterar a função principal SLAU()

Haverá o mesmo ruído branco e o mesmo rendimento que na previsão do movimento de preços usando uma moeda.

Mas eu não vou ser preguiçoso. Passarei mais 30 minutos e o farei.

Em suma, um disparate.

Em pontos:

1) esta bobagem não vem de uma grande inteligência, mas de uma falta de conhecimento e compreensão;

2) a falta de compreensão do papel do membro livre leva a declarações como esta : "que SLAU com um termo livre e sem ele são essencialmente os mesmos";

3) para resolver o problema não é necessário fazer: "depois de adicionar três equações";

4) esta é mais uma confirmação indireta da eliminação do componente tendência em incrementos: "após a substituição, obtemos novamente SLAE sem um termo livre";

5) para a solução de problemas de otimização" matemática do7º grau" obviamente não é suficiente, portanto, deve-se ampliar os horizontes;

6) exclamações "estupidez","estupidez ao quadrado" e outras variações com "estupidez" - isto é por falta de conhecimento e compreensão (ver item 1);

7) ao invés de reconstruir um indicador a partir de um problema de resolução de um sistema de equações algébricas lineares, deve-se fazer outro indicador com a solução de um problema de otimização, e então comparar suas leituras, e como resultado ver e entender o quão diferentes serão suas leituras, ou seja, as soluções e declarações de problemas.

 

Aqui está seu infame a0 (aka C0)

O ruído branco é o ruído branco na África


Tenho a sensação de que você deu à luz SLAU de 5 equações durante anos. E você o tem dublado com uma auréola de mega-senso científico e delírios de grandeza. E isso é matemática do 7º ano do ensino médio.

Mas minha pequena função SLAU() resolve facilmente SLAU de 50 equações e eu o fiz e o depurei em menos de 1 dia. Não sei de que maneira resolvi o SLAU, porque sou sempre preguiçoso demais para estudar os métodos existentes, é mais fácil inventar os meus próprios métodos. O mais provável é que meu caminho não seja o ideal e é claro que não inventei nada de novo, não sou forte em teoria. Mas ainda não encontrei uma mais compacta.

void SLAU(double &x[],double &f[],double &a[],int m)
  {
   int k=m-1;
   if(m>1)
     {
      double xx[],ff[];
      double g=x[0]; if(g==0) g=1.0 e-100;
      for(int i=0;i<ArraySize(x);i++) x[i]/=g;
      for(int i=0;i<ArraySize(f);i++) f[i]/=g;
      ArrayResize(ff,k);
      ArrayResize(xx,k*k);
      for(int i=0; i<k; i++)
        {
         ff[i]=f[0]*x[(i+1)*m]-f[i+1]*x[0];
         for(int j=0;j<k;j++) xx[i*k+j]=x[j+1]*x[(i+1)*m]-x[(i+1)*m+j+1]*x[0];
        }
      int i=0;
      for(;i<k; i++) if(xx[i*k]!=0) break;
      if(i>0 && i<k) for(int j=0;j<k;j++) {double t=xx[j]; xx[j]=xx[i*k+j]; xx[i*k+j]=t;}
      SLAU(xx,ff,a,k);
     }
   double sum=0;
   for(int i=1; i<m;i++) sum+=a[n-m+i]*x[i];
   if(x[0]!=0 && x[0]==x[0]) a[n-m]=(f[0]-sum)/x[0]; else a[n-m]=1.0/n;
   if(m!=n) return;
  }
Arquivos anexados:
SLAUPlus.mq5  28 kb