AIDEZ QUI PEUT ! !! - page 4

 

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 ...

 
Techno:
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 :-)
 
sllawa3:

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.

for(int i=0;i<OrdersTotal();i++)
        {
          if(OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MAGA)
          switch(OrderType())
          {
          case 0:DB=1;break;
          case 1:DS=1;break;
          case 4:ZB=1;break;
          case 5:ZS=1;break;
          }
        }
 
OK... je comprends que vous ne pouvez pas m'aider... ça ne sert à rien de donner des conseils tant que je ne l'ai pas vu de toute façon... je vais en chercher un similaire (ça ne marche pas non plus avec ce cycle de contrôle... tout reste pareil...). et même avec plusieurs boucles par opération...)
 
TOUTE BOUCLE QUI NE DÉMARRE PAS AFFICHERA LA DERNIÈRE VALEUR DE LA VARIABLE... ET IL NE DÉMARRERA PAS S'IL N'Y A PAS DE COMMANDE.
 
sllawa3:
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.

 
sllawa3:
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É...
on vous a déjà dit 5 fois comment faire par 3 personnes, si vous ne comprenez pas, cherchez un modèle tout fait, ou demandez à quelqu'un de l'écrire pour vous
 
CE N'EST PAS SEULEMENT CETTE EA QUI POSE PROBLÈME, C'EST N'IMPORTE QUELLE EA... QUE JUSQU'À CE QUE LE SÉLECTEUR SOIT RELANCÉ (JUSQU'À CE QUE LA COMMANDE APPARAISSE), IL AURA LA DERNIÈRE VALEUR COINCÉE EN LUI