Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 148
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
Bonjour.
La fonction OrderSelect renvoie l'erreur 0 (ERR_NO_ERROR - La transaction commerciale a été réussie) ? ??
Comment éviter cette erreur ?
Je joins le code du programme et les écritures de journal.
Respectueusement. Shurkin.
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : supprimé
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : uninit reason 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : Ks : Str=#20552937 buy 1.00 GBPUSD at 1.55450 ; Tct 20552937 ; OdSmb ?
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : OrderSelect() a renvoyé une erreur - 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : chargé avec succès
Bonjour.
La fonction OrderSelect renvoie l'erreur 0 (ERR_NO_ERROR - La transaction commerciale a été réussie) ? ??
Comment éviter cette erreur ?
Je joins le code du programme et les écritures de journal.
Regards. Shurkin.
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : supprimé
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : raison uninit 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : Kc : Str=#20552937 acheter 1.00 GBPUSD à 1.55450 ; Tct 20552937 ; OdSmb ?
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : OrderSelect() a renvoyé une erreur - 0
2013.09.17 13:07:04 PoligonTd GBPUSD,Daily : chargé avec succès
En fait, il n'y a pas d'erreur de sélection, la commande avec un tel ticket n'existe pas.
Eh bien... S'il n'y a pas de commande avec ce ticket, OrderSelect() retournera false.
Donc, il semble y avoir une erreur, puisque nous passons à autre chose. La question est de savoir pourquoi il n'y a pas d'erreur.
Je n'arrive pas à trouver comment implémenter la logique avec le moins d'effort possible.
Si(...) définir un ordre stop ;
Si (durée de vie de l'ordre>temps) retirer l'ordre, et si(...) définir un nouvel ordre ;
La difficulté est qu'il peut y avoir plusieurs postes qui sont déjà ouverts, et comment les combattre tous ? Quel est le moyen le plus simple ?
Merci !
Je pense abandonner la fonction spéciale init(). Je pense que c'est la bonne solution, n'est-ce pas ?
La façon dont je vois les choses est la suivante :
1. déclarer une variable de manière globale, par exemple, comme ceci :
gInitTrue = false;
Ensuite, nous créons notre propre INIT :
Au tout début du début, comme ça :
if (gInitTrue == false) myInit();
Il serait intéressant d'entendre l'avis de personnes plus expérimentées sur la pertinence de cette approche, ainsi que sur la justesse de la solution que je propose pour résoudre ce problème.Plus de tampons.
Je pense abandonner la fonction spéciale init(). Je pense que c'est la bonne solution, n'est-ce pas ?
La façon dont je vois les choses est la suivante :
1. déclarer une variable de manière globale, par exemple, comme ceci :
Ensuite, nous créons notre propre INIT :
Au tout début du début, comme ça :
Il serait intéressant d'entendre l'avis de personnes plus expérimentées sur la pertinence de cette approche, ainsi que sur la justesse de la solution que je propose pour résoudre ce problème.Quelle est la nouveauté de sentir une nouvelle solution ? :-))
On baise. Je n'ai jamais eu besoin de le faire de cette façon.
Eh bien... S'il n'y a pas de commande avec ce ticket, OrderSelect() retournera false.
Donc, il semble y avoir une erreur, puisque nous passons à autre chose. La question est de savoir pourquoi il y a zéro.
J'ai vérifié - si le numéro du ticket correspond - tout fonctionne bien,
Si non - la fonction renvoie False, mais OrderSelect() est silencieux car rien ne se passe, ZERO et rien ne se passe.
Quelle est la nouveauté de sentir une nouvelle solution ? :-))
Une putain de chose. Je n'ai jamais eu besoin de le faire de cette façon.
Mais plus important encore ? Il a été discuté que l'INIT peut échouer dans le cas, par exemple, de déconnexions ou d'autres situations similaires. Parce qu'il ne réinitialise pas lui-même les données par la suite, en cas d'imprévus, et qu'il ne s'exécute qu'une fois ! Par conséquent, ce n'est pas vraiment la bonne option.
La question est ennuyeuse, mais la réponse n'est nulle part, ou peut-être ai-je simplement mal regardé :
Dans les fonctions, ou peut-être ailleurs, j'ai vu le symbole & après le type de données et, si je ne me trompe pas, une fois &&.
func(int& mm_mode, string symbol, int magic,bool& stop) {
A quoi sert-il ? Que fait-il ? (Référence, si vous pouvez en savoir plus à ce sujet)))