Création d'une interface graphique pour les MQL en mode graphique. - page 15

 
Vladimir:
Je suis intéressé par "every tick" pour un EA multi-devises. Un graphique contient-il des événements tick provenant de plusieurs symboles ? Ou "chaque tick" a une signification différente de l'événement commun, qui est géré par la fonction OnTick et est décrit dans la référence comme "généré uniquement pour les Expert Advisors lorsqu'un nouveau tick est reçu pour le symbole, au graphique duquel l'EA est attaché" ?

Oui, ce n'est pas tout à fait ça. À l'époque, ils faisaient une boucle infinie, il n'y avait pas de OnTick, mais une fonction de démarrage.

int start()
{ 
    while(true)
    {
    // обработка
        Sleep(200);
    }
}
 
Alexey Volchanskiy:

Vous êtes vraiment incapable de répondre à des questions. La façon dont les conseillers communiquent ne m'intéresse pas. C'est tout, je ferme le fil, car il est inutile.

Consultez un psychiatre.) Il a besoin d'un mécanisme d'échange qu'il n'a pas demandé, il ne s'intéresse pas à la façon dont ils communiquent.
Je préfère que tu parles des filles... que tu les aies rencontrées, pleurées, ...... lui a donné du bortsch.

 
Yuriy Asaulenko:
Merde. J'ai d'abord posé des questions sur l'interface graphique - comment fonctionne-t-elle ? Il a répondu qu'il n'en a pas besoin. Il s'avère maintenant qu'il en a besoin, comme les conseillers experts, et qu'il a écrit à ce sujet une centaine de fois.
Jetez un coup d'œil à mon blog. On a déjà discuté de tout ça en privé, et on semble avoir tout compris.
Si vous voulez des réponses normales, posez des questions normales). Apprenez à les formuler).

Intéressé par l'échange que vous avez décrit à l'adresse https://www.mql5.com/ru/blogs/post/671000. Cela fonctionne pour moi aussi, mais je ne pense pas que l'échange de fichiers de commande texte, qui est "tout à fait adapté à l'organisation de systèmes intraday assez rapides", ne soit pas adapté à des fins de scalper. Une autre citation de votre blog "Dans ce cas, la DLL, au stade de la conception, peut être remplacée par un fichier swap, pour accélérer un disque RAM virtuel".

Je n'ai eu aucun problème avec les performances de l'échange de fichiers. Très rarement, 2 à 8 fois par an, il existe des situations de corruption de l'information, lorsqu'une nouvelle longueur de fichier a déjà été placée dans le tampon du système d'exploitation, mais que son contenu (chaîne de caractères pouvant atteindre plusieurs dizaines d'octets) dans ce tampon n'a pas encore été mis à jour. Sinon, je ne vois pas de différence entre le transfert de fichiers et toute autre solution, il a toujours besoin de RAM pour l'échange. La taille des fichiers d'échange est telle que le contrôleur de disque n'a pas besoin d'adresser les plaques magnétiques. Pour réduire encore cette fréquence, je ne supprime pas les fichiers de signaux, mais je les vide pour qu'ils aient une place permanente sur la plaque magnétique (cluster). Dites-moi, sur quoi vous basez-vous pour dire que le partage de fichiers n'est bon que pour la phase de développement ?

Et une dernière question. Sur chacun des terminaux, vous ouvrez au moins deux graphiques, ai-je raison ?

Je vois que pas plus d'un EA ne peut être attaché à un graphique et vous avez "Nous aurons besoin de deux EAs MT : le premier écrira les informations sur les ticks dans un fichier CSV pour être lu par le système, et le second recevra les informations du système et sera responsable des fonctions de trade".

Взаимодействие МТ со сторонним ПО
Взаимодействие МТ со сторонним ПО
  • 2016.05.08
  • Yuriy Asaulenko
  • www.mql5.com
Еще до начала работы на рынке мною была создана торговая система на Excel с небольшими кусками кода на VBA (Visual Basic for Application). Почему на Excel-VBA? - потому, что система несложная, и проще было на VBA. А возможности Excel позволяют свести программирование к минимуму. По мере развития доля VBA увеличивалась, и постепенно за Excel...
 
Alexey Volchanskiy:

Oui, ce n'est pas tout à fait ça. À l'époque, ils faisaient une boucle infinie, il n'y avait pas de OnTick, il y avait la fonction de démarrage...

Je crois que je comprends. Il ressort du code ci-dessus que la collecte des dernières citations est effectuée au maximum cinq fois par seconde(Sleep(200)). Est-ce la période minimale de tick multidevise considérée dans votre code ? S'ils viennent plus souvent, les ignorez-vous ? Ou bien cette valeur (200) est-elle différente maintenant, après 10 ans ?
 
Vladimir:
Je pense que je l'ai. Le code que vous avez cité suggère que la collecte des dernières citations est effectuée au maximum cinq fois par seconde(Sleep(200)). Est-ce la période minimale de tick multidevise considérée dans votre code ? S'ils viennent plus souvent, les ignorez-vous ? Ou bien cette valeur (200) est-elle différente maintenant, après 10 ans ?

La minuterie échantillonne maintenant à intervalles d'une seconde, en sautant le reste. 200 ms est en mémoire, c'était il y a longtemps. Il s'est avéré qu'il est souvent redondant, et pendant les tests et l'optimisation, il charge beaucoup le CPU.

 
Renat Fatkhullin:

Nous le ferons, surtout lorsque nous gèlerons les versions 32 bits en septembre et ne prendrons en charge que les versions 64 bits de la plate-forme.

Nous préparons maintenant une mise à niveau sérieuse du compilateur, en déplaçant certaines fonctions du système dans les programmes MQL5, ce qui améliorera considérablement l'optimiseur et accélérera le code résultant des programmes MQL5.

Nous publierons les benchmarks de performance complets pour la comparaison avec C++, ainsi que le code source, afin que chacun puisse les vérifier par lui-même.

Renat, vous pouvez ajouter un petit complément aux modifications : définir la propriété de style WS_CLIPCHILDREN pour les cadres de graphiques ou les fenêtres de graphiques. Cela permettra de placer n'importe quelle fenêtre enfant sur les cadres ou les fenêtres du graphique sans manipulations supplémentaires. Actuellement, sans cette propriété, une fenêtre parent (une fenêtre graphique ou un cadre graphique) dessine une fenêtre enfant à définir. Et lorsque vous définissez ce style pour la fenêtre parent, tout est rendu de manière très agréable.

Je suppose que cet ajout ne sera pas difficile à réaliser. Et en conjonction avec les callbacks, nous obtiendrons des possibilités très larges pour le développement d'add-ons pour МТ, sans entrer dans ses "entrailles". )))