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'aimerais connaître un conseiller expert comme celui-ci... il ouvre 2 ordres différents en attente et ferme le reste quand l'un d'eux se déclenche...
il y avait un code de base double en attente 2 appelé ... maintenant il n'y a pas ...
ce qu'il veut dire, c'est qu'il a toutes les opérations sur tous les ordres mélangés dans une boucle, avec une itération affectant de manière significative le résultat de l'autre, et il ne peut pas comprendre pourquoi tout cela ne fonctionne pas.
Donc nous devons d'abord séparer les escalopes des mouches... Je n'avais pas pensé à un tel chaos :-)
J'aimerais connaître un conseiller expert comme celui-ci... il ouvre 2 ordres différents en attente et ferme le reste quand l'un d'eux se déclenche...
il y avait une attente 2 dans le code a été appelé ... pas plus ...
boucle à travers les ordres ouverts par OrderType() et définit le compteur :
int count=0 ;
si(OrderType()<2) count++ ;
si(count==0)
{ voici un sélecteur - dès que vous rencontrez OrderType()>1 - supprimez-le : OrderDelete(.....) ; si la suppression est réussie (voir Documentation), activez-le : OrderSend(...) ; } Elémentaire, Watson !
Je me suis un peu trompé : si(OrdersTotal()==0) {placez 2 ordres en attente} puis vérifiez avec le sélecteur de type d'ordre : une fois que vous avez trouvé un <2, cherchez le second >2 et supprimez-le.
Voici une boucle pour vérifier l'état des commandes, après cela faire des vérifications et des fermetures et des modifications, après chaque action retourner l'opérateur pour que la boucle mette à jour l'état des commandes.
ok... je me suis dit que vous ne seriez pas d'une grande aide... ça ne sert à rien de donner des conseils avant de les avoir vus de toute façon... je vais en chercher un similaire ( ça ne marche pas non plus avec cette boucle de contrôle... tout est pareil...) et même avec plusieurs boucles par opération...)
Vous êtes devenu paresseux... écrivez une fonction (ou deux, si vous ne savez pas comment faire) qui renvoie le nombre d'ordres sur le marché (historique) pour des paramètres spécifiés : symbole, magicien, type d'ordre, c'est-à-dire dans n'importe quelle combinaison...
ensuite, à chaque tick (ou autre intervalle de temps avec lequel l'EA démarre), vous définissez le nombre d'ordres sur le marché et d'ordres en attente et, en utilisant leurs combinaisons, vous effectuez les actions requises...
marché == 0 et ordres en attente == 0
marché == 0 et ordres en attente == 2 ne font rien
marché == 1 et ordres en attente == 1 supprimer un ordre en attente
marché == 1 et pauses == 0 appât
Je ne peux pas croire que c'est si difficile à faire...
Désolé. Il est temps d'oublier la programmation procédurale - utilisez les fonctions...
une variable sauvegarde la dernière valeur, c'est ridicule...
IL N'Y A PAS DE PROBLÈME DANS L'HISTORIQUE MAIS COMMENT SAVOIR SI C'EST OUVERT OU NON ? SI LE SÉLECTEUR CONSERVE LA DERNIÈRE VALEUR JUSQU'À CE QU'IL SOIT REDÉMARRÉ...
C'EST DU BEURRE.
IL N'Y A PAS DE PROBLÈME DANS L'HISTORIQUE MAIS COMMENT SAVOIR SI C'EST OUVERT OU NON ? SI LE SÉLECTEUR CONSERVE LA DERNIÈRE VALEUR JUSQU'À CE QU'IL SOIT REDÉMARRÉ...