Nouveau MetaTrader 4 Client Terminal 387 et MetaTrader 4 Data Center build 387 - page 13

 
- J'ai mis à jour aujourd'hui (1.03.2011) une nouvelle version et j'ai commencé à avoir des problèmes avec l'indicateur IND_Correlation.mq4. Lorsque vous mettez le terminal sous tension, ou en cas d'échec de la communication à court terme, l'indicateur disparaît. Je dois soit recharger le modèle, soit passer d'une période à une autre. Ce n'est pas pratique, les gars).
 
brici:
- J'ai mis à jour aujourd'hui (1.03.2011) une nouvelle version et j'ai commencé à avoir des problèmes avec l'indicateur IND_Correlation.mq4. Lorsque vous mettez le terminal sous tension, ou en cas d'échec de la communication à court terme, l'indicateur disparaît. Je dois soit recharger le modèle, soit passer d'une période à une autre. Ce n'est pas pratique, les gars).
Aujourd'hui 2 DC ont suggéré de mettre à jour vers la version 388, peut-être que les développeurs ont corrigé quelque chose d'autre. J'ai mis à jour, je n'ai rien remarqué de mauvais jusqu'à présent. La mise à jour était du 229, j'ai été surpris au début, puis je me suis souvenu qu'il y avait un fil de discussion sur le 387.
 
Renat:

Nous cesserons de prendre en charge la version 225 au bout d'un certain temps en raison de la présence de certains bogues critiques, en prévenant tout le monde un mois à l'avance.

Je garde volontairement l'un des terminaux de construction 225 au cas où nous aurions besoin de déboguer l'interface avec la DLL. Vous avez interdit le débogage dans les versions ultérieures. D'après ce que je comprends, il s'agit d'empêcher les décompilateurs d'apparaître à nouveau. Quelle solution suggérez-vous pour ceux qui ont besoin de déboguer l'interface entre les scripts MQL et la DLL ?
 
api:
J'ai délibérément gardé l'un des 225 terminaux de construction au cas où j'aurais besoin de déboguer une interface avec une DLL. Vous avez interdit le débogage dans les versions ultérieures. D'après ce que je comprends, il s'agit d'empêcher les décompilateurs d'apparaître à nouveau. Quelle solution suggérez-vous pour ceux qui ont besoin de déboguer l'interface entre les scripts MQL et la DLL ?

En fait, il ne reste que les imprimantes ou les mécanismes de journalisation similaires.

Malheureusement, le choix entre protection et commodité a dû être fait en faveur de la protection.

 
Zhunko:

Voici les faits :

1. Vous chargez l'indicateur joint sur le graphique. Une ligne brisée apparaît.

2. Rafraîchissez la fenêtre à partir du menu contextuel - "Rafraîchir". La ligne disparaît et n'apparaît pas.

Tout se passe en raison de l'optimisation du code et de l'initialisation inutile des tampons des indicateurs lors de la mise à jour du graphique.


Merci. Nous allons essayer de trouver une solution.
 

Zhunko

L'indicateur que vous avez présenté ne tient pas du tout compte d'IndicatorCounted, qui est le principal outil d'optimisation des calculs.

Les données peuvent être modifiées non seulement par Refresh, mais aussi après un échec de la connexion. Et alors ? Votre indicateur n'en tient pas compte de quelque manière que ce soit. Ceci est incorrect.

D'ailleurs, votre indicateur ne suit pas le changement de symbole et/ou de période (et la réinitialisation des buffers l'a toujours été !). Votre exemple, au contraire, montre la nécessité d'initialiser les tampons d'indicateurs pour éviter des illusions inutiles.

 
stringo:

Zhunko

L'indicateur que vous avez présenté ne tient pas du tout compte d'IndicatorCounted, qui est le principal outil d'optimisation des calculs.

Les données peuvent être modifiées non seulement par Refresh, mais aussi après un échec de la connexion. Et alors ? Votre indicateur n'en tient pas compte de quelque manière que ce soit. Ceci est incorrect.

D'ailleurs, votre indicateur ne suit pas non plus le changement de symbole et/ou de période (et la réinitialisation des buffers l'a toujours été !). Votre exemple, au contraire, montre la nécessité d'initialiser les tampons d'indicateurs pour éviter des illusions inutiles.

Quelles illusions ? Je n'en ai pas besoin. C'est juste un balayage vertical et c'est tout. Je me fiche des données contenues dans le tampon. Du moment qu'il définit la taille verticale.

Pourquoi cette fonctionnalité vient-elle d'apparaître dans la version 387 et n'était pas présente dans les versions précédentes ? Il est certain que toutes les plaintes sur les indicateurs de nos jours sont dues à cette caractéristique inutile.

Il vaut mieux faire une fonction séparée pour l'initialisation forcée des tampons indicateurs.

 

J'ai une question pour les développeurs.

Si des indicateurs personnalisés sont utilisés, dans la bild 388 et les suivantes, je comprends que IndicatorCounted() est une garantie contre les erreurs de compte.

Mais si l'algorithme de calcul est utilisé directement dans un Expert Advisor, que dois-je faire dans ce cas ? Il semble que IndicatorCounted() ne fonctionne pas dans les Experts, du moins, je l'ai vérifié et il donne -1.

J'ai vu qu'on vous a demandé de faire une fonction, ce qui indique que le téléchargement ou la mise à jour des données a eu lieu, mais vous êtes silencieux sur ce point. C'est fondamentalement difficile à faire, ou vous n'avez tout simplement pas le temps de tout faire en même temps, ou vous n'avez tout simplement pas le temps, ou vous ne voulez pas vous en occuper ?

J'ai déjà écrit que j'ai perdu beaucoup d'argent en faisant tourner mon conseiller expert avec des données incomplètement téléchargées.

Alors que pouvez-vous conseiller pour utiliser les algorithmes de calcul directement dans l'Expert Advisor pour ne pas se heurter à des données incomplètement pompées ?

J'utilise souvent cette construction dans les conseillers experts :

void my_function()
{
   static int bars;
   int limit=Bars-bars-1;
   bars=Bars-1;
   if (limit<0) return;
   if (limit>1)
   {
      limit=Bars-period-1;
      // Еще данные
   }
   for (int i=limit; i>=0; i--)
   {
      // Расчет переменных
   }
}

Peut-être peut-on ajouter quelque chose d'autre pour augmenter la fiabilité ?

Après tout, le but du trading, comme vous le comprenez vous-même, n'est pas seulement de calculer et de dessiner des indicateurs personnalisés et autres, mais avant tout de gagner de l'argent. Le marché est déjà extrêmement mobile et complexe, et vous ne pouvez probablement pas imaginer à quel point les nerfs sont parfois mis à rude épreuve lorsqu'on travaille sur des comptes réels. Et lorsque vous devez faire attention aux défauts de conception des terminaux, cela met à rude épreuve votre santé, votre esprit et tout le reste. Après tout, la programmation du terminal est un objectif et une tâche très complexes, mais très spécifiques. Et le traitement d'un signal qui se tortille en permanence, dont la fréquence, l'amplitude, les spreads, les nouvelles, la manipulation des prix par les banques et les grands traders, la cupidité des courtiers, en général, c'est comme sur un champ de mines. Avec ce problème, même les docteurs deviennent comme des petits enfants et quittent le Forex avec terreur, s'ils ont essayé. La perte de grosses sommes d'argent ou de dépôts en général ressemble à la mort d'une personne. Puis elle se retourne et recommence. Je vous respecte en tant que bon professionnel dans votre domaine, et ce que vous avez fait fonctionne déjà bien en général, mais j'espère que vous ferez un produit meilleur et plus fiable au final.

 
ANG3110:

J'ai une question pour les développeurs.

Bien que je ne sois pas un développeur, mais laissez-moi en dire un peu.

Si des indicateurs personnalisés sont utilisés, dans la bild 388 et les suivantes, je comprends que IndicatorCounted() est une garantie contre les erreurs de compte.

C'était dans toutes les versions, ils ont juste corrigé quelques bugs.

Mais si l'algorithme de calcul est utilisé directement dans un Expert Advisor, que dois-je faire dans ce cas ? Il semble que IndicatorCounted() ne fonctionne pas dans les Experts, du moins, je l'ai vérifié et il donne -1.

Il ne fonctionne pas et ne fonctionnera pas

J'ai vu qu'on vous a demandé de faire une fonction, ce qui indique que le téléchargement ou la mise à jour des données a eu lieu, mais vous êtes silencieux sur ce point. C'est fondamentalement difficile à faire, ou vous n'avez tout simplement pas le temps de tout faire en même temps, ou vous n'avez tout simplement pas le temps, ou vous ne voulez pas vous en occuper ?

MT4 ne sera pas modifié - correction de bugs tout au plus

J'ai déjà écrit que j'ai perdu beaucoup d'argent en faisant tourner mon conseiller expert avec des données incomplètement téléchargées.

Ce ne sont que des mots... Nous avons besoin d'un débriefing sur le pourquoi et le comment... Cela peut être la faute d'un algorithme erroné ou non documenté du conseiller expert.

Alors quels conseils avez-vous pour utiliser les algorithmes de calcul directement dans l'Expert Advisor pour ne pas se heurter à des données insuffisamment remplies ?

Nous devons décider de la terminologie. Qu'est-ce qu'une "donnée sous-gonflée" ? Vous pouvez créer dans votre EA votre fonction IndicatorCounted(), telle que celle-ci : https://www.mql5.com/ru/articles/247.

Peut-être pouvez-vous ajouter quelque chose d'autre pour augmenter la fiabilité ?

En outre, vous pouvez suivre le saut de barres et, sur cette base, considérer que l'historique est incomplètement téléchargé, etc.

 

AlexSTAL:

Ce ne sont que des mots... Nous avons besoin d'un débriefing sur le pourquoi et le comment... Cela peut être la faute d'un algorithme incorrect/incomplet du conseiller expert.

Alors quel est votre conseil lorsque vous utilisez des algorithmes pour calculer directement dans l'EA afin de ne pas vous retrouver avec des données sous-pompées.

Nous devons définir la terminologie. Qu'est-ce qu'une "donnée insuffisamment remplie" ? Vous pouvez créer dans votre EA votre fonction IndicatorCounted(), telle que celle-ci : https://www.mql5.com/ru/articles/247.

Peut-être pouvez-vous ajouter quelque chose d'autre pour augmenter la fiabilité ?

En outre, vous pouvez suivre le saut de barres et, sur cette base, considérer que l'historique est sous-quantifié, etc.

OK, je vais regarder l'article auquel vous faites référence.

A propos des données sous-jacentes... Maintenant, en raison du passage du temps, je ne pourrai pas citer les journaux. Mais ça ressemblait à quelque chose comme ça.

Sur l'ATC d'American broker, l'EA est restée allumée et le terminal était fermé. Le lendemain, le terminal a été ouvert et après l'ouverture et la connexion automatique, il y a eu une pause sans aucune cotation. Le conseiller expert a envoyé une demande supplémentaire pour ouvrir une position et l'historique a commencé à être échangé et la position a été ouverte selon les calculs du jour précédent dans la zone où elle aurait dû être fermée, mais elle a juste été ouverte et perdue instantanément contre le marché qui se déplaçait dans la direction opposée. La position a fini par être fermée avec une perte importante, je ne me souviens pas de combien elle a été perdue mais beaucoup.

Un autre cas. J'ai laissé un Expert Advisor avec un calcul de canal dans son algorithme, quelque chose de similaire à Bollinger, mais nécessitant de nombreuses barres car il avait un algorithme d'adaptation. Je n'ai pas vu le moment où l'échange a commencé, mais je l'ai vu environ 20 minutes plus tard. Il s'est avéré que les écarts par rapport à la moyenne adaptée n'ont pas été pris en compte et que le canal s'est brisé en ligne, comme s'il se trouvait sur la moyenne. Mon conseiller expert ouvrait et fermait une position après l'autre et il a perdu environ 4 500 $ en 20 minutes par 0,2-0,3 lots. 4,500$ dans un marché totalement gagnant. Cela pourrait se produire s'il y avait très peu de données ou si quelque chose manquait pour le modèle que j'ai cité plus haut.

Maintenant, j'éteins toujours les EA après avoir négocié. Maintenant, je les désactive toujours lorsque j'ouvre à nouveau le terminal et j'attends que les données soient pompées, puis je ne les active que lorsque je suis sûr de moi.

Raison: