Questions des débutants MQL5 MT5 MetaTrader 5 - page 1417

 

Et là, c'est un peu le bazar... Je veux cacher certains niveaux, et en faire d'autres avec un certain style (comme par ailleurs).

Donc le niveau zéro dans le style debug change, mais dès que l'on cache le premier niveau, il redevient jaune. Enfin, pas dans le debug non plus. L'inscription avec la valeur est seulement de la bonne couleur. Quelle galère avec ce fibonacci....

   int total_levels=(int)ObjectGetInteger(ChartID(),name,OBJPROP_LEVELS);
   for(int i=0;i<total_levels;i++)
     {
      if(i==0 || i==4 || i==5)
        {
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELCOLOR,i,FiboClr);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELWIDTH,i,FiboWidth);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELSTYLE,i,FiboStyle);
        }
      else
        {
         ObjectSetDouble(ChartID(),name,OBJPROP_LEVELVALUE,i,0);
         ObjectSetString(ChartID(),name,OBJPROP_LEVELTEXT,i,"");
        }
     }
 

Bonjour à tous.

Je vous prie de m'indiquer comment résoudre le problème

Il y a une classe qui traite les positions et les ordres et les vérifie avec la base de données.

nous avons besoin de passer des STRUCTURES (string, double, int, string .....) à partir de cette classe.

Comment faire ?

et si possible un lien vers un exemple

 
Sergey Li #:

Bonjour à tous.

je vous prie de m'indiquer comment résoudre le problème

il y a une classe qui traite les positions et les ordres et les vérifie avec la base de données

il est nécessaire de passer des STRUCTURES (string, double, int, string .....) à partir de cette classe.

Comment faire ?

et si possible un lien vers un exemple

Il existe des exemples dans la bibliothèque standard.

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
  • www.mql5.com
Result(MqlTradeResult&) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Avant d'envoyer un ordre, nous devons vérifier quand la dernière position sur un symbole a été ouverte. Qu'est-ce qui est le plus rapide : regarder dans l'historique ou dans la variable globale du terminal ?
 
lynxntech globale du terminal ?

Cela ne peut pas être plus rapide que dans la variable. Seule correction : vous pouvez utiliser la variable globale du terminal pour la sauvegarder lors du redémarrage du terminal, et consulter l'historique dans OnInit(). Mais lorsque vous passez à OnTick(), cette valeur doit être dans la variable globale de niveau, mais pas dans la variable globale du terminal.

 
Alexey Viktorov #:

Cela ne peut pas être plus rapide que dans une variable. Une seule correction : on peut utiliser la variable globale du terminal pour la sauvegarder au redémarrage du terminal, et fouiller dans l'historique dans OnInit(). Mais quand on passe à OnTick(), cette valeur doit être dans la variable de niveau global, mais pas dans la variable globale du terminal.

Est-ce que la variable globale du terminal est si lente, parce qu'elle devrait être stockée dans la même mémoire qu'une variable normale, ce n'est pas une quantité énorme d'informations qui est demandée au disque quand c'est nécessaire.

 
lynxntech #:

Une variable globale est-elle si lente, parce qu'elle devrait être stockée dans la même mémoire qu'une variable normale, ce n'est pas une énorme quantité d'informations qui est demandée au disque lorsque c'est nécessaire.

En gros, une variable globale de terminal est presque comme un fichier. Sinon, où est-elle stockée lorsque l'ordinateur est éteint ? Et une variable globale accessible depuis n'importe quel endroit du programme est une variable en mémoire. Naturellement, c'est plus rapide.

Il s'avère qu'à une nouvelle ouverture, il vaut mieux écrire à la fois dans la variable de niveau global et dans la variable globale du terminal pour la restaurer après le redémarrage du terminal. Mais lorsque le terminal est en cours d'exécution, la variable de niveau global doit être vérifiée.

 
Alexey Viktorov #:

Grosso modo, une variable globale de terminal est presque comme un fichier. Sinon, où est-elle stockée lorsque l'ordinateur est éteint ? Et une variable de niveau global accessible depuis n'importe quel endroit du programme est une variable en mémoire. Naturellement, elle est plus rapide.

Il s'avère qu'à une nouvelle ouverture, il vaut mieux écrire à la fois dans la variable de niveau global et dans la variable globale du terminal pour la restaurer après le redémarrage du terminal. Mais lorsque le terminal est en cours d'exécution, la variable de niveau global doit être vérifiée.

Par exemple, vérifier l'historique dans OnDeinit et l'écrire dans la variable globale du terminal ?

Idéalement, il n'y a que quelques octets d'information sous forme de texte, ne sont-ils pas contenus dans la disponibilité comme des variables habituelles, c'est-à-dire dans la RAM ?

Dans OnInit, nous la lisons, l'écrivons dans la RAM, et lorsque la variable est mise à jour, elle est écrasée.

Est-ce que quelqu'un a déjà mesuré cela ? ou peut-être que les développeurs peuvent nous aider à le découvrir.

 
lynxntech #:

Par exemple, vérifier l'historique dans OnDeinit et écrire dans le terminal global ?

Idéalement, il n'y a que quelques octets d'informations sous forme de texte, ne sont-ils pas contenus dans la disponibilité comme des variables normales, c'est-à-dire dans la RAM ?

Dans OnInit, nous la lisons, nous l'écrivons dans la RAM, puis lorsque la variable est mise à jour, elle est écrasée.

Est-ce que quelqu'un a déjà mesuré cela ? ou peut-être que les développeurs peuvent nous aider à le découvrir.

Qui a parlé de récupérer l'historique dans OnDeinit() ?

Je parlais de la nécessité de dupliquer la variable dans la variable du terminal à l'ouverture de la position suivante...

 
Alexey Viktorov #:

Qui a parlé de récupérer l'historique dans OnDeinit() ?

Je parlais de la nécessité de dupliquer la variable dans la variable du terminal à l'ouverture de la position suivante...

Tout cela peut être fait, la question s'adressait à ceux qui mesurent le travail réel, et mieux aux développeurs, qui savent ce qu'ils ont dans leurs plans.

Je ne veux pas expérimenter, il y a bien d'autres tâches.

Raison: