MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 42

 
zigan:


C'est une nouvelle pour moi ! Je suis tellement habitué au double cinq par cinq :

Il ne m'est jamais venu à l'esprit qu'il pouvait y avoir tout un... il y a une fourchette de 1 à 3. Et quel est l'intérêt de la représentation des nombres entiers ? Juste pour que ça marche plus vite ?



Je ne sais pas, je pense que les développeurs avaient un but ou pas...
 
St0nE:

Oui, c'est ainsi que j'ai défini la nouvelle barre et maintenant, sur 509, elle fonctionne de manière stable.

Aujourd'hui, j'ai mis à jour vers 537 et j'ai eu une erreur en travaillant avec un tableau. J'ai ouvert le nouveau document, et oui, il y a deux façons d'utiliser Bars.

C'est pourquoi j'ai demandé ici. Si cela ne vous dérange pas, pourriez-vous suggérer une autre façon de définir une nouvelle barre ?

Merci...


void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
Mais il faut comprendre que si vous changez la période du graphique, la fonction va se planter... Je m'enfuis maintenant, pas le temps de coder, l'échec est corrigé par iTime()
 
alexvd:

Pouvez-vous décrire les paramètres définis dans le testeur de stratégie, les paramètres d'entrée, le modèle de génération de tick... + attachez le Conseiller Expert à tester.

Envoyez tout cela au Service Desk.


Application #882960
 

Aux développeurs de

Veuillez implémenter REASON_TEMPLATE comme raison pour la désinitialisation de l'EA.

Bien sûr, j'aimerais aussi avoir une "liste complète" de toutes les raisons possibles, non différente de celle de MT5.

 
VOLDEMAR:

Mais vous devez comprendre que la fonction échouera si la période du graphique est modifiée ... Je n'ai pas le temps de coder maintenant. L'échec est corrigé via iTime()

Merci ! C'est à peu près tout...

Mes règles ne changent pas à la volée, donc ce n'est pas encore pertinent... :-)

Je comprends que cette fonction fonctionnera sur chaque tick, ne sera-t-elle pas plus lente que ma variante ?

 
St0nE:

Merci ! C'est à peu près tout...

Mes règles ne changent pas à la volée, donc ce n'est pas encore pertinent... :-)

Je suppose que cette fonction fonctionnera à chaque tick, ne sera-t-elle pas plus lente que ma variante ?



Votre version ne peut pas être utilisée, vous demandez le nombre de barres dans l'historique et le comparez, cela a du sens logiquement, mais avec le type d'historique que les courtiers nous donnent, cette approche ne peut pas être utilisée.... Il ne fonctionne tout simplement pas correctement...

Il y a souvent des trous dans l'historique, de nombreux courtiers ont une période d'historique différente, certains depuis 1970 et d'autres depuis le début de 2012, le nombre de barres sera différent, si vous changez de période pour une plus petite ou une plus grande, le nombre de barres changera également, le terminal mettra à jour l'historique ou les trous seront fermés, le nombre changera également .....

 

Publication de la version 538 avec corrections.

En particulier, correction du bug d'iVolume

 
VOLDEMAR:


Votre version ne peut pas être utilisée, vous demandez le nombre de barres dans l'historique et comparez, oui logiquement cela a du sens, mais avec le genre d'historique que les courtiers nous donnent, cette approche ne peut pas être utilisée.... Il ne fonctionne tout simplement pas correctement...

Il y a souvent des trous dans l'historique, de nombreux courtiers ont une période d'historique différente, certains depuis 1970 et d'autres depuis le début de 2012, le nombre de barres sera différent, si vous changez de période pour une plus petite ou une plus grande, le nombre de barres changera également, le terminal mettra à jour l'historique ou les trous seront fermés, le nombre changera également .....


quelle différence cela fait-il de savoir combien de barres il y a depuis 1970 ou depuis 2012 ? ce dont nous avons besoin, c'est de déterminer s'il y a une nouvelle barre. lorsque vous changez de cadre temporel, le terminal se réinitialise, ExpertBars=Bars ; une nouvelle barre ExpertBars!=Bars est apparue, donc le code
bool isNewBar=false ;

if (ExpertBars!=Bars) {
ExpertBars=Bars ;
isNewBar=true ;
}
travail
 
Les descriptions des problèmes ont été envoyées au Service Desk, y compris la dernière version - 538. Les programmes sont joints en annexe.
 
mr_Johns:

Quelle différence cela fait-il de savoir combien de barres il y a depuis 1970 ou 2012 ? Ce que nous devons faire, c'est détecter quand il y a une nouvelle barre. Lorsque nous changeons d'horizon temporel, nous sommes réinitialisés, ExpertBars=Bars ; une nouvelle barre ExpertBars!=Bars est apparue, donc le code
Le bool isNewBar=false ;

if (ExpertBars!=Bars) {
ExpertBars=Bars ;
isNewBars=true ;
}
travail

alors bonne chance ))))