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, laissez-moi reformuler. Dans les limites du mql, c'est à peu près possible, en fonction de la vitesse d'horloge du processeur.
Et pour le PWM ? -Un signal d'impulsion de fréquence constante et de rapport cyclique variable.
N'y a-t-il pas une constante ?
Tout d'abord, lisez ce qu'est la fonction Sleep de WinAPI et ce qu'elle fait réellement.
PS Windows n'est pas un système en temps réel
Tout d'abord, lisez ce qu'est la fonction Sleep de WinAPI et ce qu'elle fait réellement.
PS Windows n'est pas un système en temps réel
Ahem, qu'est-ce que WinAPI Sleep a à voir avec ça ?
Lorsque nous parlons de glissement microseconde
Individuellement, pour votre processeur, vous pouvez définir la fréquence du timer et calculer le nombre de répétitions.
Vous pouvez donc écrire votre propre MicrosecondCount en mql, mais quel est l'intérêt ? Le standard est suffisant.
Ahem, je suis gêné de demander, qu'est-ce que WinAPI Sleep a à voir avec ça ?
Quand on parle de glissement de microseconde
Individuellement, pour votre processeur, vous pouvez définir la fréquence du timer et calculer le nombre de répétitions.
Vous pouvez donc écrire votre propre MicrosecondCount en mql, mais quel est l'intérêt ? Le standard est suffisant.
Votre propre glissement en attente sans changement de contexte consommera votre cœur à 100%.
C'est une méthode de programmation qui donne la chair de poule. Dieu interdit qu'un tel code se répande sur le marché.
Votre fiche d'attente sans changement de contexte consommera votre cœur à 100%.
C'est une méthode de programmation horrible. Dieu interdit qu'un tel code se répande sur le marché.
Et personne n'a nié le hardcore ;))
Si vous montrez un exemple de changement de contexte, vous pourrez peut-être vous améliorer ?
Voici la charge CPU pour µsSLEEP (µsRange), sur VirtualBox avec seulement 2 cœurs, 4 threads.
Les mineurs font pire que ça.)
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Bibliothèques : Séquence
fxsaber, 2020.10.13 12:54
Un exemple d'un EA qui va tuer la plupart des VPS.Je l'utilise sur quelques graphiques de différents symboles. J'ai utilisé ce script avec inAmount = 5 pour automatiser cette action.
Résultat.
Le terminal nécessite plus de 4 Go de mémoire pour exécuter ces six conseillers experts. Veuillez noter qu'il n'est nécessaire que pour l'initialisation, et non pour le fonctionnement de ces EA. Imaginez que vous démarrez le terminal avec les Expert Advisors qui s'y trouvent. Si vous ne disposez pas de 4 Go de RAM honnêtes, c'est presque un désastre.
Maintenant, supprimons le commentaire de cette ligne dans le code source.
Ainsi, nous avons permis l'initialisation séquentielle des Expert Advisors.
Regardons le résultat (après recompilation).
Au démarrage des conseillers experts, nous avons réussi à réduire la consommation de mémoire du terminal de plus de 2,5 Go. La probabilité de pannes de VPS (et d'ordinateurs domestiques faibles) a considérablement diminué.
Voici comment les deux parcours se présentent en dynamique.
Le lancement séquentiel a étiré l'initialisation globale dans le temps, mais a réussi à empêcher le terminal de consommer d'énormes quantités de RAM.
Lesgraphiques supérieur et inférieur montrent clairement le processus d'initialisation parallèle (pic supérieur gauche) et six initialisations consécutives (six pics intermédiaires ).
SZY Pendant les expériences, une nuance désagréable avec Sleep est apparue - voir le code source.
Je demande d'une manière ou d'une autre de permettre de libérer la mémoire par la force après avoir utilisé CopyTicks. Pas pour créer de telles béquilles du sommeil.
Veuillez me recommander le moyen le plus économique de demander l'historique des tiques à un intervalle donné.
il me semble que vous ne cherchez pas un produit bon marché, mais un moyen de libérer rapidement de la mémoire.
comme une option à vérifier :
- envelopper le tableau dynamique MqlTick Ticks[] dans la classe et créer un objet avec new (c'est-à-dire aussi un objet dynamique), le supprimer lorsque vous n'en avez plus besoin.
- la même chose, mais avec une structure, mais dans une portée locale ( ou fonction ou bloc local { } - ou boucle avec une itération ? ), les structures ne fonctionnent pas aussi bien que les classes - j'ai réécrit la plupart de mon code EA en m'éloignant des classes et en les remplaçant par des structures de données, la vitesse d'optimisation a augmenté de manière significative - peut-être est-ce un effet subjectif - peut-être que les nouvelles versions sont plus rapides
- Essayez d'ajouter ArrayFree() au destructeur.
Je ne pense pas que vous en cherchiez un bon marché, mais un moyen de libérer rapidement de la mémoire.
Le terminal ne libère pas de mémoire. Les variables MQL n'ont rien à voir avec cela.
Le terminal ne libère pas de mémoire. Les variables MQL n'ont rien à voir avec cela.
que se passe-t-il si vous forcez la taille = 1 ?
et si vous le faites^
et si
Après avoir appelé CopyTicks, le terminal conserve toutes les données en mémoire pendant quelques secondes. Juste au cas où quelqu'un voudrait relire un morceau de l'histoire des tiques.
C'est-à-dire que la quantité de mémoire ainsi consommée par le Terminal ne dépend pas de la taille des variables MQL.
La tâche consiste à forcer le terminal à libérer la mémoire.