Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
J'ai créé mon Expert Advisor dans l'Assistant. Je ne connais pas très bien mql. Pourriez-vous m'expliquer ce qu'il faut faire en prenant l'exemple des enveloppes ?
La classe CSignalEnvelopes ne dispose pas d'un tel modèle de marché.
Conclusion : Nous devons améliorer le cours (ou écrire notre propre cours).
2011.10.06 23:00:34 Exécuteur Solaris EURUSDm,M1 : ne peut pas appeler la fonction 'InfoOfTrading' de la dll 'Solaris.dll' (erreur 127)
Quelle est la différence entre l'appel de fonctions depuis une dll dans MT4 et MT5 ? Je compile une dll, elle fonctionne bien dans MT5, mais dans MT4 elle génère une erreur :
2011.10.06 23:00:34 Exécutant Solaris EURUSDm,M1 : ne peut pas appeler la fonction 'InfoOfTrading' de la dll 'Solaris.dll' (erreur 127)
Donnez-moi une description du prototype de fonction, s'il vous plaît. Vous avez probablement utilisé le modèle _stdcall pour MT5.
MT5 dispose d'un mécanisme plus souple pour lier les noms de fonctions DLL - il prend automatiquement en charge à la fois _stdcall (plus avancé avec la décoration des noms) et _cdecl (ancienne méthode classique). MetaTrader 4 ne supporte que les appels _cdecl.
Avez-vous lu l'article"Comment écrire une DLL pour MQL5 et partager des données en 10 minutes ?" Il explique en détail comment appeler les fonctions DLL.
Veuillez fournir une description du prototype de fonction, s'il vous plaît. Très probablement, pour MT5, vous avez utilisé la conception _stdcall.
MT5 dispose d'un mécanisme plus souple pour lier les noms de fonctions DLL - il prend automatiquement en charge à la fois _stdcall (plus avancé avec la décoration des noms) et _cdecl (ancienne méthode classique). MetaTrader 4 ne supporte que les appels _cdecl.
Lire l'article"Comment écrire une DLL pour MQL5 et échanger des données en 10 minutes ?"Vous y trouverez une description détaillée des appels de fonctions DLL.
J'ai essayé de le déclarer comme ça :
Et donc :
au lieu de l'ancien :
Mais maintenant une erreur différente :
2011.10.07 01:35:05 Exécuteur Solaris EURUSDm,M1 : appel de la fonction 'InfoOfTrading' depuis la dll 'Solaris.dll' erreur critiqueJ'ai lu l'article.
Dans les paramètres du projet, le mode d'appel est explicitement spécifié :
Et dans MT5, cela fonctionne toujours sans erreur.
En général, les signaux sont décrits dans l'aide exactement de la manière dont vous en avez besoin. Vous pouvez le voir ici. L'image montre les paramètres de l'indicateur CCI. Par conséquent, il est fort probable que votre Conseiller Expert ne sera pas basé uniquement sur les signaux de l'indicateur Enveloppes. Il y a aussi l'ICC.
Bien, désolé pour ça. J'ai posté la mauvaise photo. Mais ça ne change rien à l'affaire. Voici une photo de l'EE sur les enveloppes uniquement.
Que dois-je faire ? Comment puis-je le réparer ?
A propos, dans l'exemple surs de la livraison MT4 standard, l'appel est effectué via __stdcall :
et cela fonctionne bien.
A propos, dans l'exemple surs de la livraison standard MT4 l'appel via __stdcall :
et cela fonctionne bien.
Dans l'exemple MT4 :
MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
и имена экспортируемых функций явно описываются через *.def файл:
LIBRARY ExpertSample
EXPORTS GetIntValue
GetDoubleValue
GetStringValue
GetArrayItemValue
SetArrayItemValue
GetRatesItemValue
SortStringArray
ProcessStringArray
stdcall semble être supporté. Je ne suis pas sûr qu'il soit correct de décrire le passage des paramètres par & pour les quatre.
L'exemple MT4 :
MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
и имена экспортируемых функций явно описываются через *.def файл:
LIBRARY ExpertSample
EXPORTS GetIntValue
GetDoubleValue
GetStringValue
GetArrayItemValue
SetArrayItemValue
GetRatesItemValue
SortStringArray
ProcessStringArray
stdcall s'avère être supporté. Je ne suis pas sûr qu'il soit correct de décrire le passage des paramètres via & pour les quatre.
Je suis complètement désappris en deux ans avec 4. :)
1. il s'avère qu'une variable passée par référence ne peut pas être écrite dans une dll. Vous devez utiliser un tableau pour cela.
2. et il est obligatoire d'utiliser le fichier *.def.
Voici en fait 2 différences de travail avec les dlls de 4 et 5 que j'ai découvertes, il y en a peut-être d'autres.