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
#Calculs des commandes et mises à jour des infocomptes- Ouvert
( J'ai déjà demandé - mais j'ai encore besoin d'aide )
J'appelle mes fonctions de calcul par OnTick() ou Start(), et elles dépendent des ticks des symboles du graphique.
Et j'ai commencé à chercher comment faire pour que les mises à jour des calculs de mon EA ne dépendent pas des ticks et des symboles ( / Chart - Ticks, Symbols ).
J'essaie juste de faire en sorte que les mises à jour des calculs et des informations sur le compte de tous les ordres soientsynchronisées (en temps réel) avec "Terminal > Trade".
S'il vous plaît aidez-moi, merci.
Merci d'avance.
OnTimer()
https://www.mql5.com/en/docs/basis/function/events#ontimer
Et SymbolName(x,1) ;Et SymbolName(x,1) ;
Bon commentaire, dont il m'a aidé, merci beaucoup.
Maintenant, j'utilise OnTick() et OnTimer(), ces deux fonctions fonctionnent bien pour moi. (C'est la première fois que j'utilise OnTimer() pour un EA).
---
J'aimerais aussi essayer les Ticks. Je n'ai besoin que de ticks à partir de quels symboles (paires) sur 'Terminal > Trade' et le symbole graphique actuel. Est-ce que cette fonction SymbolName() peut m'aider ?
S'il vous plaît, aidez-moi ou donnez-moi un conseil, comment puis-je faire cela ?
Tous nos vœux.
{
Print(i," Symbol: ",SymbolName(i,1)," Ask: ",MarketInfo(SymbolName(i,1),MODE_ASK)," Bid: ",MarketInfo(SymbolName(i,1),MODE_BID));
}
{
Print(i," Symbol: ",SymbolName(i,1)," Ask: ",MarketInfo(SymbolName(i,1),MODE_ASK)," Bid: ",MarketInfo(SymbolName(i,1),MODE_BID));
}
Un exemple étonnant et un commentaire vraiment utile pour moi, merci beaucoup.
Est-il possible que les ticks proviennent de paires / symboles commerciaux, s'il vous plaît ?
Parce que presque tout le temps mon Market Watch montre tous les symboles - en particulier je cherche de nouvelles bonnes paires pour les trades et c'est la seule raison pour laquelle je recherche des moyens pour savoir comment obtenir ' Terminal > Trade ' les symboles / paires, juste les ticks d'ouverture des trades actuellement.
Merci beaucoup par avance.
Non, mais vous pouvez mettre à jour le prix dans la fonction OnTimer() réglée sur une faible valeur, par exemple 250 millisecondes seront égales à 4 ticks par seconde, alors pourquoi en avez-vous besoin ?
Merci pour votre commentaire.
( subtopic -#Calculs des ordres et mises à jour des informations sur le compte - Open) Comme je l'ai mentionné, j'utilise les calculs de profit des ordres et cela n'est pas synchronisé avec ' Terminal > Trade ', c'est la seule raison.
Donc, parfois la volatilité est très faible, les ticks sont de plus en plus petits, et je pense que les fonctions peuvent être exécutées 4 fois par seconde, donc cela ne sert à rien ( / vain ).
Si je n'arrive pas à trouver le moyen de me donner les ticks de ' Terminal > Trade ' pour la synchronisation des ordres, des calculs de profit et des informations de compte ( / mises à jour ). Je vais utiliser vos méthodes très utiles - lequel vous m'avez montré que les moyens dans vos derniers commentaires, merci beaucoup. ( J'ai déjà testé et cette façon fonctionne moi )
Merci d'avance.
Si vous êtes vraiment intéressé, vous pouvez utiliser.. :
{
datetime time; // Time of the last prices update
double bid; // Current Bid price
double ask; // Current Ask price
double last; // Price of the last deal (Last)
ulong volume; // Volume for the current Last price
long time_msc; // Time of a price last update in milliseconds
uint flags // Tick flags
};
La structure pour retourner les prix actuels (MqlTick)
C'est une structure pour stocker les derniers prix du symbole. Elle est conçue pour une récupération rapide des informations les plus demandées sur les prix actuels.
La variable de type MqlTick permet d'obtenir les valeurs de Ask, Bid, Last et Volume en un seul appel de la fonction SymbolInfoTick().
Les paramètres de chaque tick sont renseignés, qu'il y ait ou non des changements par rapport au tick précédent. Ainsi, il est possible de trouver un prix correct pour n'importe quel moment dans le passé sans avoir besoin de rechercher les valeurs précédentes dans l'historique des tick. Par exemple, même si seul le cours acheteur change pendant l'arrivée d'un tick, la structure contient toujours d'autres paramètres, notamment le cours vendeur précédent, le volume, etc.
Vous pouvez analyser les drapeaux de tick pour découvrir quelles données ont été modifiées exactement :
Exemple :
{
MqlTick last_tick;
//---
if(SymbolInfoTick(Symbol(),last_tick))
{
Print(last_tick.time,": Bid = ",last_tick.bid,
" Ask = ",last_tick.ask," Volume = ",last_tick.volume);
}
else Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
}
Voir aussi
https://www.mql5.com/en/docs/constants/structures/mqltick
Structures et Classes, CopyTicks(), SymbolInfoTick()
Vous pouvez donc l'utiliser pour vérifier s'il y a eu un nouveau tick pour un symbole spécifique, mais ce sera en fait une étape de plus que de lire directement les niveaux de prix, donc une fois de plus, pourquoi en auriez-vous besoin ?
Marco vd Heijden:
Eh bien, si vous êtes vraiment dans ce domaine, vous pouvez utiliser : ...
Donc vous pouvez l'utiliser pour vérifier s'il y a eu un nouveau tick pour un symbole spécifique, mais ce sera en fait une étape de plus que de lire directement les niveaux de prix directement, donc encore une fois, pourquoi en auriez-vous besoin.
Merci pour votre commentaire informatif, j'apprécie beaucoup.
---
Si j'ai raison, cette partie de la phrase est une question.
Et je dois décrire ma situation.
Toute cette préoccupation vient d'ici.
---
J'espère que vous me comprenez maintenant plus clairement.
Je vous souhaite bonne chance.
Si vous voulez vraiment attendre chaque tick, vous devrez écrire un EA séparé pour chaque symbole et utiliser la fonction OnTick().
Mais je peux vous dire que je programme aussi des micro-contrôleurs et qu'ils sont dans une boucle while sans fin (pour toujours) jusqu'à ce qu'une panne de courant ou une interruption se produise.
Pour vérifier si une condition est vraie ou fausse, on utilise le plus petit type de données booléennes et votre processeur le fait déjà des millions, voire des milliards de fois par seconde avec tous les processus qui tournent en arrière-plan et les graphiques, etc.
C'est lorsque vous commencez à faire des calculs lourds impliquant des types de données plus importants que cela devient un problème.