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
OK, excellent sujet ! !!!
Alors, qu'est-ce que le volume ? le nombre de changements de tick, ou le nombre de transactions, ou la quantité de fonds de transaction dans une période ?
Pour reformuler :
Ma conclusion de base est que s'il y a un changement dans MarketInfo() pour la paire, un "tick" est reçu.
.
Il peut y avoir des exceptions, comme "aucun changement trouvé" mais un tick a été reçu, mais c'est très rare.
Les ticks reçus sans changement de prix ne sont pas rares, et signalent un autre changement dans MarketInfo pour la paire.
.
Le volume est égal au nombre de ticks reçus, c'est-à-dire le nombre de fois que la fonction start() a été appelée, il ne s'agit pas spécifiquement de transactions ou de changements de Bid/Ask. Un changement dans MarketInfo() déclenche un tick, et le nombre de tick = volume.
.
Le volume est égal au nombre de ticks reçus, c'est-à-dire au nombre de fois où la fonction start() a été appelée.
Oui, mais certains ticks peuvent être manqués (la fonction start() n'a pas été appelée) car le start() précédent n'est toujours pas terminé.
A l'arrivée de nouvelles cotations, la fonction start() des experts et indicateurs personnalisés attachés sera exécutée. Si la fonction start() lancée à la cotation précédente était en cours d'exécution lors de l'arrivée d'une nouvelle cotation, la nouvelle cotation sera ignorée par l'expert. Toutes les nouvelles cotations reçues pendant l'exécution du programme sont ignorées par le programme jusqu'à ce que l'exécution actuelle de la fonction start() soit terminée. Après cela, la fonction start() ne sera exécutée que lorsqu'une nouvelle cotation successive sera reçue. Pour les indicateurs personnalisés, la fonction start() sera lancée pour un nouveau calcul après que le symbole graphique ou l'horizon temporel actuel ait été modifié indépendamment de l'arrivée de nouvelles cotations. La fonction start() ne sera pas lancée lorsque la fenêtre des propriétés de l'expert est ouverte. Cette dernière ne peut pas être ouverte pendant l'exécution de l'expert.
Je n'utilise pas la fonction Start() pour déclencher, j'utilise un script avec une boucle sans fin pour examiner MarketInfo().
Je vais réécrire le script, puisque l'expérience a pris une direction inattendue.
.
Les ticks reçus avec changement de prix ou sans changement de prix, le nombre de ticks = volume.
Mais le client MT peut ne pas recevoir tous les ticks pour certaines raisons, comme une coupure de réseau temporaire pendant quelques secondes.
Dans ce cas, le nombre de ticks = volume correspond au nombre de changements de prix sur le serveur ou au nombre défini par le courtier qui veut changer son prix combien de fois dans une période.
Est-ce exact ?
Pour un courtier qui prend part au marché pour couvrir les positions de ses clients, le volume est aussi défini par le courtier qui veut changer son prix combien de fois dans une période.
Mon Dieu !
Comment utiliser les données de volume ?
Questions sur Marketinfo().
Des appels excessifs à Marketinfo() dans une boucle sans fin seront-ils considérés comme du spam par le courtier ?
Qu'est-ce qui ne serait pas considéré comme du spam ?
Combien de fois peut-on exécuter Marketinfo() sans contrarier le Broker ?
La commande Marketinfo() puise-t-elle dans le cache du Broker ou s'agit-il d'une véritable requote?
Merci
Les appelsMarketInfo() ne vont pas au concessionnaire, ils lisent les valeurs les plus récentes déjà reçues du concessionnaire.
Les appels au concessionnaire nécessiteront environ 100 à 300 millisecondes chacun pour se terminer.
// script int start(){ int startTime = GetTickCount(); for(int i = 0; i < 10000; i++){ int spread = MarketInfo(Symbol(), MODE_SPREAD); } int endTime = GetTickCount(); Print("Time to collect 10000 instances of data = " + (endTime -startTime) + " milliseconds"); startTime = GetTickCount(); OrderSend(Symbol(), OP_BUY, 1, Ask, 0, 0, 0 , "", 0, 0, CLR_NONE); endTime = GetTickCount(); Print("Time to send one order to Server = " + (endTime -startTime) + " milliseconds"); return(0); }
Phy - désolé d'ouvrir à nouveau ce sujet :-)
Je pense qu'il y a un décalage entre ce que vous pensez de la nature d'un tick et votre méthode de calcul du profit/risque, etc. (d'après la lecture de certains messages précédents).
C'est-à-dire que vous utilisez MarketInfo(Symbol(),MODE_TICKVALUE) seul afin de déterminer la valeur du pip de la paire exprimée en termes de devise de dépôt.
Cependant, si ce que vous croyez au sujet des ticks dans MT4 est correct, alors la valeur du tick peut changer par un facteur du nombre de pips entre les ticks.
En d'autres termes, si le prix fait soudainement un bond de quelques pips, un appel préalable à MarketInfo pourrait révéler que TICKSIZE et TICKVALUE sont respectivement de 0,0001 et 7,16. L'appel suivant pourrait alors retourner 0,0002 et 14,32.
Dans ce cas, vous devriez toujours prendre en compte à la fois MarketInfo(Symbol(),MODE_TICKSIZE) et MarketInfo(Symbol(),MODE_TICKVALUE) dans vos formules de profit/risque et jamais MarketInfo(Symbol(),MODE_TICKVALUE) seul.
Est-ce exact ?
CB
.
Pour l'Euro chez MBTrading :
10000 MODE_LOTSIZE Taille du lot dans la devise de base.
0.1 MODE_TICKVALUE Valeur du tick dans la devise de dépôt.
0.00001 MODE_TICKSIZE Taille du tick dans la devise de cotation.
.
Remplacez le mot "tick" par "pip" ci-dessus, si vous le souhaitez.
.
Ce courtier utilise le mini-lot comme taille standard -- MODE_LOTSIZE
Ils utilisent 3/5 chiffres pour le prix -- MODE_TICKSIZE
La valeur d'un de ces "ticks" est de 0,10 $ -- MODE_TICKVALUE
.
Pour le GBPAUD :
.
10000 MODE_LOTSIZE Taille du lot dans la devise de base.
0.080262 MODE_TICKVALUE Valeur du tick dans la devise de dépôt.
0.00001 MODE_TICKSIZE Taille du tick dans la devise de cotation.
.
Le mouvement d'un pip de GBPAUD sur un lot rapporte 0,080262 $.
.
Votre idée pour calculer le changement de prix de votre ordre d'un moment à l'autre...
PositionValueChange = PriceChangeInPips * MarketInfo( OrderSymbol(), MODE_TICKVALUE) * OrderLots() ;
.