Comment algorithmez-vous la détection des clusters d'alimentation MA ? - page 2

 
Dmitry Fedoseev:

Je suis trop paresseux pour en inventer d'autres. Certains indices laissent penser que, en principe, le problème est soluble.

Tous ces flux sont juste une carte thermique des prix précédents. Vue de côté. 😉

Et contrairement à la moyenne, la carte des températures peut être étendue à l'avenir. Et les coupures de courant, leurs harnais sont faciles à trouver.
 
Maxim Kuznetsov:
Tous ces flux sont juste une carte thermique des anciens prix. Vue de côté.

Et contrairement à la moyenne, la carte des températures peut être étendue à l'avenir. Et les coupures de courant, c'est facile à trouver.

Oui, c'est vrai !

C'est facile quand on a des stéréotypes tout faits.

Et les résoudre n'est pas une tâche facile...

Merci de m'avoir recommandé !
 
Mikhail Toptunov:

Oui, c'est ça !

C'est facile quand on a des stéréotypes tout faits.

Ce n'est pas facile d'éliminer les stéréotypes...

Merci pour la direction !

Un algorithme approximatif pour calculer une carte thermique (par exemple pour 100 bars) :

pour tous les Close de 1 à 100 :

Close[N]=X ajoutera à la carte thermique la somme de la ligne heatmap[Resolution(X)]+={X/N} + {X/(N+1)}+{X/(N+2)}... jusqu'à 100.
Ce qui est entre crochets est la "composante" des moyennes, juste mise en évidence.
Resolution(X) - "résolution", par exemple 10 points Round((X-MinimalX)/Point/10)

obtenir un vecteur dans lequel vous devez trouver les maxima locaux.

Ce vecteur est pratiquement un profil de prix vertical

 

pendant que vous y êtes...

le regroupement direct des courbes peut être détecté simplement et rapidement.

Alg. : recherche d'un groupe maximum de points dans D sur un axe. (probablement plus facile à dessiner, mais je ne suis pas un artiste)

pour chaque point X sur l'axe secondaire, marquer +1 sur X+D et -1 sur X-D.

Ensuite, parcourez l'axe supplémentaire et comptez la somme cumulée des notes. En même temps, il faut se souvenir du maximum, de sa durée et de sa position.

ALL.

Mais l'option du profil vertical ou de la carte de température est meilleure, bien que longue et consommatrice de ressources.

parce que 1) il est compté directement à partir des prix 2) il garde une connexion matricielle avec le SMA 3) il est connecté à la pile 4) il est variable - vous pouvez "jouer" avec les fondus, les flous et trouver quelque chose qui vous ressemble.

 
Mikhail Toptunov:

J'ai essayé de recalculer les répétitions de la MA par prix, par période.

J'ai fait ce qui suit :

- déterminé le moment de chaque transition MA d'une direction à l'autre - signal1

- après avoir reçu les données, compter le nombre de répétitions du signal1 dans une mesure

mais le résultat s'est avéré être trop bruyant


puis j'ai détecté que les MA de la barre actuelle ont une période décroissante sur la barre suivante, c'est-à-dire que le paquet a été décalé vers le bas par période.

J'ai commencé à connecter les données dans une chaîne au signal1 et dans les données obtenues, j'ai trouvé le moment de la transition.


Mais il ne fonctionne pas tout de même, il fait du bruit ou ne s'affiche pas.



Mince, le modèle ne fonctionne pas, la fenêtre du haut est vide.


Idéalement, la tâche est d'obtenir les valeurs marquées avec un marqueur bleu

Maxim vous a dit correctement

Vous prenez votre MA avec la période maximale, vous prenez la période minimale.

et c'est tout, les voilà - les flux.

Le modèle fonctionne très bien, tout est clairement visible et compréhensible :


 

Une autre option

1

Dossiers :
22.mq5  4 kb
 

Et une autre

Dossiers :
23.mq5  6 kb
 
Vous pourriez être là pour une semaine ou un mois...
 
Maxim Kuznetsov:

algorithme de calcul approximatif de la carte thermique (par exemple, pour 100 bars) :

pour tous les Close de 1 à 100 :

Close[N]=X ajoutera à la carte thermique la somme des lignes heatmap[Resolution(X)]+={X/N} + {X/(N+1)}+{X/(N+2)}... jusqu'à 100.
Ce qui est entre crochets est la "composante" des moyennes, juste mise en évidence.
Resolution(X) - "résolution", par exemple 10 points Round((X-MinimalX)/Point/10)

obtenir un vecteur dans lequel vous devez trouver les maxima locaux.

Ce vecteur est en fait un profil vertical des prix.

J'essaie d'intégrer la formule... Je suis généralement serré...

#define           Pmax 100   //размер массива по периоду

void ...
{
   for(int p=5; p<=Pmax; p++) // отбор по периодам
      for(int b=rates_total-Pmax; b<rates_total; b++)
        {
         double pr=sm.d[p-1].m[b]; // массив значений цен МА        p-период, b-бар        
        }
}

J'ai la valeur de chaque période pour chaque barre - pr

Que dois-je obtenir à la fin du calcul ?

- Un vecteur vertical (tableau de valeurs) pour chaque barre,

si je calcule les valeurs pour la première barre

heatmap[Round((pr-MininalX)/Point/10)]+=pr;

MininalX - valeur minimale du prix de 100 périodes MA

Je sais que je dis n'importe quoi, alors soyez indulgents).

 
Mikhail Toptunov:

J'essaie d'intégrer la formule... Je suis vraiment, vraiment serré...

J'ai la valeur de chaque période pour chaque barre - pr

Que dois-je obtenir à la fin du calcul ?

- Un vecteur vertical (tableau de valeurs) pour chaque barre,

si je calcule les valeurs pour la première barre

MininalX - valeur minimale du prix de 100 périodes MA

Je sais que je dis n'importe quoi, alors soyez indulgents).

Oui, vous devriez obtenir un "vecteur vertical" de sommes. Chaque élément du vecteur est responsable, par exemple, de 10 pips.

Donc pour un bar :

1. exécutons les prix pour les barres Pmax, afin de définir max,min et à partir d'eux la taille du vecteur.

2. revoir à nouveau les prix pour chaque prix :

2.1 déterminer dans quel élément du vecteur il faut faire l'addition

2.2 déterminer la quantité à ajouter. Pour un décalage de N, nous ajouterons PRICE * (somme 1/N 1/(N+1) 1/(N+2) . 1/Pmax) .
Ce qui est entre parenthèses est la différence de deux séries harmoniques = H(Pmax)-H(N-1), vous pouvez compter rapidement si vous voulez

---

Pourquoi : le prix à la distance de N barres ne "tombera" que dans le groupe de SMA de Pmax à N. Il n'y a pas d'importance moins de N, et en dessous de Pmax on ne compte pas

dans chaque SMA les poids seront 1/période, c'est à dire en une seule fois 1/N 1/(N+1) 1/(N+2) ...