[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 227
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, voici le problème : l'EA définit des ordres limites en attente, puis le prix évolue et les ordres deviennent des ordres au marché. Tout fonctionne, mais sur certains ordres il y a un problème absolument pas clair, puisque tous les ordres sont fixés par une certaine constante fixe "K", la distance entre eux devrait toujours être une constante (Rn+1 = Rn + "K"). Cependant, nous n'avons pas de chance ; l'ordre est ouvert, le prix est indiqué et tout est vérifié mais la distance entre l'ordre précédent et le suivant n'est pas égale à "K". Si nous vérifions les résultats des opérations arithmétiques avec les prix, c'est-à-dire si nous soustrayons simplement et vérifions le résultat, il est égal à "K" ; cependant la comparaison logique == montre toujours faux et cela conduit l'EA à ouvrir constamment des ordres à ce prix et donc à "penser" qu'il n'y a pas d'ordre à cet endroit. Désolé si c'est trop long, je voulais juste expliquer plus en détail. Honnêtement, je ne sais vraiment pas quoi faire :(
Merci beaucoup ! Mais il y a ceci 2011.09.30 21:26:49 TestGenerator : unmatched data error (volume limit 13634 at 2011.07.19 20:00 exceeded)
D'après ce que j'ai compris, ce message ne concerne pas l'Expert Advisor, mais j'aimerais quand même savoir comment le comprendre ?
Aidez à réparer la fonction
J'essaie d'écrire une fonction qui détermine le prix de clôture du dernier ordre (par l'heure la plus proche de l'heure actuelle).
Je l'écris comme ça :
Mais
faire
uble PriceCloseLastPos(string smb = "", int cmd = -1, int mMin = -1, int mMax = -1) {
int ticketDateTime=0 ;
int orderTicket=-1 ;
double closePrice = 0 ;
int ordTotal = OrdersTotal() ;
if (smb == "0") smb = Symbol() ;
for (int i = 0 ; i < ordTotal ; i++) {
si (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
si (OrderSymbol() == smb || smb == "") {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
si (cmd < OP_BUY || OrderType() == cmd) {
si (mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)) {
si (ticketDateTime < OrderCloseTime()) {
ticketDateTime = OrderCloseTime() ;
orderTicket = OrderTicket() ;
closePrice = OrderClosePrice() ;
}
}
}
}
}
}
}
if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY ) ;
return(closePrice) ;
}
Mais pour une raison quelconque, la fonction renvoie les données de la toute première commande qui a été ouverte dans le testeur.
En fait, c'est mon objectif intermédiaire. Je voulais écrire une fonction qui donnerait le dernier prix de clôture d'un ordre partiel (pas pour le volume total du lot). Mais je ne sais pas comment faire...
Au lieu de cela...
... Suivant ...
Ici, je vois que vos connaissances ne sont pas très bonnes. Lors de la sélection d'une commande par ticket, le paramètre pool est ignoré. C'est-à-dire qu'il est inutile d'écrire MODE_HISTORY - ce paramètre ne concerne que la sélection par index.
Si un ordre a été sélectionné par ticket, vous devez vérifier l'heure de fermeture pour vous assurer qu'il a été sélectionné dans la liste des ordres fermés. Il doit être supérieur à zéro - seules les positions fermées ont ce paramètre >0.
Sur l'échelle de temps de 5 minutes dans le terminal de trading MT4, l'historique n'est pas affiché. Cela peut-il être résolu ?
Je m'excuse pour la question brutale. Je voulais dire que l'historique avant novembre 2010 n'est pas affiché :)
Alors elle n'existe pas. Vous pouvez également préciser. Essayez de créer plus de barres sur le graphique dans les paramètres MT4.
Il est résolu en téléchargeant ou en achetant un historique plus long.
Alors elle n'existe pas. Vous pouvez également préciser. Essayez de créer plus de barres sur le graphique dans les paramètres de MT4.
Ce problème peut être résolu en téléchargeant ou en achetant des historiques plus longs.
Quel est le nombre maximum de barres dans l'histoire ? Peut-être que l'histoire est déjà coupée.