Comment voyez-vous Metatrader X en 2030 ? - page 2

 
Igor Makanu:
...

il y aura un moyen d'échanger des données entre des EAs fonctionnant sur des graphiques différents

Je l'ai déjà mis en œuvre et cela fonctionne. Toute personne qui comprend ce que signifie l'héritage multiple devrait être capable de le faire. Sinon, c'est une honte ce qu'il sait.

 
Igor Makanu:

Toute fonction standard qui enverra un tableau d'octets aux variables globales du terminal (mais de préférence un tableau d'int, afin qu'il y ait moins de questions sur la façon de convertir) et, en conséquence, la fonction inverse qui permettra à ce tableau d'être lu dans un autre Expert Advisor.

Les variables globales ne sont pas suffisantes pour échanger des données - il y a un grand champ pour le nom de la variable et un petit champ pour les données, sous la forme d'un double, c'est le contraire qui est nécessaire ;)

SZZ : il y a beaucoup d'exemples sur le net pour analyser les graphes de décision, principalement grâce aux interfaces qui permettent d'obtenir une structure de code flexible, les interfaces sont partout, dans MQL non (

Je suis tout à fait d'accord. Les variables globales du terminal sont boiteuses. Mais vous devez sauvegarder les instances de classe, et non les tableaux, comme dans WCF. J'ai été vraiment choqué par cette fonctionnalité à mon époque. Au lieu de brouter un flux d'octets sur le réseau, je pouvais simplement envoyer l'instance de la classe, et tout était fait par .NET, et rapidement, si je l'envoyais en binaire.

Hmm, pendant que j'appuyais sur le clavier, j'ai eu l'idée de faire une libu comme celle-ci...

---

En ce qui concerne les graphes de décision et les interfaces, je n'en ai tout simplement pas rencontré, le monde de la programmation est immense ;))

 
Реter Konow:

Je l'ai déjà mis en œuvre et il fonctionne. Toute personne qui comprend ce que signifie l'héritage multiple devrait être capable de le faire. Sinon, ses connaissances sont sans valeur.

Et sans l'apparat bon marché ?

 
Реter Konow:

Je l'ai déjà mis en œuvre et il fonctionne.

и ?

Le KB a des solutions toutes faites depuis longtemps, avez-vous ajouté votre propre solution aussi ? ou juste... en passant ?

 
Igor Makanu:

и ?

le KB a des solutions toutes faites depuis longtemps, avez-vous ajouté votre propre solution aussi ? ou juste... en passant ?

à en juger par la mention d'héritage multiple, vide...

 
Alexey Volchanskiy:

comme dans WCF, les instances de classe

vous ne pouvez pas avoir une solution compliquée, il n'y aura pas d'utilisation de masse, tout le monde peut lire et écrire un tableau, si quelque chose de plus compliqué est nécessaire, il n'y aura pas de demande pour cela. Comme je l'ai écrit ci-dessus, KB a des solutions décentes pour l'échange de données, mais imho, GlobalArrayWrite(string name, int out[]) et GlobalArrayRead(string name , int &in[]) - c'est tout, plus besoin d'utilisateur

 
Alexey Volchanskiy:

Et sans la pompe et la circonstance ?

Ressources. Déclarez une union avec des tableaux de plusieurs types dans les deux programmes EA (ou indicateurs, ou EA et indicateur), que vous voulez placer sur différents graphiques. Dans chaque programme, vous écrivez l'adresse du côté opposé dans une variable de type chaîne (dossier, sous-dossier, nom du programme). Vous utilisez deux fonctions pour communiquer : la première consiste à lire le message, la seconde à l'écrire. Les fonctions sont appelées dans les deux programmes à la fréquence de la minuterie.

La fonctionnalité de chaque programme doit écrire toutes les données à transférer dans une variable de type chaîne. Ensuite, lafonction de passage de messagesera appelée à la fin de la fonction timer, qui stockera la chaîne collectée dans la ressource. Un autre programme sur une autre carte, à la période de temporisation suivante, appellera la fonction de lecture de la ressource située à l'adresse de l'autre programme et décompressera le message. Il peut ensuite composer son message au premier programme de la même manière et le transmettre, simplement en écrivant les données nécessaires dans sa ressource.

 
Alexey Volchanskiy:

Je me demandais, je négocie le forex depuis environ 13 ans, j'ai commencé avec MT4 en 2006. Je ne me suis intéressé à ce sujet que parce que ma petite amie de l'époque m'a demandé de l'aider à comprendre le terminal, et j'ai découvert avec bonheur un langage semblable au C, MQL4, et je suis devenu accro. C'est drôle de se souvenir, je travaillais en anglais dans le terminal et j'étais sûr que c'était un développement occidental. Quand j'ai découvert que les gars de Kazan l'avaient fait, j'ai eu une dissonance cognitive)).

Ainsi, 13 ans ont passé, je peux marquer plusieurs étapes dans le développement des terminaux MT*.

1. Le début du développement de MT5, je crois que c'était en 2009. Le développement de MT5 a commencé, je pense que c'était en 2009. À cette époque, je visitais le forum alp, je me souviens encore comment Renat l'a visité avec sa propagande, et j'avais l'habitude de soutenir que le système de compensation est mort commercialement sur le forex.

2. une étape très importante pour moi, début 2013, la sortie de la nouvelle build MT4 > 600. J'étais ravi, il y avait des structures, même des classes, de nouvelles définitions normales comme dans C++. Enfin, tous les bogues ont été corrigés, l'éditeur ne se bloque plus pendant le copier-coller, et d'autres bogues ont été corrigés également. Avant, j'écrivais toutes mes stratégies en C# via un pont vers le C++, et maintenant j'ai commencé à porter mon code vers MQL4, puisqu'il est devenu possible de travailler normalement au lieu de mélanger.

3. Je ne me souviens pas de l'année ici, peut-être est-ce 2016 ? Veuillez corriger. Mon idée était d'utiliser la version hedge de MT5, c'est pourquoi j'ai décidé de passer à MT5.

4. Je ne me souviens pas non plus de l'année, vers 2018 ? Compilateur unique et possibilité d'écrire un projet multiplateforme dans MT5. C'est comme ça que j'écris pour moi depuis. Lorsque j'offre cette possibilité à mes clients, 90 % d'entre eux l'acceptent immédiatement, et absolument tous ne sont même pas au courant. Pour le multiplateforme je recommande la libu MT4Orders de fxsaber, vous pouvez la trouver dans kodobase.

5. C'est un méli-mélo de choses, puisque MT5 est en constante évolution, c'est très agréable.

J'ai décrit grossièrement le développement de la plate-forme pendant 13 ans, mais que se passera-t-il dans 10 ans de plus ? Peut-être que certains fantasmes seront reflétés dans les développements futurs ;))

C'est une autre chose... Une fois, j'ai eu 10 copines qui m'ont supplié à genoux de trouver le terminal... Je leur ai répondu : "Honte à vous, je ne suis pas un homme libre, j'ai déjà 50 petites amies sous ma tutelle, je n'ai qu'un appartement de trois pièces à Saint-Pétersbourg, et je n'ai pas assez de temps à perdre - je dois pisser sur des Tchétchènes jour et nuit...".

Et MT l'est et le sera.

 
Igor Makanu:

и ?

Le KB a des solutions toutes faites depuis longtemps, avez-vous ajouté votre propre solution aussi ? ou juste... en passant ?

Alors pourquoi l'attendez-vous dans les années 30 ? Si c'est déjà là...
 
Igor Makanu:

Vous ne pouvez pas avoir une solution complexe, il n'y aura pas de masses, n'importe qui peut lire et écrire le tableau, si quelque chose de plus compliqué ne sera pas nécessaire. Comme je l'ai écrit ci-dessus, il y a de bonnes solutions pour l'échange de données dans KB, mais imho, GlobalArrayWrite(string name, int out[]) et GlobalArrayRead(string name , int &in[]) - c'est tout, l'utilisateur n'a pas besoin de

Regardez, même les opérations sur les fichiers sont disponibles depuis longtemps.

uintFileWriteStruct(
intfile_handle,//manipulateur de fichier
const void&struct_object,// référence à un objet
intsize=-1// taille pour l'écriture en octets
) ;


Il est beaucoup plus pratique de lire et d'écrire des structures ou des objets de classe que d'analyser un flux de types simples. Peut-être que je suis devenu paresseux avec l'âge ? Oui, je préfère faire plus de choses en tapant moins sur le clavier ;))