[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 76
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
On peut toujours tracer une seule perpendiculaire à une ligne. Cela indiquera la distance entre le point et la ligne.
Il y a presque toujours deux "distances" à un cercle à partir d'un point donné :
Du point A au cercle, dans ce cas, ce sont AB et AC. Et lequel choisir comme le "bon" n'est pas évident.
Les solutions peuvent provenir de plus d'une, voire d'un nombre infini. Une clarification des conditions est nécessaire.
MT4 peut facilement vous donner Ask=1.456121212 au lieu de 1.4561, mais il (il ne joue un rôle que lorsqu'il travaille avec des ordres) ne peut pas "comprendre" ce qu'il a fait.
Pour y remédier, nous utilisons la fonction (exemple pour Ask) :
NormalizeDouble(Ask, Digits)
Ainsi, toutes les valeurs qui sont substituées dans les fonctions de commande doivent être normalisées avant d'être envoyées au serveur.
Pas toutes les valeurs, mais les valeurs de prix - prix de fixation de l'ordre en suspens, prix d'ouverture de la position sur le marché, StopLoss et TakeProfit.
Sinon, nous risquons de le comprendre de manière trop directe et de le normaliser ... Commentaire par exemple :)
Minimiser quelle somme - la somme des distances ou la somme des carrés? Je n'ai toujours pas eu de réponse de l'auteur.
On peut toujours tracer une seule perpendiculaire à une ligne. Cela indiquera la distance entre le point et la ligne.
Il y a presque toujours deux "distances" à un cercle à partir d'un point donné :
Du point A au cercle, dans ce cas, ce sont AB et AC. Et lequel choisir comme le "bon" n'est pas évident.
Bien sûr AB.
Elena, si la somme des distances, cela ne fonctionnera pas sans méthodes numériques. Il n'existe pas de solution analytique dans la plupart des cas (sans compter le cas presque impossible où un cercle d'un rayon donné peut être dessiné exactement par trois points).
Bien sûr, AB, qui peut discuter - avec le dessin dessiné.
Imaginez ce qui se passera si vous essayez de résoudre le problème par de petits mouvements circulaires entre ces trois points. Ce même "bien sûr AB" va continuer à sauter d'une "branche" à l'autre. OK, voyons comment Alexey s'en sort.
Donc, la condition sous une forme digeste :
Étant donné N points divergents par paire dans le plan. Le problème est de trouver, pour trois points quelconques de l'ensemble, un cercle dont la somme des carrés des distances aux trois points donnés serait minimale. Choisissez ensuite parmi tous les cercles C(N,3) celui ou ceux pour lesquels la somme des carrés des distances aux points "amis" est plus petite que les autres.
Solution.
Les distances minimales d'un point donné à un cercle peuvent être calculées assez simplement. Si dans le dessin d'Alexis les coordonnées du point A sont (xA,yA) et les coordonnées du centre du cercle sont (x0,y0) alors
d = |r - sqrt((xA-x0)^2 + (yA-y0)^2)|,
où r est le rayon du cercle, et cette expression est correcte à la fois pour les points A situés à l'extérieur et à l'intérieur du cercle. Pour trois points, nous avons trois équations de ce type, chacune ayant trois paramètres inconnus (xA, yA, r). En différentiant la somme de trois d par chacune d'elles, on obtient trois équations, dont la résolution permet de trouver les paramètres requis.
La dernière étape consiste à calculer la somme correspondante pour chaque triplet et à choisir le minimum.
D'ailleurs, en raison de la non-linéarité des équations, je conseille de résoudre le problème numériquement, il n'y a rien à faire avec l'analytique.
La complexité du problème augmente rapidement au fur et à mesure que N augmente, car il faut calculer et énumérer N*(N-1)*(N-2)/6 cercles (56 dans le cas de N=8)