Erreurs, bugs, questions - page 1850
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
un bug lors de l'utilisation d'un styler?
Supposons que nous écrivions en utilisant l'onglet.
Il n'y a pas d'erreur.
puis on utilise le styler, on obtient
c'est-à-dire que le styliste efface l'espace entre leTWO_DIM(10000)
Résultat
Quelle est la bonne méthode ?
1. si, auparavant, vous ne receviez pas du tout de cotations pour un ticker, n'ouvriez pas de graphique, etc. (dépend du ping, de la vitesse de l'internet, du disque dur, de la préparation du fichier Bases/Broker/history/ticker/cache/)
2. si les cotations ont été reçues précédemment et que le terminal a été rechargé, à condition qu'aucun graphique de ce ticker n'ait été ouvert (préparation du fichier Bases/Broker/History/Ticker/Cache/)
le temps est 10 à 15 fois inférieur à celui de p.1
pour comparaison, le temps d'accès en МТ4 selon le point 2, c'est-à-dire après la réinitialisation du terminal.
c'est-à-dire que le temps après le redémarrage du terminal MT4 est inférieur de quelques ordres de grandeur.
Cette fois, j'ai tout vérifié sur le Windows, sans SSD !
Quand j'ai obtenu les citations, le terminal n'a pas été redémarré, les données ont été accédées
Ai-je bien compris qu'après le chargement du cache, le terminal a besoin de beaucoup moins de temps pour les requêtes suivantes (à partir de la deuxième requête) ?
Peut-on réduire le temps du premier appel après le redémarrage du terminal pour le rendre similaire à celui de MT4 ?
Le code était dans https://www.mql5.com/ru/forum/1111/page1870#comment_4856899
Vous avez une méthode de test très sale car il n'y a pas du tout de description de l'environnement et de la méthode de lecture.
Non spécifié :
Sans cela, les conclusions ne sont pas fondées.
Par exemple, regardez EURUSD M1 - MT5 a plus de 6 millions de barres là (si le mode illimité aux graphiques), mais MT4 a combien ? Quelques dizaines de milliers de barres M1 dans la base de données actuelle ?
Vous avez une méthode de test très désordonnée car il n'y a aucune description de l'environnement et de la méthode de lecture.
Non spécifié :
limites des barres dans la fenêtre
Sans cela, les conclusions ne sont pas fondées.
On m'a posé la plupart des questions dans mon post, pas de problème, je vais vous donner toutes les données maintenant.
Tout d'abord, la réponse à la question
Le serveur MQ-demo, les données sont chargées, comme nous parlons du point 2 et du point 3 dans le post précédent. Avec le point 1 tout est clair et il n'y a pas de questions là - comme il a été écrit - les données sont chargées, le cache est formé sur le chemin spécifié.
MT4
MT5
MT4
MT5
win XP 32bit, toutes les constructions de MT, toutes les dernières
MT4 - ouvrir 1 graphique, vérifier avec un autre symbole
MT5 - 1 graphique ouvert, vérifier avec un autre symbole
répéter, recharger le terminal, envoyer le script au graphique, sélectionner un AUTRE symbole dont les données ont été chargées AVANT de recharger le terminal.
MT4
MT5
Voici mon test avec plus de détails et plus de précision :
Les fichiers de test sont joints et tous les temps sont exprimés en microsecondes (et non en millisecondes, 1 milliseconde = 1000 microsecondes).
Maintenant, les conclusions :
Aucun problème ici - le levage coûte toujours des ressources.
En particulier lorsque des architectures conceptuellement différentes sont utilisées : MT5 a des caches plus complexes (les fichiers cache\*.hc sont construits à partir des *.hcc originaux) pour des raisons de mise à l'échelle + contrôle obligatoire de la synchronisation complète avec les données du serveur (morceaux binaires *.hcc).
Il n'y a aucune défaillance dans la mise en œuvre des deux terminaux et tout fonctionne rapidement.
Je vous remercie de votre réponse.
Dans l'ensemble, les résultats sont tels que je les ai montrés dans mes posts.
J'ai fait des tests sur un régulier.
Et pourtant les résultats entre MT4 et MT5 sont presque 200 fois différents (en raison de -doit contrôler la synchronisation complète avec les données du serveur? ? et ping ? ).
Je m'y suis habitué avant de poster ici que c'est probablement une caractéristique du terminal. Je peux même vivre avec, mais c'est difficile à certains moments. Par exemple, les prix sont uniquement disponibles via CopyClose, ils ne sont pas disponibles via SymbolInfoDouble ou via MqlTick jusqu'à ce que le symbole soit ajouté à la surveillance du marché, donc ce script s'exécute "infiniment" longtemps après le démarrage du terminal. Ce n'est qu'un exemple.
Je vous remercie de votre réponse.
Dans l'ensemble, les résultats sont tels que je les ai montrés dans mes posts.
J'ai fait des tests sur un régulier.
Et pourtant les résultats entre MT4 et MT5 sont presque 200 fois différents (à cause du -contrôle obligatoire de la synchronisation complète avec les données du serveur? ? et du ping ? ).
Environ 0.6ms dans MT4, je vais encore trouver une solution. Apparemment, les données qui s'y trouvent sont déjà préparées à l'avance et ce chiffre ne montre donc pas les coûts réels.
MT4 a une idéologie assez différente et en fait le terminal copie une énorme quantité de données pour chaque script/expert au niveau du système à partir du code MQL4. Par conséquent, les mesures effectuées dans MQL4 ne démontrent généralement pas la consommation réelle des ressources pour la réception des données. Les dépenses existent bien sûr, mais elles se situent à un autre niveau - le système en est responsable.
Il est clair que le mécanisme MT4 (création de copies des données du marché pour chaque robot) ne peut pas être appliqué lorsque votre tâche est mise à l'échelle de flux de données infinis (historique profond, dizaines de milliers d'instruments). Par conséquent, j'ai dû modifier et améliorer considérablement MQL5 en me débarrassant des accès directs Open/High/Low/Close et en passant aux fonctions CopyXXX. Compte tenu de la taille des données MT5, il est trop coûteux pour un conseiller expert de construire la copie EURUSD M1 pour 6 millions de barres.
MT5/MQL5 utilise la stratégie de téléchargement des données à la demande sans copie à l'avance, ce qui signifie une meilleure possibilité de mesurer les coûts réels du code MQL5.
Amener la base de données en mémoire, vérifier la synchronisation et préparer les caches d'un objet complexe dans MT5 en 113 millisecondes est acceptable.