prev_calculé - page 7

 
Alexander Puzanov:

Vous avez un jugement erroné sur ces trois points.

prev_calculate affiche le nombre de BARs comptés (traités) lors de l'appel précédent. C'est un axiome.

Si l'historique a changé, gonflé, ou si l'indicateur n'a pas encore été calculé - valeur de prev_calculate==0. Ceci est également un axiome.

Quelle est la partie qui n'est pas claire ?

 
Karputov Vladimir:

Vous avez un jugement erroné sur ces trois points.

prev_calculate affiche le nombre de BARs comptés (traités) lors de l'appel précédent. C'est un axiome.

Si l'historique a changé, gonflé, ou si l'indicateur n'a pas encore été calculé - valeur de prev_calculate==0. Ceci est également un axiome.

Quelle est la partie qui n'est pas claire ?

Seuls deux problèmes ne sont pas clairs :

1. Où disparaît l'historique si ni le terminal ni la carte n'ont été fermés ?

2. Est-il si difficile de rendre le tableau sans espace inutilisable lors de l'initialisation du tampon indicateur? Ou le tableau est initialisé avec la valeur définie dans PLOT_EMPTY_VALUE.

 
Alexey Viktorov:

Seuls deux problèmes ne sont pas clairs dans ce contexte :

1. Où disparaît l'historique si ni le terminal ni la carte n'ont été fermés ?

2. Est-il si difficile de faire un tableau sans gaspillage d'espace lors de l'initialisation du tampon indicateur? Ou le tableau doit être initialisé avec la valeur définie par PLOT_EMPTY_VALUE.

1. Où l'historique disparaît-il si ni le terminal ni le graphique n'ont été fermés ?

2. C'est une situation tout à fait réelle, rencontrée à chaque étape. Je dois déclarer une variable. A votre avis, qu'est-ce qui est juste, a) ou b) :

a): int i;
б): int i=0;
 
Karputov Vladimir:

1. Où l'historique disparaît-il si ni le terminal ni le graphique n'ont été fermés ?

2. Il s'agit d'une situation tout à fait réelle, rencontrée à chaque étape. Je dois déclarer une variable. Selon vous, quelle option est la bonne, a) ou b) :

a): int i;
б): int i=0;

1. Pas d'implication, une question directe. Le terminal fonctionne, les cotations sont reçues, à chaque tick l'indicateur recalcule OnCalculate et compte prev_calculated qui renvoie rates_total et soudain bang !!! et une barre entière est perdue.... Où aller ?

2. Ne mettez pas ensemble les variables, les tableaux personnalisés et les tampons indicateurs.


On dirait qu'une béquille a été trouvée. L'indicateur est lancé avec cette béquille. Après une nouvelle perte d'histoire, il y aura un résultat.

 
Alexey Viktorov:

Seuls deux problèmes ne sont pas clairs dans ce contexte :

1. Où disparaît l'historique si ni le terminal ni la carte n'ont été fermés ?

2. Est-il si difficile de rendre le tableau sans espace inutilisable lors de l'initialisation du tampon indicateur? Ou le tableau est initialisé avec la valeur définie dans PLOT_EMPTY_VALUE.

2. Pas difficile, mais inutile, voire indésirable. Parce que les tampons sont remplis avec les données de l'indicateur calculé. Il n'y a pas besoin d'être inutile.
 
Karputov Vladimir:

Vous avez un jugement erroné sur ces trois points.

prev_calculate affiche le nombre de BARs comptés (traités) lors de l'appel précédent. C'est un axiome.

Si l'historique a changé, gonflé, ou si l'indicateur n'a pas encore été calculé - valeur de prev_calculate==0. Ceci est également un axiome.

Quelle partie n'est pas claire ?

Oh là là, comment pensez-vous que le bug est différent de l'axiome ? Vous n'avez pas besoin de vous mettre des mots dans la tête ici - tout ce qui est formulé en 3 points peut être facilement vu dans mon 1er post. Si ce n'est pas le cas - vous êtes un programmeur, pas un charpentier, montrez dans votre code comment résoudre séparément les tâches simples énumérées dans les 3 paragraphes avec prev_calculated nu sans béquilles supplémentaires : montrer combien de barres ont été comptées sur le tick précédent, définir le premier appel de OnCalculate et définir que l'historique (checksum) a été modifié. Il n'y a pas besoin d'inventer quoi que ce soit pour l'utilisateur, pour correspondre à vos axiomes - les tâches sont formulées, très simples et sans ambiguïté, comme un demi-doigt.

 

Alexey Viktorov:

Ceci n'est PAS dans la documentation !!! Il s'agit donc d'un essai en roue libre. Tout comme ma déclaration sur l'initialisation automatique, encore plus cool. Au moins le mien avait un avertissement...

Qu'est-ce que vous racontez comme bêtises ? Si cette initialisation est implémentée dans OnCalculate, elle sera initialisée sans aucune boucle. Mais si prev_calculated est mis à zéro, cela remet à zéro toutes les données qui ont été accumulées pendant le fonctionnement...

A une question sur l'initialisation des tampons à l'initialisation. Réfléchissez logiquement. Il n'y a pas d'accès au taux_total dans OnInit(), n'est-ce pas ? S'il n'y a pas d'accès à rates_total dans OnInit(), alors les tailles des tampons indicateurs ne sont pas encore connues (=0 vous pouvez le vérifier vous-même). Et puisque la taille de la mémoire tampon d'un indicateur = 0, qu'allez-vous remettre à zéro ?

 
Alexander Puzanov:

Oh là là, comment pensez-vous qu'un bug est différent d'un axiome ? Pas besoin de saupoudrer vos cerveaux de mots ici - tout ce qui est formulé en 3 paragraphes peut être facilement vu dans mon 1er post. Si ce n'est pas le cas - vous êtes un programmeur, pas un charpentier, montrez dans votre code comment résoudre séparément les tâches simples énumérées dans les 3 paragraphes avec prev_calculated nu sans béquilles supplémentaires : montrer combien de barres ont été comptées sur le tick précédent, définir le premier appel de OnCalculate et définir que l'historique (checksum) a été modifié. Il n'y a pas besoin d'inventer quoi que ce soit pour l'utilisateur, pour correspondre à vos axiomes - les tâches sont formulées, très simples et non ambiguës comme un demi-doigt.

Vous ne devez pas adresser cette question à Vladimir (il ne fait que défendre la position des développeurs), mais aux développeurs eux-mêmes, qui (représentés par Slawa) vous ont dit que lorsque prev_calculated = 0, tout doit être recalculé. Ils ne peuvent pas toujours calculer toutes les variantes de l'utilisation de l'indicateur. S'il y a un problème maintenant, il ne sert à rien de torturer le modérateur, vous devez vous adresser à servicedesk avec une description détaillée.
 
Alexey Viktorov:

Est-il si difficile de s'assurer qu'il n'y a pas d'espace inutilisable dans le tableau lors de l'initialisation du tampon de l'indicateur? Ou le tableau est initialisé avec la valeur PLOT_EMPTY_VALUE.

if (rates_total > prev_calculated)
  ArrayFill(Buffer, prev_calculated, rates_total - prev_calculated, EMPTY_VALUE);
 
Alexey Viktorov:

1. Pas de sous-entendu, une question directe. Le terminal fonctionne, les cotations sont reçues, à chaque tick l'indicateur recalcule OnCalculate et compte prev_calculated en retournant rates_total et soudainement bang !!! et une barre entière est perdue... Où aller ?

2. Ne regroupez pas les variables, les tableaux personnalisés et les tampons indicateurs dans une même pile.


Il semble qu'une béquille ait été trouvée. L'indicateur est lancé avec cette béquille. Après une nouvelle perte d'histoire, il y aura un résultat.

1. Encore une fois, c'est un raisonnement, mais je n'en vois toujours pas l'intérêt.

2. Vous n'avez toujours pas répondu à votre question, ce qui m'indique que vous n'avez jamais réfléchi à ce qui est stocké dans la variable après sa déclaration.