Erreurs, bugs, questions - page 51

 

Je vois que la confusion se résume à une chose : comment se manifeste-t-elle ?

Je m'explique : lorsqu'un nouveau tick arrive, il se fige pendant une demi-seconde et aucune fonction n'est exécutée, après quoi l'exécution continue comme si les fonctions arrêtées avaient déjà été exécutées,

Ainsi, si vous numérotez le tableau 1 2 3 4 5 6 et qu'une tique arrive sur le numéro 4, le tableau sera numéroté 1 2 3 5 6.

(il s'agit d'un exemple et non d'une exécution spécifique).

Mais l'exécution est la même,

A chaque itération, les boules sont déplacées d'une position,

quand un tick arrive, certaines boules peuvent même disparaître de l'affichage (c'est clairement visible si vous mettez un délai dans le script en dessous de 500, enfin, pour différentes machines c'est différent, peut-être que sur une machine puissante le délai devrait être de 100 pour manifester le glitch) ,

puis à de nouvelles itérations sont restaurés, la même chose se produit lorsque vous chargez l'arrière-plan (surtout il apparaît à haute résolution Étape 4-3 et ci-dessous)

Apparaît plus souvent sur les piles inférieures seulement parce que le temps de chargement en arrière-plan avec tant d'objets plus, respectivement, et une plus grande probabilité d'obtenir sous la pression d'un nouveau tick.

 
stringo:

Lorsqu'un tick arrive sur le terminal du client, il doit être appliqué à plusieurs endroits à la fois - dans l'aperçu du marché, dans l'historique, dans les graphiques ouverts. En même temps, les indicateurs sont recalculés. Que voulez-vous ?

Si vous disposez d'un seul cœur et que les graphiques sont ouverts au maximum, la mise en œuvre des autres composants sera bien sûr ralentie - les ressources doivent être partagées.

En général, c'est une drôle de façon de dire les choses. Quel est le rapport avec OnTick() et comment interfère-t-il avec les autres fonctions ?

Dans un système, un programme MT-5 est exécuté en mode visuel, un graphique est ouvert dans MT-5, un script (ou conseiller) est exécuté sur le graphique.

Et avec tout cela pour changer les coordonnées de trois objets, il n'y a pas assez de temps machine lorsqu'un nouveau tic-tac arrive ? ???.

 
Urain:

Et avec tout cela pour changer les coordonnées de trois objets, il n'y a pas assez de temps machine lorsqu'un nouveau tic-tac arrive ? ???.

N'oubliez pas qu'il y a 3600 objets texte Label à l'écran en même temps, dessinés d'une manière pas très économique (dessiner des cercles dans la police est manifestement à courte vue).

Essayez de mettre une image BMP au lieu de 3600 objets pour obtenir de meilleures performances.

Sans substrat de 3600 objets tout vole.

 
Renat:

Il ne faut pas oublier qu'il y a 3600 objets textuels Label à l'écran simultanément, dessinés d'une manière peu économique (dessiner des cercles dans une police de caractères est manifestement myope).

Essayez de mettre une image BMP au lieu de 3600 objets - ce sera beaucoup plus lent.

Sans un substrat de 3600 objets, tout s'envole.

C'était mon plan initial (l'arrière-plan devrait en fait être créé lors du chargement en fonction de la situation actuelle du marché),

Je n'arrive pas à faire un arrière-plan à partir de points mais il n'est sauvegardé qu'en gif,

Je dois télécharger bmp,

Vous ne pouvez pas utiliser les outils mql, vous avez besoin d'un outil de traduction mql tiers (je voulais tout faire en mql).

Je voudrais montrer à quel point il est facile d'amener les commerçants à travailler avec moi.

(et vous devez le lier au prix et au temps).

Comment pouvez-vous dire que j'ai 3600 pas=3 ? J'ai 40 000 pas là.

 

Selon toute vraisemblance, nous ferons du nouvel objet graphique un bitmap modifiable et un ensemble d'opérations primitives sur celui-ci.

Il sera ainsi possible de dessiner des graphiques complexes à l'intérieur d'un seul objet, ce qui élimine la nécessité de gérer des centaines ou des milliers d'objets.

 
Renat:

Selon toute vraisemblance, nous allons créer un nouvel objet graphique sous la forme d'un bitmap modifiable et un ensemble d'opérations primitives sur celui-ci.

Ainsi, il sera possible de dessiner des graphiques complexes à l'intérieur d'un seul objet, ce qui éliminera la nécessité de gérer des centaines ou des milliers d'objets.


Ce serait formidable, car j'ai été confronté à de telles situations assez souvent sur la 4,

Il est clair que vous avez investi dans les ordres de commerce en premier lieu, et les graphiques en second lieu.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 

tout est désactivé, l'auto-trading est interdit, mais les messages continuent à arriver, c'est-à-dire qu'il s'avère que l'expert travaille, ce sont les messages de l'expert... ça ne devrait pas être comme ça

 
Prival:

tout est désactivé, l'auto-trading est interdit, mais les messages passent, c'est-à-dire qu'il s'avère que le Conseiller Expert fonctionne, ce sont les messages du Conseiller Expert... ça ne devrait pas être comme ça

En ce qui me concerne, l'interdiction du "trading automatique" ne signifie pas que l'EA ne fonctionne pas. Apparemment, il n'y a pas de contrôles supplémentaires dans le code de l'EA pour d'éventuels problèmes de trading...
 
Prival:

tout est désactivé, l'auto-trading est interdit, mais les messages continuent à arriver, c'est-à-dire qu'il s'avère que l'expert travaille, ce sont les messages de l'expert... ça ne devrait pas être comme ça

Vous avez raison, le conseiller expert n'est pas interdit, le trading automatique est seulement interdit.

Voici une référence

Разрешить/запретить совершение торговых операций советниками и скриптами. Функция данной кнопки аналогична настройке терминала на вкладке "Советники".

Je pense que cette interdiction vient du terminal.

Par conséquent, vous devez utiliser la fonction AccountInfoInteger(ACCOUNT_TRADE_EXPERT) avant les ordres de négociation pour éviter d'obtenir des messages d'erreur dans le journal lors de la passation des ordres.

 

Seules les opérations de trading sont interdites, et le Conseiller Expert fonctionne, essayant de trader avec les erreurs correspondantes. Pour éviter que cela ne se produise, vous devez vérifier l'état du terminal avant d'analyser les transactions à l'aide de la fonction

if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5