Commentaires sur MQL5 - page 5

 
Oui, merci ! Je vais essayer de travailler ....
 

Réparez-la pour commencer :

  • ERR_CHART_NO_REPLY( 4102) [,4003 ?] problème, initeau départ, extrêmement dommageable pour la fiabilité de l'EA.
  • Blocage des ordres au stade de la demande avant la fin de la session. Cela arrive, les demandes fonctionnent, c'est-à-dire qu'elles s'accrochent aux échanges. Il est impossible de les retirer. Les cas les plus flagrants sont rares, mais réguliers.

  • Aussi, une fois, mon terminal a miraculeusement perdu une position. Cette fois, l'autodémarrage du robot était désactivé, sinon la position opposée aurait été liquidée, etc. Le système est l'arbitrage. Je l'ai remarqué par hasard et j'ai appelé [open-]broker, et une sorte d'interrupteur a basculé et la position est apparue.
  • Une autre situation désagréable est celle où les prix sur le marché partent sur une faible liquidité, et où l'équité est calculée à partir du prix d'ouverture de la position (qui change chaque jour en compensation), jusqu'au prix de la dernière transaction d'il y a une semaine, qui est à une grande distance des véritables "bêtes". C'est-à-dire que le résultat est perverti à l'inverse. Ainsi, une perte (un bénéfice) substantielle se développe sur la pose, qui ne reflète pas la réalité et est imaginaire. Par exemple, sur le MIX-3.16, cet écart est maintenant de 6000-10000r par contrat. Supposons que ces métamorphoses entraînent un prélèvement de 15 % sur le compte aujourd'hui et de 30 % demain. Que se passe-t-il le premier jeudi d'août ? Appel de marge ? Seulement à cause de l'absence totale d'offres sur l'instrument ? Je n'ai pas précisé comment ce calcul est effectué sur la bourse, mais sur d'autres plateformes, ce problème ne s'est pas produit. Je ne les utilise pas actuellement, je ne peux donc pas vérifier.

C'est seulement la première chose qui m'est venue à l'esprit. Il y a une tonne de "petites choses" comme ça.

Les développeurs doivent comprendre - si vous annoncez un terminal d'actions, utilisez un concept approprié. Quelle est l'utilité de mettre sur des béquilles une copie d'une machine de cuisine "réécrite à partir de zéro"...

Dès le départ, l'accent aurait dû être mis sur les instruments financiers négociés en bourse à faible liquidité. Les liquides s'insèrent eux-mêmes dans le système.

Le marché serait alors humain,

et il y aurait un endroit pour le "Tableau des paramètres actuels" traditionnel pour toutes les plateformes,

et l'attitude à l'égard de la négociation avec des ordres limités prendrait la place qui lui revient,

et, peut-être, qu'au lieu de séries historiques inutiles (écart maximal, volume en ticks), nous disposerions de fonctions ASK/BID complètes pour une période donnée.

En bref, la révolution n'a pas eu lieu, et les parasites aux conseils stupides ont été vaincus. Vive le roi ! ...cuisine.

 
1150 vinda 8.1 pro 64x

Broker mode démo a 719 outils pour le commerce, environ 650 désactivé

lorsque la spécification dans l'aperçu du marché "Show All" après le chargement de tous les 719 terminal ralentit et freesit ... (il y a un délai entre le clic de la commande ou la frappe du clavier) et son exécution de 1 à 4 secondes ...

Puzzling, le code écrit pour mt4 et reporté presque sans changement sur mt5, fonctionne dix fois plus lentement dans mt5

Quand vous passez du forex aux futures, les fenêtres précédemment ouvertes sont suspendues et attendent la mise à jour. ( Théoriquement, le premier symbole des futures devrait le prendre ou juste se fermer, mais pas être suspendu en attendant la mise à jour...)

Le travail avec "Market Watch" n'est pas du tout pensé...

Si vous supprimez un symbole avec la touche Del, la fenêtre devient inactive, et pour le supprimer à nouveau avec la touche del, vous devez d'abord activer la fenêtre...

Le fonctionnement rapide avec les outils de "Market Watch" est extrêmement mal conçu...

Pour µl5

dans µl4 vous avez ajouté ObjectsDeleteAll(0, "Prefix") ; supprimer par préfixe, Et dans mt5 vous avez oublié ?
 
Vladimir Pastushak:
1150 vinda 8.1 pro 64x

Broker demo mode has 719 instruments to trade, about 650 disabled

when specifying "Show all" in market overview after loading all 719 the terminal slows down and freezes ... ( il y a un délai entre le clic de la commande ou de la touche ) et son exécution de 1 à 4 secondes ...

Puzzling, le code écrit pour mt4 et reporté presque sans changement sur mt5, fonctionne dix fois plus lentement dans mt5

Quand vous passez du forex aux futures, les fenêtres précédemment ouvertes sont suspendues et attendent la mise à jour. ( Théoriquement, le premier symbole des futures devrait le prendre ou juste se fermer, mais pas être suspendu en attendant la mise à jour...)

Le travail avec "Market Watch" n'est pas du tout pensé...

Si vous supprimez un symbole avec la touche "deal", la fenêtre devient inactive, et pour le supprimer à nouveau avec la touche "deal", vous devez d'abord activer la fenêtre...

Le travail de vitesse avec les outils dans Market Watch n'a pas du tout été pensé...

Sur µl5

dans µl4 vous avez ajouté ObjectsDeleteAll(0, "Prefix") ; supprimer par préfixe, mais dans mt5 vous avez oublié ?


Non, ils n'ont pas oublié. Mais il n'y a pas beaucoup de différence :

ObjectsDeleteAll(0,prefixObj,0,-1);


P./S. : A propos, et dans MT4 cela fonctionne avec -1 au lieu de EMPTY.

Pour ma part, j'ai écrit le mémo comme ceci :

int  ObjectsDeleteAll(
   long    chart_id,           // идентификатор графика
   string  prefix_obj,         // общий префикс в именах объектов  
   int     sub_window=-1,      // индекс окна
   int     type=-1             // ENUM_OBJECT (тип объекта для удаления)
   );
 

Le travail du styliste défie également toute explication.

est écrit dans l'aide

Exceptions au formatage interlinéaire

Les règles de stylisme ci-dessus ne s'appliquent pas dans certains cas. Cela permet de s'assurer que l'alignement de l'auteur n'est pas compromis sur les lignes adjacentes. Le styliste reconnaît l'interligne sur la ligne adjacente pour les mots-clés et caractères suivants :

  • "//" - "C"-caractères ;
  • "{" - crochet gauche ;
  • "}" - crochet droit ;
  • "retour" - opérateur "retour" ;
  • "supprimer" - "supprimer" opérateur ;
  • "=" - symbole d'égalité ;
  • ":" - deux points ;
  • "." - point final.



Le styliste régit toujours le code comme il le souhaite.....

 
Vladimir Pastushak:
1150 vinda 8.1 pro 64x

Le mode démo du courtier permet de négocier 719 instruments, dont 650 sont désactivés.

Lorsque j'indique "montrer tout" dans l'aperçu du marché après avoir chargé les 719, le terminal se ralentit et freesit ... (il y a un délai entre le clic de la commande ou la frappe du clavier) et son exécution de 1 à 4 secondes ...
Nous y travaillons, nous travaillons à l'accélération de nombreux instruments actifs. Indiquez le nom du serveur commercial, s'il vous plaît.


Le code écrit pour mt4 et transféré presque inchangé à mt5 est des dizaines de fois plus lent dans mt5.

Prouvez-le techniquement, s'il vous plaît.

Vous pouvez dire tout de suite que vous êtes directement trompés.


Lorsque vous passez du forex aux futures, les fenêtres précédemment ouvertes sont suspendues et attendent la mise à jour (théoriquement, elles devraient prendre le premier symbole des futures et l'afficher ou simplement le fermer, mais pas être suspendues en attendant la mise à jour).

Ne confondez pas votre "théoriquement" avec votre "toujours". Si vous êtes passé à un autre compte où votre ancien ensemble d'instruments n'est pas disponible, la meilleure stratégie consiste à vous laisser décider vous-même de ce que vous devez faire et de ce que vous devez changer.

Il ne s'agit ni d'une erreur ni d'un problème.


L'opération avec "Market Watch" n'est pas du tout réfléchie ...

Si vous supprimez un symbole avec la touche Del, la fenêtre devient inactive et vous devez activer la fenêtre au préalable pour supprimer à nouveau le symbole avec la touche del ...
Il s'agit d'un problème d'interface mineur, mais nous allons le résoudre.


Manipulation extrêmement malvenue de la vitesse des instruments dans Market Watch ...

Spécifier spécifiquement ce qui n'est pas assez rapide ?

Il existe une structuration des outils, des filtres, un tri intelligent et le masquage des outils périmés.


Pour µl5

Dans µl4 vous avez ajouté ObjectsDeleteAll(0, "Prefix") ; supprimer par préfixe, mais dans mt5 vous avez oublié ?
Cette fonction est apparue à l'origine dans MQL5 il y a de nombreuses années.
 
Vladimir Pastushak:

Le travail du styliste défie également toute explication.

est écrit dans l'aide

Exceptions au formatage interlinéaire

Les règles de substitution du styliste ci-dessus ne s'appliquent pas dans certains cas.


Le styliste continue à régir le code comme il l'entend.....

La description des règles de stylisme ne peut tenir en quelques lignes de texte fictionnel.

Il le formate de la façon dont nous voulons qu'il le fasse.

 

Personnellement, la seule chose qui me manque pour le moment, ce sont les pointeurs vers un tableau.

Plus précisément, dans la fonction intOnCalculate(), nous obtenons des références à des tableaux, mais nous ne pouvons pas les enregistrer. Au lieu d'enregistrer les pointeurs et de les utiliser dans le code, nous devons d'abord copier les séries chronologiques dans des tableaux internes et seulement ensuite utiliser les pointeurs vers ces classes.

Je pense qu'il serait raisonnable de créer la fonction OnCalculate(), qui reçoit des pointeurs vers les objets timeseries de la bibliothèque standard.

 

Je lis, tout le monde écrit, et je ne suis pas trop paresseux pour le faire.

Pour évaluer la vitesse du 5-Rka, il faut d'abord savoir combien de bits d'ordinateur, combien de mémoire et ainsi de suite.

J'aime toujours tout. Il y a, bien sûr, des nuances, mais il s'agit essentiellement de la même programmation. 4-rka n'est pas non plus un cadeau de certains points de vue....

 
Renat Fatkhullin:

La description des règles par un styliste ne peut être résumée en quelques lignes de fiction.

Il s'agit de formats tels que nous les avons établis.

Sur le styler :

Je veux voir le code tel que je l'ai "corrigé".

   ENUM_OBJECT   GetTYPE(string name)              { return(ENUM_OBJECT)GetObjectInteger(name,OBJPROP_TYPE);} // Тип обьекта
   datetime      GetCREATETIME(string name)        { return GetObjectInteger(name,OBJPROP_CREATETIME);} // Время создания объекта 
   int  GetCOLOR(string name)                      { return GetObjectInteger(name,OBJPROP_COLOR);} // Цвет
   int  GetSTYLE(string name)                      { return GetObjectInteger(name,OBJPROP_STYLE);} // Стиль
   int  GetWIDTH(string name)                      { return GetObjectInteger(name,OBJPROP_WIDTH);} // Толщина линии
   bool GetBACK(string name)                       { return GetObjectInteger(name,OBJPROP_BACK);} // Объект на заднем плане
   int  GetZORDER(string name)                     { return GetObjectInteger(name,OBJPROP_ZORDER);    } // Приоритет графического объекта на получение события нажатия мышки на графике 

Coiffure :

   ENUM_OBJECT   GetTYPE(string name) { return(ENUM_OBJECT)GetObjectInteger(name,OBJPROP_TYPE);} // Тип обьекта
   datetime      GetCREATETIME(string name) { return GetObjectInteger(name,OBJPROP_CREATETIME);} // Время создания объекта 
   int  GetCOLOR(string name)                      { return GetObjectInteger(name,OBJPROP_COLOR);} // Цвет
   int  GetSTYLE(string name)                      { return GetObjectInteger(name,OBJPROP_STYLE);} // Стиль
   int  GetWIDTH(string name)                      { return GetObjectInteger(name,OBJPROP_WIDTH);} // Толщина линии
   bool GetBACK(string name) { return GetObjectInteger(name,OBJPROP_BACK);} // Объект на заднем плане
   int  GetZORDER(string name)                     { return GetObjectInteger(name,OBJPROP_ZORDER);    } // Приоритет графического объекта на получение события нажатия мышки на графике

Pourquoi certaines parties du code sont-elles omises et d'autres intégrées ? Syntaxiquement, chaque ligne est la même.....