Questions des débutants MQL5 MT5 MetaTrader 5 - page 1096

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
J'ai le temps et le prix des points A et B
Comment puis-je connaître l'heure et le prix du point C ? Il se trouve au milieu entre A et B.
Je ne trouve aucun exemple nulle part
J'ai le temps et le prix des points A et B
Comment puis-je connaître l'heure et le prix du point C ? Il se trouve au milieu entre A et B.
Je ne trouve aucun exemple nulle part.
Temps C = Temps B - ((Temps B - Temps A) / 2)
Prix au moment C
Temps C = Temps B - ((Temps B - Temps A) / 2)
Prix par heure C
J'ai vérifié, parfois j'ai un week-end).
Y a-t-il un moyen de trouver le centre dans la ligne elle-même ?
Voici ma ligne
comment trouver le ticket de la dernière commande ouverte ? ça ne marche pas comme ça :
Que voulez-vous savoir exactement ? Nous devons faire une distinction claire entre les termes ORDRE, COMMANDE et POSITION.
Deuxièmement : Vous avez immédiatement créé une confusion en nommant les objets de la classe CTrade "ordre_1" " "ordre_2". Ils avaient l'habitude d'appeler les objets de la classe CTrade "m_trade_1" et "m_trade_2". Cela n'affecte pas la facilité d'utilisation, mais cela ajoute beaucoup de confusion.
Troisièmement : la méthodePositionClose ne fonctionnera pas seulement parce que vous lui passez un ticket de position égal à zéro (et vous les initialisez avec zéro dans OnInit()). - Ces conditions idéales, lorsque la première position a un ticket "0", ne peuvent être obtenues que dans le testeur.
Quatrièmement : la méthode d'achat
Note
L'exécution réussie de la méthode Buy(...) ne signifie pas toujours que la transaction est réussie. Il faut vérifier le résultat de l'exécution de la demande de transaction (code de retour du serveur de transaction) en appelant la méthodeResultRetcode() ainsi que lavaleur renvoyée par la méthodeResultDeal().
MéthodeResultDeal()
Obtient le ticket READ.
Que voulez-vous savoir exactement ? Vous devez distinguer clairement les termes ORDRE, COMMANDE et POSITION.
Deuxièmement, vous avez immédiatement créé une confusion en nommant les objets de la classe CTrade avec les mots "order_1" et "order_2". Ils avaient l'habitude d'appeler les objets de la classe CTrade "m_trade_1" et "m_trade_2". Cela n'affecte pas la facilité d'utilisation, mais cela ajoute beaucoup de confusion.
Troisièmement : la méthodePositionClose ne fonctionnera pas seulement parce que vous lui passez un ticket de position égal à zéro (et vous les initialisez avec zéro dans OnInit()). - Ces conditions idéales, lorsque la première position a un ticket "0", ne peuvent être obtenues que dans le testeur.
Quatrièmement : la méthode d'achat
Note
L'exécution réussie de la méthode Buy(...) ne signifie pas toujours que la transaction est réussie. Il faut vérifier le résultat de l'exécution de la demande de transaction ( code de retour du serveur de transaction) en appelant la méthode ResultRetcode() ainsi que lavaleur renvoyée par la méthodeResultDeal().
MéthodeResultDeal()
Obtient le ticket RECEIVED.
Merci ! Je l'ai déjà compris
en général, le problème venait de l'abondance d'informations, de rumeurs et d'opportunités..... j'étais sûr de ne pas pouvoir attraper un ticket dans Result(), car l'événement OnTradeTransaction() est rappelé de temps en temps ... et c'est parti !
je travaille actuellement dessus avec MT5 tester, je cherche juste des exemples reproductibles, je ne parle pas du code fonctionnel - juste un testeur pour le moment
Merci encore pour votre aide !
ce code permet d'obtenir les tickets des dernières commandes dans le testeur :
Merci ! Je l'ai déjà compris.
en général, le problème venait de l'abondance d'informations, de ragots et de possibilités..... j'étais sûr de ne pas pouvoir attraper le ticket dans Result(), car l'événement OnTradeTransaction() est rappelé de temps en temps ... et c'est parti !
je travaille actuellement dessus avec MT5 tester, je cherche juste des exemples reproductibles, je ne parle pas du code fonctionnel - juste un testeur pour le moment
Merci encore pour votre aide !
Un tel code peut obtenir les ticks des derniers ordres dans le testeur :
Oui, en utilisant ResultOrder, vous obtiendrez le ticket de commande.
Oui, avec ResultOrder nous pouvons obtenir un ticket pour la commande.
Ok, maintenant je n'ai aucun problème avec ça, mais un autre problème est apparu en utilisant CTrade : j'ai un ticket d'ordre mémorisé et je peux le fermer en utilisant PositionClose(m_ticket)
En MQL4, c'était assez simple : je sélectionnais l'ordre via OrderSelect() et vérifiais if(OrderCloseTime()>0) - si l'heure de clôture n'est pas égale à 0, l'ordre est fermé.
Comment puis-je savoir si un ordre est fermé en utilisant SB CTrade ?
OK, maintenant je n'ai aucun problème avec ça, mais un autre problème est apparu en utilisant CTrade : j'ai un ticket d'ordre mémorisé et je peux le fermer en utilisant PositionClose(m_ticket)
En MQL4, c'était assez simple : je sélectionnais l'ordre via OrderSelect() et vérifiais if(OrderCloseTime()>0) - si l'heure de clôture n'est pas égale à 0, l'ordre est fermé.
Comment puis-je savoir que l'ordre est clôturé en utilisant SB CTrade ?
Oubliez l'ordre ! Il y a un poste !
J'ai demandé spécifiquement ce que vous vouliez : un ORDRE, une PRISE OU une POSITION ? Ne pas confondre la terminologie. Après l'exécution de l'ordre de bourse, c'est la POSITION qui apparaît, pas l'ORDRE !
Par conséquent, décrivez d'abord avec des mots ce que vous faites et ce que vous voulez obtenir. Au lieu d'un ORDRE, utilisez "Ordre commercial d'achat" et "Ordre commercial de vente". Il en résulte une position "ACHAT" ou "VENTE".
OK, maintenant je n'ai aucun problème avec ça, mais un autre problème est apparu en utilisant CTrade : j'ai un ticket d'ordre mémorisé et je peux le fermer en utilisant PositionClose(m_ticket)
Dans MQL4, il était très facile de savoir si l'ordre était fermé ou non. Je le sélectionnais à l'aide de OrderSelect() et vérifiais if(OrderCloseTime()>0) - si le temps de clôture est différent de 0, l'ordre est fermé.
Comment puis-je savoir si un ordre est fermé en utilisant SB CTrade ?
En laissant de côté le fait qu'un ticket de position correspond généralement à un ticket d'ordre, mais pas absolument toujours, il est possible d'utiliser la fonction PositionSelectByTicket sans SB.
Puis-je substituer ma propre formule de calcul dans le code de calcul de cet indicateur?
Par exemple, open/2