Erreurs, bugs, questions - page 2612

 
Bonjour chers collègues, quelqu'un sait-il pourquoi le terminal MT4 sur android ne compte pas certaines positions fermées dans les bénéfices, bien qu'elles soient affichées dans l'historique ?

Peut-être que c'est un bug ?
 
fxsaber:

Plus intéressant. Il ne se bloque pas en mode débogage. Mais en mode complet, il est gelé.

J'ai localisé le problème.

#include <WinAPI\WinAPI.mqh>

#define  GA_ROOT           0x00000002

void OnDeinit( const int )
{
  static const int ControlID[] = {0xE81E, 0x804E, 0x2712, 0x4196};
  
  long Handle = user32::GetAncestor(::ChartGetInteger(0, CHART_WINDOW_HANDLE), GA_ROOT);
                                                                                        
  for (int i = 0; i < sizeof(ControlID) / sizeof(int); i++)                             
    Handle = user32::GetDlgItem(Handle, ControlID[i]);

  ushort Str[6];
  user32::GetWindowTextW(Handle, Str, sizeof(Str) / sizeof(ushort)); // Freeze
}


Vous exécutez ce conseiller expert sur un graphique, puis vous le démontez à la main. Le terminal est suspendu.

L'exécution du même code dans toute autre fonction On ne sera pas bloquée.

 
Soudain, il y a un dossier dans le dossier Tester pour un troisième agent (port 3002), qui n'a jamais existé auparavant. Je n'ai rien changé, et je n'ai pas lancé le manager. Les dossiers des deux autres agents (normaux) contiennent également des fichiers récents datant d'aujourd'hui. Qu'est-ce que ça peut être ? Je peux tuer l'autre ?
 
Stanislav Korotky:
Je peux clouer l'autre ?

Vous pourriez supprimer tout le dossier Tester, ne laissant que le cache.

 

Pouvez-vous me dire si c'est un bug ou non ?

struct A { int i; };

struct B : public A { int j; };

void OnStart()
{
  B b;
  
  DebugBreak();
}

Le champ i est manquant.

 

Il y a un problème constant avec le terminal :

1- Nous allumons les panneaux de dessin et de calendrier. Placez-les en ligne avec le principal.

2 - compresser le terminal à la moitié de l'écran

3 - Ouvrez le terminal en plein écran et les barres de dessin et de temps apparaissent comme une "deuxième ligne" ! Ainsi, un grand espace de l'écran est occupé par un vide inutile !

Mais le terminal devrait être capable de se souvenir de leurs positions et de les rétablir.

De plus, si vous prenez le premier d'entre eux, il n'en prendra pas 2 d'un coup, ce à quoi vous vous attendez, mais un seul... Il vous suffit donc de les faire glisser un par un vers l'arrière !

Et en général, ils sont si grands qu'il faut tout diviser par deux ou trois !

Et il serait préférable de rendre les cadres des fenêtres des cartes plus minces aussi ! Maintenant, ils sont si conventionnels - tout en briques...

C'est juste une question d'ergonomie, d'impression générale et de commodité générale !

Il y a toujours des problèmes d'ergonomie dans notre pays ! Elle est constamment négligée. Les produits étrangers sont généralement gagnants dans ce sens. Je ne parle pas des terminaux d'autres fabricants, je veux dire en général ! Vous pouvez prendre l'industrie automobile ou l'électronique... N'importe quoi... C'est comme ça depuis l'époque de l'URSS et de l'économie planifiée.

Ce serait bien de pouvoir enfin battre ce truc !

 
Михаил:

Et de toute façon, ils sont si grands qu'ils doivent tout diviser par deux ou trois !

Ne devez-vous pas penser aux personnes qui ne peuvent pas voir à cent pour cent ? Peut-on déjà les supprimer ? Ne serait-il pas plus facile pour vous de porter des lunettes pour que les boutons ne paraissent pas si gros ?

 
Alexey Viktorov:

Ne devez-vous pas penser aux personnes qui ne peuvent pas voir à cent pour cent ? Peut-on déjà les supprimer ? Ne serait-il pas plus facile pour vous de porter des lunettes pour que les boutons ne paraissent pas si gros ?

Vous avez besoin d'un ajustement... Je comprends qu'il existe différents types de vue. L'écran peut être grand ou l'ordinateur portable peut être petit... C'est pourquoi vous avez besoin d'un ajustement ! Et pour que le terminal n'oublie pas la position des éléments...

Les gens passent progressivement des moniteurs aux téléviseurs... C'est très pratique. Sur un téléviseur, les grosses commandes sont un gaspillage d'espace. Sur un ordinateur portable, il est pratique d'avoir des contrôles plus grands... Vous avez besoin d'options.

La plate-forme n'est plus petite. Tant de choses compliquées et sérieuses ont été faites. Et le design, à bien des égards, est vieux, il n'a pas changé depuis longtemps...

 

Question sur GetMicrosecondCount()

La fonction GetMicrosecondCount() renvoie le nombre de microsecondes qui se sont écoulées depuis que le programme MQL5 a commencé à fonctionner.

Ai-je bien compris que cette fonction se bloque lorsqu'on lui demande de fermer - ouvrir - modifier l'ordre - la position ?


Méthode de contrôle

Ouverture de 20 postes

Modification de 20 postes

GetMicrosecondCount()

Fermeture de 20 postes

Mesure GetMicrosecondCount()


Par conséquent, toutes les positions sont fermées à des intervalles de 70 000 microsecondes. Tous les 20, mais si nous regardons visuellement dans le terminal, nous pouvons voir que certaines positions attendent d'être fermées pendant 2-5 secondes !

 
Vladimir Pastushak:

Question sur GetMicrosecondCount()

Et à la fin de la vidéo, le journal d'impression indique

OD 0 22:58:46.604 Test (EURUSD,M15) 66190

GJ 0 22:58:46.669 Test (EURUSD,M15) 65134

GQ 0 22:58:55.914 Test (EURUSD,M15) 67867 La différence entre cette valeur et la précédente est de 9 secondes, mais GetMicrosecondCount() montre 67867 msec

PD 0 22:58:56.715 Test (EURUSD,M15) 66139