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

 
ruslan:

il existe une constante dans l'inline OPENCL cl_ et elle est égale à #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 en revérifiant le degré de deux dans 1024 obtenu. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 Et en dessous, il y a le nombre de pi

après

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

expliquer pourquoi ? ???

https://ru.wikipedia.org/wiki/Число_двойной_точности

Число двойной точности — Википедия
  • ru.wikipedia.org
Числа с плавающей запятой (двойной/одинарной/четверной точности) поддерживаются сопроцессором (до 80486SX, включительно, выполнен как отдельный модуль-0х87/0х287/0х387/0х487, начиная с 80486DX является встроенным в главный процессор. Сопроцессор, хотя он сейчас и является частью главного процессора, принято называть FPU — Floating Point Unit...
 
Est-il possible d'obtenir la valeur du solde sur les barres précédentes dans mcl4 ? Comment puis-je écrire cela dans le code ?
 
Mon indicateur a un délai de +/- 1 seconde après l'appui sur le bouton. MQL5

J'ai ajouté ces gestionnaires d'événements pour le fonctionnement et la mise à jour du panneau :
- OnChartEvent pour gérer les clics de bouton
- OnTimer pour la mise à jour des données du panel

Le code entier est de 750+ lignes, il y a seulement plusieurs boucles, une pour les mises à jour dans la fenêtre de l'indicateur, les trois autres ont un petit nombre de passes (max 10 * 4).

Cette partie du code après OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) est sensiblement lente.
if(go == "E")
     {
      if(ObjectGetInteger(ChartID(),no,OBJPROP_STATE) == true)
        {
         ObjectSetInteger(ChartID(),no,OBJPROP_COLOR,cpanel);
         ObjectSetInteger(ChartID(),no,OBJPROP_BGCOLOR,ctext);
        }
      else
        {
         ObjectSetInteger(ChartID(),no,OBJPROP_COLOR,ctext);
         ObjectSetInteger(ChartID(),no,OBJPROP_BGCOLOR,cpanel);
        };
      for(int i = 0; i < limit_x; i++)
        {
         vname = i + 1;
         if("MCC B№"+(string)vname != no)
           {
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_STATE,false);
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_COLOR,ctext);
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_BGCOLOR,cpanel);
           };
        };
     };
 
Alexandr Sokolov:
Mon indicateur a un délai de +/- 1 seconde après l'appui sur le bouton. MQL5

J'ai ajouté ces gestionnaires d'événements pour le fonctionnement et la mise à jour du panneau :
- OnChartEvent pour gérer les clics de bouton
- OnTimer pour la mise à jour des données du panel

Le code entier est de 750+ lignes, il y a seulement plusieurs boucles, une pour les mises à jour dans la fenêtre de l'indicateur, les trois autres ont un petit nombre de passes (max 10 * 4).

Cette partie du code après OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) est sensiblement lente.

ChartRedraw() est nécessaire après que toutes les modifications ont été apportées à tous les objets dont les propriétés sont modifiées par l'action du bouton.

 
Artyom Trishkin:

ChartRedraw() est nécessaire après avoir effectué toutes les modifications dans tous les objets dont les propriétés sont modifiées par l'action du bouton.

En effet ! Je n'avais pas pensé à ça. Merci beaucoup !


Je plaçais des alertes dansOnChartEvent if(id ==CHARTEVENT_OBJECT_CLICK) - il y avait des alertes, pas de mises à jour. Et c'est pourquoi je ne pouvais pas comprendre pourquoi

 
novichok2018:
Est-il possible d'obtenir la valeur du solde sur les barres précédentes dans mcl4 ? Comment l'écrire dans le code ?

Bonjour les experts ! Personne n'est au courant ? ! Je n'y crois pas.

 
novichok2018:

Bonjour les experts ! Personne n'est au courant ? ! Je n'y crois pas.

Voici le prix d'un tick

SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE ) * volume

Ensuite, multipliez par la différence en ticks entre le prix d'ouverture de l'ordre et le prix de clôture (ou autre) de la barre requise. Mais tenez compte du fait que vous ne pouvez pas savoir, en utilisant les méthodes standard, quel était l'écart à ce moment-là.

 
novichok2018:

Bonjour les experts ! Personne n'est au courant ? ! Je n'y crois pas.

le solde dépend de la fermeture des positions - si rien n'a été fermé, le solde n'a pas changé

 
Je n'ai pas dû formuler la question correctement, puisque les réponses sont hors sujet. Je ne me soucie pas de savoir si les positions ont été fermées ou non, et je ne suis certainement pas intéressé par la valeur du tick. J'ai besoin de savoir quel était lesolde du compte au moment de la fermeture de 1, 2, 3 barres d'un certain symbole pour comparaison. Des positions sur ces barres ont été ouvertes et fermées, y compris des positions sur d'autres symboles : certaines positions ont été fermées du côté positif, d'autres ont été fermées du côté négatif, d'autres n'ont pas encore été fermées, donc le solde a changé. J'ai besoin de connaître les valeurs spécifiques. Merci.
 
novichok2018:
Je n'ai pas dû formuler la question correctement, puisque les réponses sont hors sujet. Je ne me soucie pas de savoir si les positions ont été fermées ou non, et le coût du tick ne m'intéresse pas. J'ai besoin de savoir quel était le solde du compte au moment de la fermeture de 1, 2, 3 barres pour comparaison. Des positions ont été ouvertes et fermées sur ces barres, et le solde a donc changé. Nous devons connaître la valeur spécifique. Merci.

- Nous regardons l'heure de la dernière mesure
- additionner tout ce qui a été fermé sur ce bar
- soustraire du solde actuel

et donc toutes les barres à leur tour

Raison: