MT5 et la vitesse en action - page 92

 
fxsaber:

Surveillez l'écart entre l'heure locale et l'heure actuelle.

Et si TimeLocal() est décalé dans ces situations, la cause est-elle dans le système d'exploitation ?
 
Vasiliy Pushkaryov:
Et si TimeLocal() prend du retard dans de telles situations, la cause est-elle dans le système d'exploitation ?

TimeLocal n'est pas loin derrière. L'écart est un courtier.

 
Vasiliy Pushkaryov:

Peut-être que quelqu'un a fait l'expérience, quelle peut être la raison de tels hoquets ou freins ?

La première chose qui me vient à l'esprit est un bogue dans le code qui fait que le calcul dure très longtemps (par exemple, dans le cycle de 1 à 10, tout l'int est exécuté à cause du bogue).

 
fxsaber:

TimeLocal n'est pas loin derrière. L'écart est un courtier.

Merci. Je vais essayer.
 
Andrei Trukhanovich:

La première chose qui me vient à l'esprit est un bug dans le code qui déclenche un calcul qui prend beaucoup de temps (par exemple, dans le cycle de 1 à 10, tout l'int est exécuté à cause du bug).

Il est écrit dans l'aide qu'un EA bouclé ne peut pas perturber le travail des autres programmes. Tout se fige, puis recommence à fonctionner.

J'ai 7 bornes MT4 et trois bornes MT5 en parallèle. Peut-être n'y a-t-il pas assez de capacité ?



 
Vasiliy Pushkaryov:

Il semble être écrit dans l'aide qu'un EA en boucle ne peut pas perturber les autres programmes. Et là, tout se fige, puis tout recommence à fonctionner.

Oui, c'est étrange, je n'ai vu que l'onglet des experts, je n'ai pas vu les journaux la première fois.

Il y a 7 terminaux MT4 et trois terminaux MT5 fonctionnant en parallèle. Peut-être n'y a-t-il pas assez de capacité ?

Si c'est le cas, il est probable que tous les terminaux seront ralentis. De plus, la charge du CPU devrait atteindre 100% dans ce cas.

 

L'ensemble TerminalA - les terminaux qui ont des données ping (xxx ms) vers les points d'accès.

L'ensemble TerminalB - les terminaux qui n'ont pas de données ping (n/a) vers les points d'accès.


Les terminaux des deux ensembles peuvent être connectés au même point d'accès et effectuer des transactions de la même manière : envoi d'un ordre et réception d'une réponse.


TerminalA charge le processeur le moins possible.


TerminalB :

  • charge le CPU autant que possible.
  • après le redémarrage reste TerminalB.
  • Après "Rescan network" (manuellement via GUI) change le type à TerminalA. En conséquence, il arrête de charger le CPU.


Si vous rencontrez une charge CPU inexplicablement élevée, essayez de numériser à nouveau. Cela m'a aidé à changer tous les TerminalB en TerminalA.

 

Je ne sais pas pourquoi, mais mon courtier semble avoir plus de chiffre d'affaires, de nombre de transactions et de nombre de comptes actifs sur MT5 que sur MT4.

Malheureusement, il n'existe que des informations globales par plateforme.

Количество закрытых позиций :129 714
Торговый оборот ($) :$ 5 747 296 372
Активных счетов :498

Mais les preuves circonstancielles suggèrent que MT5 est en avance sur MT4. Les raisons de cet état de fait ne peuvent être que devinées.


Ce que je sais des clients :

  • >95% des transactions (~99% du chiffre d'affaires) sont des transactions automatiques.
  • Chez certains clients, le terminal MT5 consomme > 10 gigaoctets de mémoire (caches historiques), alors que MT4, pour le même volume, consomme < 1 gigaoctet. Malgré cela, vous êtes prêt à surpayer pour un VPS plus puissant, mais vous traitez exactement sur MT5, et non sur 4.
  • Presque tous sont des revendeurs. Les principaux bénéfices sont générés par les transactions à plat du soir et de la nuit.
  • L'activité élevée (du côté positif par rapport aux autres courtiers) pendant la période de reconduction - spreads énormes.
 
fxsaber heure actuelle.

Merci pour le conseil. J'ai vu cette situation. Dans OnTimer() a surveillé la divergence entre TimeLocal() et TimeCurrent()


Depuis hier soir à 21:58 TimeCurrent() a commencé à retourner la même heure. Diffusé aujourd'hui à 00:08. C'est-à-dire qu'un peu plus de deux heures ont été consacrées à cette situation par tous les personnages.

 

Pas une machine distante (pas un VPS) avec de bonnes spécifications et un ping vers le serveur de trading <4ms a vu de nombreux cas de lags réguliers lors de la visualisation des logs du Terminal (b2958).


J'ai pris le premier que j'ai vu pour la démonstration ici.

2022.01.18 23:00:09.375  Trades  '': modify order #7133346 sell limit 0.23 USDCHF at 0.91744 sl: 0.00000 tp: 0.91709 -> 0.91741, sl: 0.00000 tp: 0.91709
2022.01.18 23:00:17.752  Trades  '': accepted modify order #7133346 sell limit 0.23 USDCHF at 0.91741 sl: 0.00000 tp: 0.91709 -> 0.91741, sl: 0.00000 tp: 0.91709
2022.01.18 23:00:17.769  Trades  '': modify #7133346 sell limit 0.23 USDCHF -> price: 0.91741, sl: 0.00000, tp: 0.91709) done in 8393.712 ms


La modification du limiteur a duré huit secondes. La plupart des modifications prennent à peu près ce temps.

2022.01.18 23:11:00.751 Trades  '': modify #7133346 sell 0.23 USDCHF sl: 0.00000, tp: 0.91711 -> sl: 0.00000, tp: 0.91712
2022.01.18 23:11:00.761 Trades  '': accepted modify #7133346 sell 0.23 USDCHF sl: 0.00000, tp: 0.91711 -> sl: 0.00000, tp: 0.91712
2022.01.18 23:11:00.763 Trades  '': modify #7133346 sell 0.23 USDCHF -> sl: 0.00000, tp: 0.91712 done in 12.422 ms


Même pour un ping de 4 ms, c'est beaucoup, mais ce n'est rien comparé à huit secondes.


Seuls les terminaux MT5 fonctionnent sur cette machine et la charge moyenne du CPU est de ~1%. L'analyse a montré que pendant le freinage, la charge peut atteindre 100 % lorsque le marché et les ordres de négociation sont très actifs. En conséquence, il faut un temps TRÈS long pour recevoir la réponse du serveur commercial au terminal. En cas de lenteur, j'ai demandé des informations au courtier. Du côté du serveur de négociation, tout est instantané et l'ordre atteint le serveur depuis le terminal sur la première ligne. C'est-à-dire que l'envoi des ordres n'est pas ralenti, les retards se produisent lors de la réception de la réponse au terminal.


Je doute que les développeurs soient en mesure d'améliorer quoi que ce soit ici. Qui est TRES actif dans le trading, veuillez partager vos observations sur ce sujet avec vos journaux.