Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1885

 
Est-il possible d'avoir plusieurs listes de surveillance (aperçus de marché) dans Metatrader ? Par exemple, un pour les indices, un autre pour les actions.
 
Vladimir Makhnin #:
Est-il possible d'avoir plusieurs listes de surveillance (aperçus de marché) dans Metatrader ? Par exemple : les indices dans l'un, les actions dans l'autre.

Faites le vôtre. MQL5 rend cela facile.

 
Mihail Matkovskij #:

Il s'agit de la formule de calcul de l'angle. Le code montre qu'une seule coordonnée est utilisée pour le calculer ainsi qu'un certain coefficient, dont le but n'est pas clair. Qu'est-ce que c'est ? Veuillez préciser les données que vous utilisez pour calculer l'angle.

Pour autant que je puisse voir

double d

c'est un vecteur. Mais il ne s'agit toujours que d'une seule coordonnée. Mais pour calculer un angle, il faut deux coordonnées ou un vecteur composé de deux coordonnées.

 

à la fois sur le... ma réponse a été supprimée

 
Maxim Kuznetsov #:

à la fois sur le... ma réponse a été supprimée.

Il y a quelque chose de confus - votre message de ce fil n'est pas dans les messages supprimés.

 
Vladimir Karputov #:

Il y a quelque chose de confus - votre message de ce fil n'est pas dans les messages supprimés.

J'ai regardé aussi. Je ne l'ai pas trouvé.

 

OK, je vais reproduire ça... en réponse àhttps://www.mql5.com/ru/forum/160683/page1884#comment_27290699

CalcAngleTrend n'a rien à voir avec cela. Ailleurs, le coefAngle est mal compté ou il y a d'autres calculs erronés.

ps/ et peut-être que le concept de "pente" est généralement mal interprété. Il n'est pas exprimable en degrés ou en radians (sans un espace de type courbure) et la fonction atan renvoie une valeur physiquement incorrecte.

 
Mihail Matkovskij #:

Il s'agit de la formule de calcul de l'angle. Le code montre qu'une seule coordonnée est utilisée pour le calculer ainsi qu'un certain coefficient, dont le but n'est pas clair. Qu'est-ce que c'est ? Veuillez préciser les données que vous utilisez pour calculer l'angle.

C'est exact, il s'agit d'un vecteur
et une seule valeur est utilisée car le changement delta divisé par 1 (Un) sera delta.
la variable coefAngle est une constante int égale à 2.
J'ai vérifié que toutes les données entrées dans la fonction sont exactement les mêmes.
 
Maxim Kuznetsov #:

OK, je vais reproduire ça... en réponse àhttps://www.mql5.com/ru/forum/160683/page1884#comment_27290699

CalcAngleTrend n'a rien à voir avec cela. Ailleurs, le coefAngle est mal compté ou il y a d'autres calculs erronés.

ps/ et peut-être que le concept de "pente" est généralement mal interprété. Elle n'est pas exprimée en degrés ou en radians (sans un dépassement de type courbure de l'espace) et la fonction atan renvoie une valeur physiquement incorrecte.

le coefficient est une constante, il ne change pas
il n'y a pas de calculs sauf pour cette fonction, la fonction a obtenu la valeur delta en faisant la moyenne des valeurs des vecteurs sur plusieurs points, en gros la réduction à un segment de 2x points, avec une période de 1 unité

Il est clair qu'il ne s'agit pas d'une réalisation complète des vecteurs, mais plutôt d'un résultat expressif "plus ou moins" adéquat.
techniquement on peut faire avec une simple application d'un coefficient multiplicateur et c'est tout...

De toute façon, je ne vois pas la raison pour laquelle cette fonction doit fonctionner(

La seule possibilité est qu'il y ait un problème de conversion de type dans l'expression elle-même au cours du processus de calcul,

 
Владимир Казаков écrire un conseiller expert, et quand je le teste, une chose étrange se produit...

J'ai une fonction

Quelle est la situation, j'exécute une instance de l'EA sur un graphique, et j'exécute la seconde en mode débogage sur le même graphique avec MT4
Les données d'entrée pour la fonction sont les mêmes, mais les données de sortie sont différentes ! !!? Il y a quelque chose que je ne comprends pas, il me semble...(

conseiller sur la façon de creuser pour trouver des informations !!!

PS : a calculé la différence d'exactement 2,5 fois le rendement

Décomposer les expressions en actions... ...et, oh, mon Dieu, les résultats sont tous les mêmes !?

double CalcAngleTrend(double d)
 {
Print("d: ", d, " coefAngle: ", (double) coefAngle);
  double
    a = (double) (d*pow(10,_Digits-2));
Print("(d*pow(10,_Digits-2)): ", a);
    double rad = (double) (180/M_PI);
Print("rad: ", rad);
    a = (double) (atan(a));
Print("(atan(a)): ", a);
    a = (double) (a*rad*(double) coefAngle);
Print("(a*rad*(double) coefAngle): ", a);
  return(NormalizeDouble(a, ANGLE_DIGITS));
 }

Donc tout de même avec la réduction des types n'est pas quelque chose qui fonctionne comme je le voudrais

des experts et des compreneurs peut quelqu'un expliquer quel était le problème ?!
de ne pas répéter l'erreur))))

PS : voici la même expression dans ce format qui fonctionne de la même façon

  double a = (double) ((d*pow(10,_Digits-2))*(180/M_PI)*(double) coefAngle);

La méthode d'exclusion était un double infaillible pour l'int.

J'espère que j'ai bien compris.

Raison: