[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 - 5. - page 192
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.
Problème avec les ordres en attente, notamment la date d'expiration.
C'est ainsi qu'un nouvel ordre est ouvert, c'est-à-dire que s'il n'a pas été déclenché dans une heure, le serveur doit le fermer.
Ensuite, je vérifie quelle est la date d'expiration :
Voici ce que j'obtiens lorsque l'EA fonctionne dans le testeur :
2013.03.01 12:45:58 2012.01.11 11:00 #advisor# EURUSD,H1 : open #1 sell limit 2.00 EURUSD à 1.27972 ok
2013.03.01 12:45:58 2012.01.11 11:00 #advisor# EURUSD,H1 : Alerte : OrderExpiration = 2012.01.11:12:00
2013.03.01 12:45:58 2012.01.12 16:29 Testeur : ordre #1, vendre 2.00 EURUSD est ouvert à 1.27972
Autrement dit, la date et l'heure d'expiration sont correctement définies, comme je le souhaite, mais je ne ferme pas à l'heure d'expiration - une position est ouverte après 24 heures.
J'ai cherché sur quelques forums et le problème se pose. Les réponses habituelles sont "ça marche pour moi" ou "tracez vous-même les ordres en attente". Je ne veux pas les suivre moi-même et cela ne fonctionne pas pour moi.
Igor Kim a un conseiller qui fait ce qui suit à un intervalle déterminé
Il fonctionne très bien.
Merci pour le conseil !
Il fonctionne très bien.
Merci pour le conseil !
Ce n'est pas moi, c'est Google.
Je pense que vous pouvez tirer la fonction de sauvegarde d'écran de là vous-même et définir vos propres paramètres pour l'appeler - j'étais trop paresseux....
Sergey, je laisse la question de la fonction ouverte pour le moment, car demain je vais insérer d'autres fonctions dans votre EA de test pour mener une expérience propre. Je l'ai regardé en mode visuel et presque toutes les doubles fermetures sont les dernières, les précédentes sont fermées par le SL et le TP, c'est-à-dire qu'il n'y a rien à choisir. J'ai supprimé les arrêts et les prises afin d'avoir quelque chose à choisir. Demain, je vous montrerai votre conseiller expert avec toutes les fonctions supplémentaires et des commentaires ! Vous pourrez voir par vous-même comment la fonction fonctionne. Je veux vraiment qu'il montre que j'avais tort ! Si j'ai raison, j'essaierai de faire de mon mieux ! A demain !
Sergey, Dubakin J'ai fait une vérification visuelle et je me suis assuré que cette fonction sélectionne les maximums, ce qui est ce dont j'avais besoin ! Je suis heureux de ne plus avoir de doutes, et je vous présente mes excuses ! Mais dans notre métier, "il vaut mieux mesurer sept fois...". Je montre à votre testeur l'EA pour tester la fonction, avec des caractéristiques et des commentaires ajoutés pour un contrôle visuel plus clair ! Merci !
Sergey, Dubakin J'ai fait une vérification visuelle et je me suis assuré que cette fonction sélectionne les maximums, ce qui est ce dont j'avais besoin ! Je suis heureux de ne plus avoir de doutes, et je vous présente mes excuses ! Mais dans notre métier, "il vaut mieux mesurer sept fois...". Je montre à votre testeur l'EA pour tester la fonction, avec des caractéristiques et des commentaires ajoutés pour un contrôle visuel plus clair ! Merci !
Comment... En se basant sur Igor Kim a fait quelque chose... Une seule de vos caractéristiques... les autres sont les mêmes...
quelque chose comme ça, je suppose :
Et l'appeler :
pour le comptage des achats et des ventes par le symbole actuel, avec Magic
Pouvez-vous me dire comment choisir le plus petit lot parmi toutes les transactions ouvertes ?
double min=0 ;
int min_ticket=0 ;
for(i=0;i<ot;i++)
{
if(!OrderSelect(i,SELECT_BY_POS)) continue ;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue ;
if(i==0||min>OrderLots()) {min = OrderLots() ; min_ticket=OrderTicket();}
}
La variable i a une valeur de 0 uniquement au début de la boucle. En outre, il ajoutera une valeur à chaque itération.J'ai parcouru le fil de discussion. Votre logique est étrange. Je suis intéressé par la dernière ligne de code :
Ensuite, il y a une condition qui fera en sorte que la boucle continue :
Mais min est déclaré comme étant zéro et sa valeur ne change nulle part ailleurs dans le code. Ce qui signifie que cette valeur ne sera jamais vraie! Où est la logique ?
La variable i a une valeur de 0 uniquement au début de la boucle. En outre, il ajoutera de la valeur à chaque itération par 1.J'ai parcouru le fil de discussion. Votre logique est étrange. Je suis intéressé par la dernière ligne de code :
Ensuite, il y a une condition pour que le cycle continue :
Mais min est déclaré comme étant zéro, et sa valeur ne change jamais ailleurs dans le code. Ce qui signifie que cette valeur ne sera jamais vraie ! Où est la logique ?
La variable i a la valeur 0 uniquement au début de la boucle. En outre, il ajoutera de la valeur à chaque itération par 1.J'ai regardé à travers la branche. Votre logique est étrange. Je suis intéressé par la dernière ligne de code :
Ensuite, il y a une condition pour que le cycle continue :
Mais min est déclaré comme étant zéro, et sa valeur ne change jamais ailleurs dans le code. Ce qui signifie que cette valeur ne sera jamais vraie ! Où est la logique ?Veuillez noter
Si min>OrderLots(), alors min = OrderLots() ;
Veuillez noter
Si min>OrderLots() alors, min = OrderLots() ;
Si vous faites cela, toutes les bizarreries devraient disparaître.
Pour supprimer la condition "supplémentaire", vous pouvez procéder comme suit :