Calcul des différences, exemples. - page 3

 
Nikolai Semko:


Ce n'est pas ce que je voulais dire. Je n'ai pas dit"quand on interpole, c'est un 'traceur' et pas du tout une régression".

Honnêtement, je ne comprends même pas le sens de cette phrase.
Je voulais dire que tous les types d'interpolation sont redessinables ( et votre version est également redessinable). Et non redessinable n'est que la trace de traçage de ces fonctions d'interpolation, que mes mots soutenus par des gifs d'animation. Je conseille de les étudier à nouveau. Dans ces gifs, le traçage est une ligne bicolore bleu-violet. Mais il ne s'agit pas d'une fonction d'interpolation. La couleur bleue signifie que la fonction d'interpolation à ce point est ascendante, et la couleur violette est descendante.
Si le degré du polynôme = 0, cette trace est juste une moyenne mobile.


Ces tampons ne sont pas redessinés. La première est l'interpolation et la seconde l'extrapolation. Vous pouvez voir dans le code qu'il y a une valeur sur chaque barre.

 
      a1_Buffer[i]=((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800   *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;

      a2_Buffer[i]=  3160*a1_Buffer[i]   -6240   *a1_Buffer[i+1 ]    +  3081*a1_Buffer[i+2 ];
 
Nikolai Semko:


Ce n'est pas ce que je voulais dire. Je n'ai pas dit"quand on interpole, c'est un 'traceur' et pas du tout une régression".

Honnêtement, je ne comprends même pas le sens de cette phrase.
Je voulais dire que tous les types d'interpolation sont redessinables ( et votre version est également redessinable). Et non redessinable n'est que la trace de traçage de ces fonctions d'interpolation, que mes mots soutenus par des gifs d'animation. Je conseille de les étudier à nouveau. Dans ces gifs, le traçage est une ligne bicolore bleu-violet. Mais il ne s'agit pas d'une fonction d'interpolation. La couleur bleue signifie que la fonction d'interpolation à ce point est ascendante, et la couleur violette est descendante.
Si le degré du polynôme = 0, cette trace est juste une moyenne mobile.


et avec quoi et comment avez-vous tourné la vidéo ?
(question éternellement torturante, car il est douloureusement pénible pour tout "non-artiste" de concevoir un logiciel pour le marché :-) c'est plus facile à écrire )
 

J'ai ajouté plus de lignes de construction redessinables : premier (rouge), deuxième (gris) et troisième (vert) degrés.

      a1_Buffer[i]=((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800   *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;

      a2_Buffer[i]=  2701*a1_Buffer[i]   -5328   *a1_Buffer[i+1 ]    +  2628 *a1_Buffer[i+2 ];

      a4_Buffer[i+92]=a1_Buffer[i];   if(i<=1) { for(z=92-1;z>=0;z--){        a4_Buffer[i+0+z]=  5*a4_Buffer[i+1+z]  -  10*a4_Buffer[i+2+z]   +   10* a4_Buffer[i+3+z]  -  5*a4_Buffer[i+4+z]  +  1*a4_Buffer[i+5+z];  }}

      a3_Buffer[i+92]=a1_Buffer[i];   if(i<=1) { for(z=92-1;z>=0;z--){        a3_Buffer[i+0+z]=  4*a3_Buffer[i+1+z]  -  6*a3_Buffer[i+2+z]   +   4*a3_Buffer[i+3+z]  -  1*a3_Buffer[i+4+z] ;  }}

      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  3*a5_Buffer[i+1+z]  -  3*a5_Buffer[i+2+z]   +   1*a5_Buffer[i+3+z]   ;  }}

      a6_Buffer[i+92]=a1_Buffer[i];   if(i<=1) { for(z=92-1;z>=0;z--){        a6_Buffer[i+0+z]=  2*a6_Buffer[i+1+z]  -  1*a6_Buffer[i+2+z]     ;  }}

//----
   SetIndexShift(2,-72);
   SetIndexShift(5,20);
   SetIndexShift(4,20);
   SetIndexShift(0,20);
   SetIndexShift(1,20);

Je l'ai :

Le polynôme du second degré (en gris) touche la ligne extrapolée au dernier point, comme il se doit.

 
Aleksey Panfilov:

Je propose de rassembler les indicateurs et les experts du calcul des différences dans ce fil de discussion, dans le code source ouvert.

Si l'intérêt est là, nous finirons par construire ou dessiner quelque chose d'utile. :)

J'ai essayé de réécrire l'indicateur sous une forme plus claire à titre d'exemple :


Comparez les calendriers julien et grégorien avec le nouvel an chinois.

 
Vladimir Zubov:

Comparez les calendriers julien et grégorien avec le nouvel an chinois.


Intéressant. Pourquoi ? )))

Faites-vous un parallèle avec le calcul des différences et le calcul différentiel ?

Je pense que c'est tout à fait justifié. )))

 
Yousufkhodja Sultonov:

Avez-vous essayé cette formule ?

Y = a0 + a1X + a2X^2 + a3X^3 + a4X^4


Essayez avec cette formule :

Y = a0 + a1X + a2X^3 + a3X^5

 
Petr Doroshenko:

Essayez d'utiliser cette formule :

Y = a0 + a1X + a2X^3 + a3X^5

Je peux aussi Y = a0 + a1X + a2X^3 + a3X^5 + a4X^7, mais, quel est l'intérêt ? Comment justifiez-vous cette approche particulière ?

Actuellement en cours :

X5 = a0 + a1X1 + a2X2 + a3X3 + a4X4

C'est-à-dire que j'examine la dépendance du prix de la dernière barre (X5) par rapport aux prix des 4 barres précédentes (X1, X2, X3, X4) et je regarde les variations des ratios a0, a1, a2, a3, a4. Des choses intéressantes apparaissent et je rapporterai les résultats bientôt.

 
Maxim Kuznetsov:
Comment avez-vous tourné la vidéo ?
(c'est toujours une question douloureuse, parce qu'il est si pénible pour tout "non-artiste" de faire un logiciel pour le marché :-) c'est plus facile à écrire ;)

La vidéo a été capturée à partir de l'écran et un fichier gif a été généré avec Camtasia 9. Il y a beaucoup d'informations sur youtube.

 
Aleksey Panfilov:

Ces tampons ne sont pas redessinés. Le premier interpole, le second extrapole. Vous pouvez voir dans le code qu'il y a une valeur pour chaque barre.


Oui, je me suis trompé. Je pensais que vous utilisiez vraiment l'approximation. J'ai regardé de plus près votre code et je me suis rendu compte qu'il ne s'agit pas d'une approximation mais simplement d'une moyenne triviale, bien que très inhabituelle. Ensuite, vous déplacez la ligne violette et la ligne rouge de 72 barres vers la gauche et vous finissez de dessiner la queue rouge de 92 barres, et elle est redessinée à chaque nouvelle barre. La ligne bleue est formée à partir de la ligne violette décalée. Et d'ailleurs, il est plus correct d'utiliser le prix de clôture plutôt que le prix d'ouverture. Si vous passez à la fermeture, vous pouvez immédiatement voir qu'à chaque tick la queue rouge des 92 barres saute.

Déplacer les moyennes mobiles vers la gauche n'a aucune utilité et aucune application pratique. Il ne sert qu'à la beauté, à la tenue et au charme.

J'ai besoin de comprendre la différence entre l'approximation et le lissage. Lors d'une approximation, les coefficients d'une fonction (polynôme, Fourier, Bézier, spline, etc.) sont calculés sur un intervalle donné de données, et ces coefficients changent généralement tous lorsqu'au moins une valeur de données change, de sorte que la fonction est redessinée sur tout l'intervalle de données observées. Mais dans le cas du moyennage, on ne considère qu'un seul point actuel sur la base des données précédentes ; par conséquent, le moyennage (lissage) n'est pas redessiné, mais il est toujours en retard sur les données, contrairement à l'approximation.
Et je ne comprends pas ce que le polynôme d'un certain degré et le binôme de Newton ont à voir avec cela, s'il n'y a pas de degrés même dans le code.

 

Bonjour, les garçons.

Non, c'est intéressant, bien sûr. Du point de vue de l'emploi. Mais ! Diverses astuces pour porter le résultat et tracer des lignes dans la période passée ??? Dans votre exemple { (Comme)a4_Buffer[i+0+z]= 5*a4_Buffer [i+1+z] et TD. } A quoi cela peut-il mener ? Correct ! Pour obtenir le résultat au dernier tick et pouvoir l'utiliser uniquement sur le graphique. Sous la forme d'une photo tout à fait étonnante.

Raison: