Souhaits pour le MQL5 - page 90

 

Maintenant, vous ne pouvez pas mettre un filtre sur les positions uniquement pour un certain symbole. C'est-à-dire que vous devez passer par toutes les commandes.

Cela ralentit l'EA et s'il y a beaucoup de graphiques sur lesquels l'EA travaille, il peut considérablement ralentir et charger le CPU.

Например такой код

for( Ord = 0; Ord < OrdersTotal(); Ord++) {
   OrderSelect( Ord, SELECT_BY_POS);
   if(Symbol() == OrderSymbol() && StringFind(OrderComment(), "MA-Price") != -1) {
      IsOrdFound = true;
      break;
   }
}
А хотелось бы фунцию для установки фильтра по символу

OrderSelectSymbol(Symbol());

for( Ord = 0; Ord < OrdersTotal(); Ord++) {
   OrderSelect( Ord, SELECT_BY_POS);
   if(StringFind(OrderComment(), "My comment") != -1) {
      IsOrdFound = true;
      break;
   }
}



Или если теперь будет объектный язык, то что то типа такого варианта:

OpenedOrdGroup ordGroup = new OpenedOrdGroup(Symbol());

for( ord = 0; ord < ordGroup. count; ord++) {
  if( findSubstr( ordGroup. orders[ ord]. comment, "My comment") != -1) {
     isOrdFound = true;
     break;
  }
}
 
stringo писал(а) >>

Il convient toutefois de mentionner que les indicateurs personnalisés peuvent effectuer des tâches purement informatiques et n'ont pas accès aux fenêtres ou aux objets graphiques.

Et... est-il possible de faire fonctionner un tel indicateur "computationnel" en dehors de toutes les fenêtres ? (par exemple, pour surveiller IsExpertEnabled et des choses comme ça et dire à qui c'est censé être).

Peut-il dessiner ? Peut-il faire une boucle ?

Peut-il appeler/décharger des EA, des scripts, définir/désigner des indicateurs par défaut et personnalisés ?

 
SK. писал(а) >>

Et... un tel indicateur "computationnel" peut-il être exécuté en dehors de toutes les fenêtres ? (par exemple, pour surveiller IsExpertEnabled et autres et faire un rapport à qui en a besoin)

Peut-il dessiner ? Peut-il faire une boucle ?

Peut-il appeler/désappeler des EA, des scripts, définir/désigner des indicateurs par défaut et personnalisés ?

Pour toutes ces questions - non, malheureusement.

Je dois avoir une fenêtre graphique séparée et y attacher un Expert Advisor "calculateur". Le conseiller expert peut fonctionner sur une minuterie, il n'a donc pas besoin d'être mis en boucle.

 

Merci, ça clarifie certaines choses.

Y a-t-il un moyen d'exécuter quelque chose qui ne soit pas lié à une fenêtre ? (pour les besoins généraux).

Et y a-t-il un moyen d'appeler quelque chose d'autre à partir de ce "quelque chose" ? (un expert en minuterie, par exemple)

 
SK. писал(а) >>

Merci, ça clarifie certaines choses.

Y a-t-il un moyen d'exécuter quelque chose qui ne soit pas lié à une fenêtre ? (pour les besoins généraux).

Et y a-t-il un moyen d'appeler quelque chose d'autre à partir de ce "quelque chose" ? (un expert en minuterie, par exemple).

Il n'y aura rien qui ne soit pas lié à une fenêtre.

Je ne peux pas encore répondre à cette question.

Vous pouvez envoyer un événement personnalisé à n'importe quel graphique. Le conseiller expert qui se trouve sur ce graphique peut gérer les événements entrants.

 
stringo писал(а) >>

Rien de ce qui n'est pas lié à la fenêtre ne va se produire.

Je ne peux pas encore répondre à cette question.

Vous pouvez envoyer un événement personnalisé à n'importe quel graphique. En se basant sur ce graphique, le conseiller expert peut gérer les événements entrants.

Merci pour la réponse.

Mais nous avons besoin d'un conseiller expert sur ce graphique. Ces EA ne seront pas toujours synchronisés (sans fonctions spéciales - jamais).

Dans mon cas, je parle d'un programme de service (d'application) personnalisé. Ces tâches comprennent, par exemple, l'analyse technique, l'analyse des chandeliers et les algorithmes de traitement des positions personnalisées. Par exemple, si vous appuyez sur le bouton (dans le menu système), l'écran actuel affiche l'analyse en chandelier. Appuyez sur un autre - une fenêtre s'est ouverte dans laquelle vous pouvez définir les préférences SL et TP pour la fenêtre actuelle. Appuyez sur le troisième bouton - les stops sont ouverts sur toutes les positions (lorsqu'ils ne sont pas disponibles, bien avant la nouvelle) conformément aux préférences et aux paramètres actuels du courtage. Un autre bouton - le couloir de distance minimale a été dessiné... Et ainsi de suite. Et tout est interconnecté par les fonds disponibles, par la probabilité de succès de la transaction selon les différents instruments financiers, avec leurs préférences, priorités, analyse intégrale, etc.

Cette tâche dans son ensemble ne nécessite pas de nombreuses copies d'un Expert Advisor dans toutes les fenêtres. Un tel programme pourrait être "un pour tous, nous en paierons le prix". Ça pourrait l'être. Pour l'instant, je ne connais pas les capacités de MT5.

 
Réaliser l'interaction avec la base de données MySql
 
stringo писал(а) >>

Rien de ce qui n'est pas lié à la fenêtre ne va se produire.

Je ne peux pas encore répondre à cette question.

Vous pouvez envoyer un événement personnalisé à n'importe quel graphique. Le conseiller expert qui se trouve sur ce graphique peut gérer les événements entrants.

1. C'est dommage. // A propos du prog. untethered.

Comme compromis raisonnablement (imha) bon marché en termes d'implémentation : peut-être devriez-vous faire une sorte de graphique "null",

sur laquelle vous pouvez accrocher des calculatrices ? Et de préférence un nombre illimité de ces graphiques, car à ce stade, je soupçonne un héritage de MT.

parce que je soupçonne ici l'héritage de la contrainte MT4 "un graphique - un conseiller expert"... :)

2. À propos des événements. Des événements personnalisés - c'est génial. Merci beaucoup pour cela. :)

J'ai été heureux de voir Tetris avec l'événement OnTimer et, en général, l'apparition de l'organisation événementielle du lancement.

fonctions. Et là, je voudrais aller plus lentement et plus en détail :)

Quels sont les autres événements "standard" existants (événements de la plate-forme) à envoyer aux applications de l'utilisateur ?

Par exemple, j'aimerais avoir quelque chose comme OnPositionIsClosed(int ticket) - ne pas avoir à chercher dans toutes les piles de

des ordres ouverts à la recherche d'ordres qui viennent d'être fermés par stop. Je pense que même en 4

Outre les fonctions standard Init()-Deinit()-Start(), il est très facile d'ajouter OrderStopped() - dans tous les cas, le terminal enregistre les données suivantes

Le terminal surveille toujours la clôture des commandes pour afficher les changements de la situation dans ses fenêtres. Eh bien, pourquoi les programmes utilisateurs

les informer ? Et vous recevriez beaucoup de gratitude de la part des utilisateurs... - Je le garantis. :)

Idéalement, il serait formidable de disposer (dans MT5) d'un gestionnaire d'événements à l'échelle de la plateforme, avec la possibilité de

pour s'abonner à des messages concernant un événement, et aussi pour initier

pour lancer des événements d'usage général diffusés à toutes les applications souscrites.

 

Chers développeurs !

Nous devons simplement ajouter une option pour un ordre lors de la visualisation de MODE_HISTORY - comment l'ordre est fermé, par exemple :

- StopLoss ;

-TakeProfit ;

- Par marché, etc.

Certaines banques utilisant la plateforme MQ4 ferment tous les ordres et en ouvrent de nouveaux lorsqu'ils dépassent 0 (ce qui n'est pas nouveau en soi).

Mais dans ce cas, le conseiller expert doit faire beaucoup d'efforts pour savoir dans le programme comment un ordre a été fermé, et le plus important, c'est qu'il y a beaucoup de code inutile.

Plus il y a de code, moins il est fiable !

.

P.S. Ce sujet a peut-être déjà été abordé, mais je ne l'ai pas vu et j'ai décidé de partager mes préoccupations.

 
VBAG писал(а) >>

Certaines banques qui utilisent la plateforme MQ4 ferment tous les ordres et en ouvrent de nouveaux lorsqu'ils passent par 0 (ce qui n'est pas nouveau en soi).

Mais dans ce cas, l'Expert Advisor doit faire beaucoup d'efforts pour savoir comment l'ordre a été fermé dans le programme, et surtout, beaucoup de code inutile apparaît.

Et, ce qui est plus important, il y a beaucoup de code inutile.

Et, ce qui est pire, il n'existe pas de méthode d'identification de l'ordre par l'ETAT sans ambiguïté dans cette situation. Par exemple, dans ce cas, la société de courtage, sans y réfléchir à deux fois, attribue de nouveaux billets qui n'ont aucun lien avec les billets initiaux.

avec des initiales, juste selon une liste :) Nous devons déployer beaucoup d'efforts pour suivre l'historique de chaque commande.

Mais dans MT5, le travail avec les ordres semble avoir été radicalement modifié (voir MetaTrader 5 Client Terminal),

et comment exactement - il semble qu'il s'agisse soit d'un terrible secret, soit d'une grande surprise, sur laquelle il n'est pas tout à fait approprié de poser des questions - il est plus facile d'attendre le nouveau terminal que d'obtenir des réponses intelligibles.

de la part des développeurs. :) Cependant, ce sujet porte sur des suggestions, et j'espère que les développeurs s'intéressent à la racine du problème, plutôt qu'à une manière formelle de mettre en œuvre les échanges.

Je suis d'accord avec eux à tous égards - ils ont besoin d'un bon service pour les programmeurs afin de travailler avec des postes ouverts - pausés.