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
Je n'ai pas demandé à quelqu'un en particulier.
Mais vous avez dû avoir raison de le prendre personnellement.
Je ne peux pas vous traiter d'idiot, mais vous êtes sourd, c'est sûr.
Vous n'entendez pas les autres. Je ne parle pas de mes remarques, mais des conseils qui vous ont été donnés.
Avez-vous déjà écrit des programmes interopérables ?
Ce que Ant_TL demande est "l'interopérabilité", mais elle ne peut pas être implémentée dans MQL.
Avez-vous déjà écrit un programme interopérable ?
Ce que Ant_TL demande est "l'interopérabilité", mais ce n'est pas faisable dans MQL.
Ce n'est pas difficile à mettre en œuvre. Et il existe une solution de principe. Trop paresseux pour lire davantage
Il n'est pas difficile à mettre en œuvre. Et il y a une solution. Trop paresseux pour lire davantage
Vous ne serez pas en mesure d'exécuter des opérations avec des ordres et de vous assurer que l'environnement n'est pas affecté.
Cela a déjà été dit à propos de GetLastError(), vous ne pourrez pas restaurer le code qui devrait être retournépar la fonction GetLastError().
Vous ne pourrez pas exécuter des opérations avec des ordres et être sûr que l'environnement ne sera pas affecté.
Cela a déjà été dit à propos de GetLastError(), vous ne pourrez pas récupérer le code que la fonction GetLastError() aurait dû retourner.
Vous pouvez si vous voulez, il aura juste sa propre fonction ( je veux direGetLastError())
Ceci peut ressembler à une solution - OrderSelect() - Enveloppeur de MySelect() à utiliser dans les fonctions qui recherchent des commandes par index.
int last_select=0 ; // placez-le quelque part avant init et start
// ...... code de programme
bool MySelect(int i,int mode=MODE_TRADES){ // sélection de l'ordre - renvoie True si l'ordre est sélectionné et appartient à l'EA, False sinon
if(OrderSelect(i,SELECT_BY_POS,mode)){
last_select=OrderTicket() ;
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
return(true) ;
else
return(false) ;
}
return(false) ;
}
bool TickSelect(int tick){ // Sélection de l'ordre directement par tick
if(OrderSelect(tick,SELECT_BY_TICKET))
last_select=tick ;
else
return(false) ;
return(true) ;
}
void SomeFunc(){ // Un modèle de fonction qui peut casser la sélection des ordres et, par conséquent, casser la logique du programme, si la sélection actuelle des ordres n'est pas préservée
int tick=last_select ;
// ... effectuer les actions requises
if(tick>0)
TickSelect(tick) ;
}
Il ne le peut pas, sauf si vous modifiez vous-même cet état dans le programme.
On suppose que l'état de la commande est passé de MODE_TRADES à MODE_HISTOIRE. Et votre conseiller expert n'a rien fait avec l'ordre. Est-ce que c'est le même ordre ou est-ce qu'il est différent ?
On a supposé que le statut de l'ordre est passé de MODE_TRADES à MODE_HISTOIRE. Et votre EA n'a rien fait avec l'ordre. Est-ce que c'est le même ordre ou est-ce qu'il est différent ?
C'est le même ordre
Ceci peut ressembler à une solution - OrderSelect() - Enveloppeur de MySelect() à utiliser dans les fonctions qui recherchent des commandes par index.
int last_select=0 ; // placez-le quelque part avant init et start
// ...... code de programme
bool MySelect(int i,int mode=MODE_TRADES){ // Sélection de l'ordre dont nous avons besoin - renvoie True si l'ordre a été sélectionné et appartient au Conseiller Expert ; sinon, False
if(OrderSelect(i,SELECT_BY_POS,mode)){
last_select=OrderTicket() ;
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
retour (vrai) ;
sinon
retour (faux) ;
}
retour (faux) ;
}
bool TickSelect(int tick){ // Ordonner la sélection directement par tick
if(OrderSelect(tick,SELECT_BY_TICKET))
last_select=tick ;
sinon
retour (faux) ;
retour (vrai) ;
}
void SomeFunc(){ // Un modèle de fonction qui peut interrompre la sélection de la commande et donc la logique du programme, si la sélection de la commande en cours n'est pas prise en charge.
int tick=last_select ;
// ... effectuer l'action requise
si(tick>0)
TickSelect(tick) ;
}