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éé une DLL en Delphi, je l'appelle depuis MT4. Tout fonctionne sauf les paramètres simples passés par référence. Dans Delphi, déclaré comme suit :
procedure Test2(var i : integer) ; stdcall ;
begin
if addr(i) = nil then ShowMessage('What the hell?') ;
end ;
stop to call it as
#import "DLL1.dll"
void Test2(int& i) ;
J'appelle
int init() {
int x = 5 ;
Test2(x) ;
return(x) ;
}
quand on appelle, une référence à la variable integer devrait être dans la pile, mais null est là
alors comment passer un paramètre int par référence ?
Lors du passage de tableaux, la valeur du tableau est passée par référence
en utilisant
MetaEditor 4.00 build 183
MetaTrader 4.00 build 186
une autre question : si je passe une chaîne de caractères comme référence, quelle est la taille du tampon de la chaîne de caractères ?
une autre question :
Si je passe une chaîne de caractères comme résultat de la fonction, où la zone de mémoire pour la chaîne de caractères doit-elle être allouée ? Dois-je passer un pointeur vers une variable globale dans la DLL ? Dans ce cas, puis-je être sûr que la DLL ne sera pas appelée à partir de différents threads simultanément dans n'importe quel mode de metatrader ?
Merci d'avance
au début de la journée définir deux ordres en attente
Une fois que l'un (n'importe lequel) s'est déclenché - le second est supprimé
Cinq minutes avant la fermeture de la barre (disons une quotidienne) pour fermer l'ordre déclenché (s'il n'a pas été fermé par SL ou TP)
Si aucun ordre en attente ne s'est déclenché, cinq minutes avant la fermeture de la barre supprimer les deux
Merci beaucoup
2) Si je passe la chaîne de caractères comme résultat de la fonction, où la zone de mémoire pour la chaîne de caractères doit-elle être allouée ? Dois-je passer un pointeur vers une variable globale dans la DLL ? Dans ce cas, je peux être sûr que la DLL ne sera pas appelée depuis différents threads simultanément dans n'importe quel mode du metatrader ?
Merci d'avance
Quand l'un (quelconque) est déclenché - le second est supprimé
Cinq minutes avant la fermeture de la barre (disons une quotidienne) pour fermer l'ordre déclenché (s'il n'a pas été fermé par SL ou TP)
Si aucun ordre en attente n'est déclenché, cinq minutes avant la fermeture de la barre les supprimer tous les deux
Merci d'avance
Vous placez des ordres en suspens au bon moment (c'est facile). Et vous commencez à vérifier les commandes. Dès qu'un ordre d'achat ou de vente apparaît, vous travaillez en supprimant l'ordre en attente (encore plus facile). Et puis, au moment opportun, travaillez à la clôture de tous les ordres (c'est facile).
в начале дня устанавливаем два отложенных ордера
После того как один(любой) сработал - второй удаляется
За пять минут до закрытия бара(допустим дневного) закрыть сработавший (если он не был закрыт по SL или TP)
Если ни один отложенный ордер не соработал то за пять минут до закрытия бара удаляем их обоих
Заранее спасибо
C'est ainsi que vous le mettez en œuvre, vous placez des ordres en attente au bon moment (c'est facile). Et puis vous commencez à vérifier les commandes. Dès qu'un ordre d'achat ou de vente apparaît, vous travaillez en supprimant l'ordre en attente (c'est encore plus facile). Et ensuite, au bon moment, travaillez pour clôturer tous les ordres (c'est très facile).
J'ai demandé un code fonctionnel (peut-être que quelqu'un l'a implémenté).
Tout ce que j'ai fait n'a pas fonctionné... Le processus de suppression d'odrer est en quelque sorte confus.
Une autre question : parfois le prix se fige (pas de ticks) pendant quelques minutes, c'est-à-dire que nous ne pouvons pas fermer un ordre car le corps int start() n'est pas exécuté, bien que des ticks soient reçus pour d'autres symboles, est-il possible de passer la valeur Curetime de n'importe quel symbole avec des ticks ?
Pour faire simple, la valeur de Curetime ne gèle pratiquement pas.
Et que fait ce fragment de code ?
Supprime les deux ordres en attente qui n'ont pas encore été déclenchés.