Dialogue de l'auteur. Alexander Smirnov. - page 14

 
Yurixx:
Privé:

Mais VBAG a d'abord posté 1 indicateur, puis l'a remplacé par un autre (j'ai tout vu :-) ), et a posté le troisième, mais déjà un expert. Et je ne vois toujours pas l'image en mouvement qui me convaincra que le mathématicien a raison. Le militaire à la tête dure est tellement "bête" :-) que la foi aveugle ne prend pas :-)


Je ne sais pas, Sergey, pourquoi tu as besoin d'images en mouvement, mais je peux te faire un indicateur à 2 lignes. Un LRMA, l'autre 3*LWMA-2*MA. Ils se chevaucheront complètement, c'est-à-dire que l'un d'eux ne sera pas visible à cause de l'autre. Tu éteins la couleur de l'autre, tu vois la première. Vous allumez la couleur - vous ne voyez que l'autre.

Je vous enverrais aussi une preuve d'équivalence, elle est courte - seulement une douzaine de lignes. Mais il s'appuie sur des formules dérivées analytiquement pour mettre en œuvre la régression linéaire. Eh bien, ne pas tout compter en chiffres, et si possible utiliser des formules finies - moins il y a de cycles, plus le comptage est rapide. Mais c'est un calcul assez long, je n'ai pas envie de m'embrouiller dans Word.


Merci. Je vais essayer de le faire moi-même. J'ai besoin d'une distraction. J'ai enfin terminé le filtre Kalman. Mais je n'ai pas pu le faire fonctionner sur le testeur depuis une semaine. J'ai peur que cela ne fonctionne :-(. Je recherche les erreurs en essayant de mieux préparer ses données et de rendre la prédiction encore plus précise. Cela fonctionne dans Matkadec, mais j'ai peur de l'exécuter dans le testeur.

 
VBAG:
Si vous disposez d'algorithmes plus rationnels pour calculer les tirets ou la régression, il serait très intéressant d'y jeter un coup d'œil !

Les algorithmes sont trop bruyants pour l'appeler ainsi, mais je peux vous donner une idée. Le principe est simple : on gagne en vitesse, on perd en mémoire. Puisque le premier est plus requis, nous chargeons la mémoire.

Par exemple, une simple SMA. L'algorithme intégré doit être universel et le calculer partout, quel que soit le contexte. Et vous pouvez utiliser les résultats des calculs précédents dans votre propre programme. Afin de calculer la nouvelle valeur SMA, il faut prendre la somme des N valeurs de prix précédentes, en soustraire la première et ajouter la nouvelle valeur actuelle. Cette somme est ensuite divisée par N. Par conséquent, nous devons hauler la somme variable des N prix précédents et le tableau de ces N prix et mettre à jour la somme et le tableau à chaque barre. Par conséquent, pour calculer la SMA sur chaque barre, nous devons exécuter 3 opérateurs : mettre à jour la somme, mettre à jour l'élément du tableau et calculer la valeur de la SMA. Pas de boucles.

 
Prival:

Mais cela fait une semaine que je n'ai pas pu le faire fonctionner sur le testeur. J'ai peur que cela ne fonctionne:-( .


Oui, ça arrive aussi. :-))
 
LeoV a écrit :
Voici par exemple JMA et SSA avec une période de 50. Mais j'ai un CSSA basé sur le SSA mais pas de redécoupage. Très rapide. Je recommande cet algorithme .....

Hors sujet, bien sûr, mais toujours intéressant - LeoV, pourriez-vous me montrer une image de l'indicateur CSSA Cycles du même développeur (il semble très bien sur les actions) ? Je veux voir comment cela se présente sur les cotations forex.
 
Yurixx:
Une telle méthode a probablement du sens, mais seulement si les périodes sont courtes. Et la mémoire n'est pas la raison principale. Un redémarrage va perdre ce que nous traînons derrière nous. C'est super. Merci pour la réponse.
 
Prival:

Le filtre de Kalman est enfin terminé.

J'ai entendu dire que tu poussais le thème de Kalman. J'ai manqué cette discussion pour une raison quelconque. Où puis-je le voir ?

P.S. J'ai joint un fichier sur le sujet - peut-être que quelqu'un sera intéressé.
 
Oui, si vous vous dites lâche, vous entrez dans la boîte. OK, Sergey, voici une preuve (j'en ai besoin de toute façon, pour ma propre confiance) :

Disposons d'échantillons de temps - t = 1, 2, ... N. La numérotation est inversée dans MQL4, c'est-à-dire que N est la barre actuelle, "zéro". Ces lectures correspondent à la clause Сlose(1), Сlose(2), ... Сlose(N). Essayons de construire une droite y = A*t+B passant par les cloisons par MNC. Ensuite, nous calculons A*N + B, c'est-à-dire le LRMA à la barre actuelle.

Nous calculons la somme des carrés d'erreurs :

Delta^2 = Sum( ( y(i) - Close(i) )^2 ; i = 1..N ) = Sum( ( A*i + B - Close(i) )^2 ; i = 1..N )

Nous différencions ce truc par A et B et obtenons un système d'équations pour les quotients optimaux de A et B :

Somme( ( ( A*i + B - Close(i) ) * i ) ; i = 1...N ) = 0
Sum( A*i + B - Close(i) ) ; i = 1...N ) = 0

En développant les sommes, on obtient (j'omets les plages d'indices pour simplifier la notation)

A*Sum( i^2 ) + B*Sum( i ) = Sum( i*Close(i) )
A*Sum( i ) + B*Sum( 1 ) = Sum( Close(i) )

Prival, regardez maintenant les côtés droits. La somme du côté droit de la première équation est presque LWMA, mais sans le facteur de normalisation. Dans le second, c'est la SMA, également sans elle. Voici les formules exactes de ces échelles :

LWMA = 2/(N*(N+1)) * Sum( i*Close(i) )
SMA = 1/N * Sum( Close(i) )

Maintenant, rappelez-vous ce qu'est la somme des carrés des naturels 1 à N (c'est N*(N+1)*(2*N+1)/6), substituez-la dans notre système et nous obtenons :

A * N*(N+1)*(2*N+1)/6 + C * N*(N+1)/2 = LWMA * N*(N+1)/2
A * N*(N+1)/2 + C * N = SMA * N

Simplifier :

A * (2*N+1)/3 + C = LWMA
A * (N+1)/2 + C = SMA

Je ne vais pas résoudre le système, je suis trop paresseux (c'est déjà clair ici). Je vais juste multiplier la première équation par 3, et la seconde par 2, puis soustraire la seconde de la première :

A * (2*N+1) + 3 * C - A * (N+1) - 2 * C = 3 * LWMA - 2 * SMA

À gauche, après simplification, il reste A*N + B, c'est-à-dire exactement notre régression au point N.
 
Alexey ! Encore du respect ! Je me suis demandé d'où venait le "/6" dans ma formule LRMA (ou devrais-je dire formule Omega) !
 
VBAG:
Cette méthode a probablement du sens, mais seulement si les périodes sont petites et si la mémoire n'est pas la raison principale. Lors du redémarrage, ce que nous traînons derrière nous sera perdu. Mais super, merci pour la réponse.


Cette méthode est bonne pour toutes les périodes. Lorsque vous redémarrez, tout, bien sûr, est perdu. Cependant, au démarrage, nous pouvons toujours commencer par exécuter cet algorithme peu sophistiqué sur l'ensemble du graphique, créant ainsi les informations nécessaires. Il est également possible de ne pas l'exécuter sur l'ensemble du graphique, mais seulement sur une partie suffisante de celui-ci.

Cette méthode n'a qu'un seul inconvénient : au lieu d'un iMA, vous devez écrire un certain nombre de lignes de code de votre propre main. :-)

 

Alexei, merci. Je vais m'asseoir avec un crayon. Les dérivés de A et B sont les suivants


J'ai revérifié la réponse, oui en effet A*N+B=3*LWMA-2*SMA

bien que le mathématicien ait raté un deuce en prenant la dérivée.

et j'ai quelques doutes, qu'ils ne devraient pas coïncider au point N, mais à (N-1)/2. Bulashev p.156. Il semble. Voici une image qui coïncide au point N. Je me trompe donc plutôt.