Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 759
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 ! Pourriez-vous me dire pourquoi j'ai parfois un opérateur ifle qui ne fonctionne pas.
Voici un exemple :
Où :
H3 est la valeur du prix du niveau
price est le prix actuel
Le résultat est que le prix atteint ce niveau (parfois même s'y arrête), mais l'alerte ne se déclenche pas.
Pouvez-vous me dire quelle est l'erreur ?
Bonjour.
Le programme se présente comme suit.
Lors de la compilation, il donne :
Ozero.mq4'Ozero.mq4 1 1
la valeur de retour de 'OrderClose' doit être vérifiée Ozero.mq4 46 13
conversion implicite de 'nombre' en 'chaîne' Ozero.mq4 49 117
0 erreur(s), 2 avertissement(s) 1 3
L'onglet "résultats" montre que des ordres sont ouverts et fermés.
1 2014.08.25 00:00 acheter 1 0.10 1.6550 0.0000 0.0000 0.00 10000.00
2 2014.08.25 06:30 fermer 1 0.10 1.6562 0.0000 0.0000 0.12 10000.12
3 2014.08.25 06:31 acheter 2 0.10 1.6564 0.0000 0.0000 0.00 10000.12
4 2014.08.25 10:00 fermer 2 0.10 1.6574 0.0000 0.0000 0.10 10000.22
5 2014.08.25 10:00 acheter 3 0.10 1.6576 0.0000 0.0000 0.00 10000.22
6 2014.08.25 12:58 fermer 3 0.10 1.6586 0.0000 0.0000 0.10 10000.32
7 2014.08.25 12:58 acheter 4 0.10 1.6590 0.0000 0.0000 0.00 10000.32
8 2014.08.26 13:13 fermer au stop 4 0.10 1.6576 0.0000 0.0000 -0.14 10000.18
8 - J'ai interrompu le travail en fermant le testeur.
Ensuite, nous examinons le "Journal" :
2014.10.31 07:46:44.837 GBPUSD,M15 : 4453 tick events (5608 bars, 340128 bar states) traités en 312876 ms (temps total 324436 ms)
2014.10.31 07:46:44.837 2014.08.26 13:13 Testeur : l'ordre n°4 est clos
2014.10.31 07:46:44.798 2014.08.26 13:13 Visual tester arrêté
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15 : ORDER OPEN 4
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15 : ouvert #4 acheter 0.10 GBPUSD à 1.6590 ok
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15 : Open #4 acheter 0.10 GBPUSD à 1.6590 ok
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15 : Je ne pense pas qu'il ait fermé. Nous y voilà : 4108
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15 : Erreur OrderClose 4108
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15 : ticket 3 inconnu pour la fonction OrderClose
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15 : clôture #3 achat 0.10 GBPUSD à 1.6576 au prix 1.6586
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15 : HOLD OPEN #3
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15 : ouvert #3 acheter 0.10 GBPUSD à 1.6576 ok
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15 : Ouvrir la position #1
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15 : Quoi de neuf ? Nous y voilà : 4108
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15 : Erreur OrderClose 4108
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15 : ticket 2 inconnu pour la fonction OrderClose
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15 : close #2 acheter 0.10 GBPUSD à 1.6564 au prix 1.6574
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15 : HOLD OPEN 2
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15 : open #2 buy 0.10 GBPUSD at 1.6564 ok
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15 : Ouverture de la première position
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15 : Quoi de neuf ? Nous y voilà : 4108
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15 : Erreur OrderClose 4108
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15 : ticket 1 inconnu pour la fonction OrderClose
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15 : clôture #1 achat 0.10 GBPUSD à 1.6550 au prix 1.6562
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15 : ORDER OPEN 1
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15 : ouvert #1 acheter 0.10 GBPUSD à 1.6550 ok
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15 : ouvert #1 acheter 0.10 GBPUSD à 1.6550 ok
2014.10.31 07:41:31.958 Entrées Ozero : gLot=0.1 ; gPoint=0.001 ;
Maintenant, je suis complètement perdu. D'une part, les ordres sont fermés comme vous pouvez le voir sur le graphique et dans les résultats, d'autre part, le code est exécuté avec des erreurs comme vous pouvez le voir dans le journal : (((((((((((.
Ozero.
Vous essayez de fermer le même ordre deux fois. Enlevez celui du haut.
Bonjour.
Suppression de deux lignes. Tout fonctionne. Et tout s'affiche correctement sur le graphique, dans les résultats et dans les journaux.
Question : lors de la compilation, il donne
"Ozero".mq4'Ozero.mq4 1 1
La valeur de retour de 'OrderClose' doit être vérifiée Ozero.mq4 46 13
0 erreur(s), 1 avertissement(s) 1 2
De quoi le compilateur me met-il en garde ? La 46ème ligne est OrderClose(OrderTicket(),OrderLots(),_Bid,15) ;
Ozero.
Pouvez-vous me dire ce qui pourrait causer le problème qui s'est produit aujourd'hui ?
L'EA a une option pour arrêter les transactions 15 minutes avant la fermeture du marché le vendredi.
Quand un nouveau jour apparaît, l'EA vérifie si c'est vendredi, alors aujourd'hui nous arrêtons le trading dans StringToTime("23:59")-15*60
Dans le testeur de stratégie, cette fonction fonctionne correctement. Cependant, dans le trading réel, je vois une situation totalement différente - le conseiller expert arrête le trading au premier tick lorsque le vendredi arrive.
Voici les impressions du journal d'Expert Advisor :
Courtier n°1, démo :
0 05:59:47.731 Scalper GBPAUDpt,M1 : Fin dans le vendredi = 2014.10.23 23:44:00
Courtier 2, réel :
0 03:00:11.999 Scalper EURUSD,M1 : Fin dans le vendredi = 2014.10.23 23:44:00
C'est-à-dire que lorsque la barre quotidienne d'aujourd'hui apparaît (vendredi 24 octobre) sur le premier tick, l'EA
convertira la ligne "23:59" en heure d'hier, au lieu de lui attribuer le jour d'aujourd'hui.
Toutefois, si le conseiller expert est redémarré le vendredi en milieu de journée, il déterminera correctement l'heure d'achèvement.
J'ai trouvé la raison de ce problème : https://forum.mql4.com/33023.
Comme prévu, il s'agit pratiquement d'un bug dans la fonction StringToTime. Tous les symptômes sont similaires. Cette fonction convertit la chaîne "23:59" en date avec la date du PC local mais pas avec la date de MT4. Et dans le testeur, comme nous le savons, la date du PC local est émulée et assimilée à l'heure du terminal. C'est pourquoi tout fonctionne correctement dans le testeur, mais la démo/le temps réel entraîne des problèmes et des pertes. Bien sûr, la documentation ne dit pas d'où vient la date et le lien ci-dessus montre que ce problème a été signalé il y a 4 ans, mais apparemment les methaquotes s'en moquent.
Une autre question. Est-ce que je comprends bien que :
1. la numérotation des commandes commence à partir de "0".
2. ce code fermera absolument tous les ordres, que je les ouvre manuellement ou par programme ? C'est-à-dire que nous ne trouverons jamais un ordre que cette partie du programme ne peut pas fermer ?
Ozero.
Quelqu'un a-t-il fait défiler du texte à l'écran ? Par exemple - la commande d'untel ouverte/fermée/modifiée, etc... Des nouvelles d'untel ou d'untel... ?
Si vous le voulez bien, montrez-moi un bout de code.
Merci !
Celle du bas est meilleure. L'ordre doit être choisi au préalable.
C'est mieux comme ça :
Quelqu'un a-t-il fait défiler du texte à l'écran ? Par exemple - la commande d'untel ouverte/fermée/modifiée, etc... Des nouvelles d'untel ou d'untel... ?
Si vous le voulez bien, montrez-moi un bout de code.
Senx !
Je faisais un défilement vertical dans une fenêtre d' indicateur vide. Voici la fonction :
Exemple d'utilisation d'un message en une seule couleur (vous pouvez avoir 4 couleurs sur une ligne pour différents mots) :
Il doit y avoir un indicateur vide nommé Win_Inform sur le graphique.