Développement d'une bibliothèque de fonctions API pour MetaTrader 4 - page 6

 
<br / translate="no">Notez également que Omega "ne connaît pas" les définitions du fichier Mforex.h. C'est-à-dire que, par exemple, lorsque vous appelez la fonction d'ouverture de position, vous devez spécifier le code d'opération pour, disons, Vendre - 1, au lieu de OP_SELL, etc. Pour plus de détails, consultez la documentation DevKit, qui décrit la manière dont omega fonctionne avec les bibliothèques externes.
Bonne chance !


J'ai la documentation pour DevKit, mais je n'y ai rien trouvé, l'anglais est une forêt sombre.
Mais il y a un extrait de mforex.n document,
Commandes
enum { OP_BUY=0,
OP_SELL,
OP_BUY_LIMIT,
OP_SELL_LIMIT,
OP_BUY_STOP,
OP_SELL_STOP,
OP_BALANCE,
OP_CREDIT
} ;

Cela signifie-t-il que si
OP_BUY=0 alors
OP_SELL=1 et
OP_BUY_LIMIT=2 etc. ?

Si c'est le cas, ce n'est pas difficile.

Qu'en est-il du nom de l'outil ?
 
<br / translate="no">Qu'en est-il du nom de l'outil ?

Vous avez pratiquement tout compris par vous-même. Le nom de l'outil doit être entre guillemets, car il est transmis à MT4 sans modification. Lorsque j'ai créé la bibliothèque MFOREX, je voulais initialement numéroter toutes les paires disponibles de la même manière, mais il s'est avéré que les méthodes standard ne peuvent pas fournir une liste des instruments négociés ! Ainsi, nous écrivons simplement "USDCHF" ou "GBPUSD".
Vous pouvez également transmettre le nom de la paire dans une variable de type chaîne.
Bonne chance !
 
Merci beaucoup, le problème est moins important avec l'Omega jusqu'à présent.
J'ai trouvé un plus gros problème :
Le conseiller expert dans MT4 est cassé, c'est-à-dire qu'il ne fonctionne pas tout seul, il est gris dans la liste, que faire ?
Je l'ai téléchargé à nouveau et il n'a pas changé.

Je l'ai téléchargé sur HELP :

Après avoir terminé le développement, nous devons compiler le conseiller expert. Pour ce faire, exécutez la commande du menu "File - Compile" dans l'éditeur EA, appuyez sur F9 ou cliquez sur le bouton de la barre d'outils. Une fois la compilation réussie, un fichier exécutable du programme portant l'extension *.EX4 sera créé et placé automatiquement dans le dossier /EXPERTS. La liste des Expert Advisors compilés peut être consultée dans la fenêtre "Navigator - Expert Advisors" du terminal client. Si la compilation ne réussit pas, l'icône du conseiller expert sera grisée. Cela signifie qu'il ne peut pas être utilisé.
 
Une fois la compilation terminée, un fichier exécutable portant l'extension *.EX4 est créé et placé automatiquement dans le dossier /EXPERTS. La liste des EA compilées peut être consultée dans la fenêtre Navigator-Advisors du terminal client. Si la compilation ne réussit pas, l'icône du conseiller expert sera grisée. Cela signifie qu'il ne peut pas être utilisé. <br / translate="no">

Vous avez tort. Le conseiller expert est entièrement viable. La couleur grise signifie également qu'il n'y a pas de fichier source *.MQ4. La plupart des EA commerciales sont distribuées de cette manière sous forme compilée. Essayez de supprimer la source de n'importe quel Expert Advisor et redémarrez le terminal - l'Expert Advisor deviendra gris.
De plus, je conseille de remplacer le fichier Mem.dll par un nouveau. J'ai converti ce dernier à la nouvelle version du terminal de trading 197. Mem.dll a déjà été modifié pour la nouvelle version dans les fichiers sur mon site :
http://www.min2006.ru
Bonne chance !
 
Bonjour, j'ai une question à vous poser :
si je veux entrer dans le marché par le marché, dois-je encore spécifier un prix ?
 
Bonjour, j'ai donc cette question:<br/ translate="no"> si je veux entrer dans le marché par le marché, dois-je encore spécifier un prix ?

Bonjour, c'est une procédure standard. Tous les conseillers-experts fonctionnent de cette manière : vous obtenez d'abord le prix actuel (fonction TikKot), puis vous formez un nouvel ordre à ce prix (NewPos). Si vous ouvrez un ordre d'achat, vous prenez le cours vendeur, et si vous vendez un ordre, vous prenez le cours acheteur.
Regardez l'exemple sur mon site en C++ ou Delphi. Vous y trouverez des variantes d'ouverture de poste.
Bonne chance !
 
Donc hier, j'ai fait tourner DLL dans Omega toute la journée avec différentes fonctions et j'ai découvert qu'Omega se bloque constamment à cause de DLL. La fenêtre du numéro d'ordinateur s'affiche et même quelques-uns, je ne sais pas si c'est un problème uniquement dans la démo ou quoi ? La fenêtre de chiffres ne me dérange pas vraiment, mais le fait qu'Omega s'accroche rend le travail impossible...
 
Donc hier, j'ai fait tourner DLL dans Omega toute la journée avec différentes fonctions et j'ai découvert que Omega se bloque constamment à cause de DLL. La fenêtre du numéro d'ordinateur s'affiche et même quelques-uns, je ne sais pas si c'est un problème uniquement dans la démo ou quoi ? Ainsi, la fenêtre avec le numéro ne me dérange pas vraiment, mais l'oméga accroché rend le travail impossible... <br/ translate="no">

Je ne peux répondre à rien de précis. Je n'ai pas testé la bibliothèque avec Omega. Apparemment, le problème est un appel de fonction incorrect de la bibliothèque. Avez-vous réservé de la mémoire pour les tableaux de données retournés ? Je peux également vous recommander d'examiner attentivement les journaux de MT4 et de la bibliothèque elle-même (elle crée le fichier Protokol.dat lorsqu'elle fonctionne).
La fenêtre avec le numéro de l'ordinateur ne s'affiche que dans la version de démonstration. Bonne chance !
 
Avez-vous réservé de la mémoire pour les ensembles de données retournés ? <br / translate="no">


Comment cela se fait-il ?
 
<br/ translate="no">Comment cela se fait-il ?

C'est une procédure standard pour tout langage de programmation. Regardez dans la documentation d'Omega. Vous devez déclarer un tableau pour son utilisation ultérieure. Par exemple, pour obtenir l'historique des devis, il faut 2000 à 5000 éléments de tableau. Pour le tableau, avant l'opération, nous devons utiliser Omega pour allouer l'espace nécessaire en mémoire.
Avez-vous vu ce qu'il y a dans les journaux ?
Raison: