Erreurs, bugs, questions - page 2961

 
Une question s'est posée : faut-il ou non recalculer la marge de change ? Je vois dans les rapports MT qu'il n'est pas recalculé. Par exemple, le compte est en dollars, j'achète du gazmec ou autre chose coté en roubles (marge en roubles). À ce moment-là, le compte bloque la marge en dollars au taux de change en vigueur au moment de l'achat. Mais au bout d'un certain temps, le lendemain, par exemple, en raison des changements dans l'usdrub, en théorie, nous devrions obtenir un montant différent de marge en dollars.
 

Veuillez nous faire part de vos réflexions sur cette tâche (MT4) :

L'indicateur doit écrire le numéro d'entrée quelque part. Et le conseiller expert doit le lire.


Je l'ai fait par le biais de variables globales. Mais cette implémentation me donne une lenteur sur GlobalVariableGet jusqu'à 100ms sur le serveur distant ! Très souvent - des dizaines de ms. Bien que je n'utilise GlobalVariableFlush nulle part, j'ai décidé de m'assurer contre d'éventuels retards de disque dur et j'ai tout converti en GlobalVariableTemp. Ça n'a pas aidé.


Ensuite, j'ai transféré tous les transferts/réceptions de données via les ressources. Ça s'est beaucoup amélioré. Il est rare que quelques millisecondes nous échappent. Dans l'ensemble, les performances se sont considérablement améliorées, le freinage brutal à plat a disparu.


Cependant, une question s'est posée : existe-t-il un autre moyen de résoudre le problème ? J'ai pensé à écrire un nombre sur une propriété du tableau. Devoir se tortiller là où je n'avais pas l'intention de le faire.


Qui utiliseGlobalVariableGet sur son VPS, pouvez-vous me dire combien de temps cela prend pour s'exécuter.

 
fxsaber:

Veuillez nous faire part de vos réflexions sur cette tâche (MT4) :

L'indicateur doit écrire le numéro d'entrée quelque part. Et le conseiller expert doit le lire.

Est-ce queEventChartCustom ne convient pas ?

Pourquoi ne pas simplement le mettre dans le tampon et ne pas le faire lire par le conseiller expert ? Ou l'indicateur doit-il être lancé séparément ?

 
Andrey Khatimlianskii:

EventChartCustom ne convient pas ?

Pourquoi ne pas simplement le mettre dans le tampon et le lire par l'EA ? Ou l'indicateur doit-il être exécuté séparément ?

Voici HistoryTicks - la capture de tous les ticks pour les Expert Advisors. Par conséquent, EventChartCustom n'est pas adapté, il possède sa propre file d'attente. Il en va de même pour le tampon.

 
fxsaber:

Veuillez nous faire part de vos réflexions sur cette tâche (MT4) :

L'indicateur doit écrire le numéro d'entrée quelque part. Et le conseiller expert doit le lire.


Je l'ai fait par le biais de variables globales. Mais cette implémentation me donne une lenteur sur GlobalVariableGet jusqu'à 100ms sur le serveur distant ! Très souvent - des dizaines de ms. Bien que je n'utilise GlobalVariableFlush nulle part, j'ai décidé de m'assurer contre d'éventuels retards de disque dur et j'ai tout converti en GlobalVariableTemp. Ça n'a pas aidé.

Ensuite, j'ai transféré tous les transferts/réceptions de données via les ressources. Ça s'est beaucoup amélioré. Il est rare que quelques millisecondes nous échappent. Dans l'ensemble, les performances se sont considérablement améliorées, le pire des freins ayant disparu sur un point plat.

Cependant, une question s'est posée : existe-t-il un autre moyen de résoudre le problème ? J'ai pensé à écrire un nombre sur une propriété du tableau. Devoir se tortiller là où je n'avais pas l'intention de le faire.

Si vous utilisezGlobalVariableGet sur votre VPS, veuillez indiquer combien de temps il faut pour l'exécuter.

Dans l'indicateur, vous créez une variable int, l'initialisez et enregistrez le nombre.
Dans l'indicateur, définissez une fonction personnalisée qui renvoie cette variable.
Définissez la fonction avec le mot-clé export.
Importez cette fonction dans le conseiller expert à partir de name_indicator.ex4
Appelez la fonction lorsque cela est nécessaire.
Je n'ai pas mesuré la vitesse.

 
Bon moment !

Code emprunté à l'article sur les objets graphiques, MT5 le cas échéant.

1. Premier problème : les boutons que j'ai créés fonctionnent sur un compte démo/réel, mais pas sur un visualiseur. Je n'ai pas trouvé de conditions telles que MQLInfoInteger(MQL_TESTER) pour le testeur de stratégie.

2. J'ai essayé d'ajouter des points de freinage et de déboguer le code mais le débogage a ignoré les points de freinage.

3. Pourquoi debug ouvre-t-il toujours automatiquement les tests dans le visualiseur ?

J'ai essayé de déboguer dans un autre MT5, même problème.
J'ai mis en œuvre ces tests en utilisant OHLC.

Quel est votre conseil ?
 
Roman:

Pas chaud, mais déjà chaud

 
A100:

Pas chaud, mais déjà chaud

Pour que cela reste chaud, utilisez le mappage de fichiers avec la synchronisation des événements.

 
fxsaber:

Veuillez nous faire part de vos réflexions sur cette tâche (MT4) :

L'indicateur doit écrire le numéro d'entrée quelque part. Et le conseiller expert doit le lire.


Je l'ai fait par le biais de variables globales. Mais cette implémentation me donne une lenteur sur GlobalVariableGet jusqu'à 100ms sur le serveur distant ! Très souvent - des dizaines de ms. Bien que je n'utilise GlobalVariableFlush nulle part, j'ai décidé de m'assurer contre d'éventuels retards de disque dur et j'ai tout converti en GlobalVariableTemp. Ça n'a pas aidé.


Ensuite, j'ai transféré tous les transferts/réceptions de données via les ressources. Ça s'est beaucoup amélioré. Il est rare que quelques millisecondes nous échappent. Dans l'ensemble, les performances se sont considérablement améliorées, le pire des freins ayant disparu sur un point plat.


Cependant, une question s'est posée : existe-t-il un autre moyen de résoudre le problème ? J'ai pensé à écrire un nombre sur une propriété du tableau. Devoir se tortiller là où je n'avais pas l'intention de le faire.


Qui utiliseGlobalVariableGet sur son VPS, veuillez vérifier son temps d'exécution.

Si l'utilisation de user32.dll n'est pas critique, voici une autre option. Je ne me souviens pas des mesures, mais j'ai écrit ci-dessous qu'il semble fonctionner rapidement. Vous avez demandé là pourquoi j'ai besoin de rapidité :)) La solution
est universelle (je peux l'utiliser entre les terminaux aussi), pas événementielle. Vous devrez travailler avec la minuterie. Cependant, le temps minimum entre les événements dansOnChartEvent ne peutpas non plus être inférieur à 1/64 de seconde.

 
Roman:

Pour le rendre chaud, utilisez le mappage de fichiers avec la synchronisation des événements.

Conseil - en MQL pur, pensez... Il m'est venu à l'esprit