[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 384

 
KostelloArtua:

Bonjour !

Question : J'ai écrit un EA qui fonctionne sur le testeur. Fonctionne sur MetaTrader4 chez un seul courtier sur 2, celui dont je n'ai pas besoin. Et là où j'en ai besoin, ça ne marche pas. ..... Quel pourrait être le problème ?????? Merci d'avance....

Vous avez répondu à votre propre question. Il existe un grand nombre de sociétés de courtage gauchères sur le marché du Forex. Où votre capital n'est pas du tout déposé, mais se trouve auprès de votre société de courtage. Ils ont une arithmétique simple : 90% des dépôts sont versés dans leurs poches. Et ils sont tellement maîtres (ou plutôt pros) que leur travail consiste à ce que vous ne gagniez pas d'argent. Et tant que vous ne saurez pas quoi faire, ils laisseront plus d'un dépôt dans leurs poches. Mon conseil est de chercher un courtier avec des spreads serrés. Personnellement, j'ai un écart de 0,8 pour un lot complet.

(L'écart de 100.000 lots est de 8 USD, la plupart des courtiers ont de 30 à 50 $) ce qui est une grande différence. Personnellement, je négocie à partir de la Deutsche Brokerbank, où il n'y a pas d'intermédiaires. Et le terminal fonctionne avec l'Exchange et non à l'intérieur du bureau.

 
Vinin:

Je suppose que vous auriez dû venir ici
J'ai lu attentivement la documentation, mais je ne comprends toujours pas pourquoi la variable refuse obstinément de changer de valeur lorsque les ordres sont fermés normalement...:-))
 
KostelloArtua:

Bonjour !

Question : J'ai écrit un EA qui fonctionne sur le testeur. Fonctionne sur MetaTrader4 chez un seul courtier sur 2, celui dont je n'ai pas besoin. Et là où j'en ai besoin, ça ne marche pas. ..... Quel pourrait être le problème ?????? Merci d'avance....


Veuillez fournir ici le texte du journal de bord du terminal dans lequel l'EA ne fonctionne pas.

 
Fartowiy:

Et le terminal fonctionne avec l'Exchange, pas à l'intérieur du bureau.


Le Forex n'est pas un échange.
 
zoritch:
J'ai lu attentivement la documentation, mais je ne comprends toujours pas pourquoi la variable s'obstine à ne pas changer de valeur lorsque les ordres sont fermés normalement... :-))))

Je ne peux rien dire pour l'instant. Le code fourni est manquant
 
PapaYozh:

Le Forex n'est pas un marché boursier.

Désolé chers collègues ! !! C'est un peu faux, car je ne fais pas de commerce uniquement en devises. Mais le sens est le même. Pardonnez-moi, mais mon commentaire est lié, aide et conseil au débutant,

 
zoritch:

kickup est une variable déclarée ordinaire, int, qui a pour valeur par défaut zéro...:-))


Vous devez encore comprendre ce qu'ils attendent de vous. Relisez-le.
 
zoritch:

Messieurs, veuillez m'indiquer pourquoi la condition de passage de la variable de rentabilité du kickup d'un ordre d'achat ou de vente ne fonctionne obstinément pas... ?

for(int l = total - 1 ; l >= 0 ; l--) {
OrderSelect(l, SELECT_BY_POS, MODE_TRADES) ;
si ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == mn)) {

si (OrderType() == OP_BUY) {
si (OrderProfit() > 0) kickup = 2 ;
si ( ! OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 2, CLR_NONE)) {
trymore() ;

}
} else {
si (OrderProfit() > 0) kickup = 1 ;
si ( ! OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 2, CLR_NONE)) {
trymore() ;
}
}
}
}

Je ne connais pas le sens de votre construction, je suis trop paresseux pour le deviner, mais essayez de cette façon :

   for (int l = total-1; l >=0; l--) {
      if (OrderSelect(l, SELECT_BY_POS)) {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == mn) {

            if (OrderType() == OP_BUY) {
               if (OrderProfit() > 0) kickup = 2;
               if (!OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 2, CLR_NONE)) 
                  trymore();
                  } 
            if (OrderType() == OP_SELL){
               if (OrderProfit() > 0) kickup = 1;
               if (!OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 2, CLR_NONE))
                  trymore();
               }
            }
         }
      }

 
artmedia70:

Je ne connais pas le but de votre construction, je suis trop paresseux pour le deviner, mais essayez de cette façon :


Quelle est la différence ?
 
Roger:

Quelle est la différence ?
J'ai ajouté une condition supplémentaire à la boucle et supprimé les parenthèses inutiles. Vous pouvez faire tout différemment en général (ce sera encore mieux). Peut-être qu'une personne initialise sa variable à chaque fois après la boucle, on ne peut plus la voir. Apprenons des télépathes...