vorher_berechnet - Seite 7

 
Alexander Puzanov:

Sie haben in allen drei Punkten ein falsches Urteilsvermögen.

prev_calculate zeigt die Anzahl der beim vorherigen Aufruf gezählten (verarbeiteten) BARs an. Dies ist ein Axiom.

Wenn sich die Geschichte geändert hat, geschwollen ist oder der Indikator noch nicht berechnet wurde - Wert von prev_calculate==0. Dies ist ebenfalls ein Axiom.

Welcher Teil davon ist nicht klar?

 
Karputov Vladimir:

Sie haben in allen drei Punkten ein falsches Urteilsvermögen.

prev_calculate zeigt die Anzahl der beim vorherigen Aufruf gezählten (verarbeiteten) BARs an. Dies ist ein Axiom.

Wenn sich die Geschichte geändert hat, geschwollen ist oder der Indikator noch nicht berechnet wurde - Wert von prev_calculate==0. Dies ist ebenfalls ein Axiom.

Welcher Teil davon ist nicht klar?

Nur zwei Probleme sind daraus nicht ersichtlich:

1. Wohin verschwindet der Verlauf, wenn weder das Terminal noch die Karte geschlossen wurden?

2. Ist es so schwer, das Array bei der Initialisierung des Indikatorpuffers ohne Speicherplatzmüll zu machen? Oder das Array wird mit dem in PLOT_EMPTY_VALUE festgelegten Wert initialisiert

 
Alexey Viktorov:

Lediglich zwei Probleme werden hierdurch nicht deutlich:

1. Wohin verschwindet der Verlauf, wenn weder das Terminal noch die Karte geschlossen wurden?

2. Ist es so schwer, ein Array ohne Platzmüll während der Initialisierung des Indikatorpuffers zu erstellen? Oder das Array sollte mit dem durch PLOT_EMPTY_VALUE gesetzten Wert initialisiert werden

1. @Wo verschwindet der Verlauf, wenn weder das Terminal noch das Diagramm geschlossen wurde?

2. Dies ist eine ganz reale Situation, der man bei jedem Schritt begegnet. Ich muss eine Variable deklarieren. Was glauben Sie, ist richtig, a) oder b):

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

1. @Wo verschwindet der Verlauf, wenn weder das Terminal noch das Diagramm geschlossen wurde?

2. Dies ist eine ganz reale Situation, der man bei jedem Schritt begegnet. Ich muss eine Variable deklarieren. Welche Option ist Ihrer Meinung nach richtig, a) oder b):

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

1. Keine Andeutung, eine einfache Frage. Das Terminal funktioniert, Kurse werden empfangen, bei jedem Tick berechnet der Indikator OnCalculate neu und zählt prev_calculated, das rates_total zurückgibt und plötzlich bang!!! und ein ganzer Balken ist verloren... Wohin?

2. Variablen, benutzerdefinierte Arrays und Indikatorpuffer sollten nicht in einen Topf geworfen werden.


Es sieht so aus, als ob eine Krücke gefunden worden ist. Der Indikator wird mit dieser Krücke gestartet. Nach einem weiteren Verlust der Geschichte wird es ein Ergebnis geben.

 
Alexey Viktorov:

Lediglich zwei Probleme werden hierdurch nicht deutlich:

1. Wohin verschwindet der Verlauf, wenn weder das Terminal noch die Karte geschlossen wurden?

2. Ist es so schwer, das Array bei der Initialisierung des Indikatorpuffers ohne Speicherplatzmüll zu machen? Oder das Array wird mit dem in PLOT_EMPTY_VALUE festgelegten Wert initialisiert

2. Nicht schwierig, aber unnötig, sogar unerwünscht. Denn die Puffer werden mit den berechneten Indikatordaten gefüllt. Es gibt keinen Grund, etwas Unnötiges zu tun.
 
Karputov Vladimir:

Sie haben in allen drei Punkten ein falsches Urteilsvermögen.

prev_calculate zeigt die Anzahl der beim vorherigen Aufruf gezählten (verarbeiteten) BARs an. Dies ist ein Axiom.

Wenn sich die Geschichte geändert hat, geschwollen ist oder der Indikator noch nicht berechnet wurde - Wert von prev_calculate==0. Dies ist ebenfalls ein Axiom.

Welcher Teil davon ist nicht klar?

Oh je, wie unterscheidet sich Ihrer Meinung nach der Fehler vom Axiom? Sie brauchen sich hier keine Worte in den Kopf zu setzen - alle in 3 Punkten formulierten Punkte sind in meinem ersten Beitrag leicht zu erkennen. Wenn es nicht so ist - Sie sind ein Programmierer, kein Zimmermann, zeigen Sie in Ihrem Code, wie man separat einfache Aufgaben, die in 3 Absätzen aufgeführt sind, mit bloßen prev_calculated ohne zusätzliche Krücken lösen kann: zeigen Sie, wie viele Balken auf dem vorherigen Tick gezählt wurden, definieren Sie den ersten Aufruf von OnCalculate und definieren Sie, dass die Geschichte (Prüfsumme) geändert wurde. Es gibt keine Notwendigkeit, etwas für den Benutzer zu erfinden, um Ihre Axiome anzupassen - die Aufgaben sind formuliert, sehr einfach und eindeutig wie ein halber Finger

 

Alexey Viktorov:

Dies steht NICHT in der Dokumentation!!! Es handelt sich also um einen freilaufenden Aufsatz. Genau wie meine Aussage über die automatische Initialisierung, sogar noch cooler. Wenigstens hatte meine einen Haftungsausschluss...

Was reden Sie da für einen Unsinn? Wenn diese Initialisierung in OnCalculate implementiert ist, wird sie ohne Schleifen initialisiert. Wenn prev_calculated jedoch auf Null gesetzt wird, werden alle Daten, die sich während des Betriebs angesammelt haben, zurückgesetzt...

Auf eine Frage zur Initialisierung von Puffern bei der Initialisierung. Überlegen Sie logisch. Es gibt keinen Zugriff auf rates_total in OnInit(), richtig? Wenn es keinen Zugriff auf rates_total in OnInit() gibt, dann sind die Größen der Indikatorpuffer noch nicht bekannt (=0, Sie können es selbst überprüfen). Und da ein Indikator Puffergröße = 0, was werden Sie zurücksetzen?

 
Alexander Puzanov:

Oh je, wie unterscheidet sich Ihrer Meinung nach ein Fehler von einem Axiom? Es ist nicht nötig, Ihr Gehirn hier mit Worten zu überhäufen - alles, was in 3 Absätzen formuliert wurde, kann leicht in meinem ersten Beitrag nachgelesen werden. Wenn es nicht so ist - Sie sind ein Programmierer, kein Zimmermann, zeigen Sie in Ihrem Code, wie man separat einfache Aufgaben, die in 3 Absätzen aufgeführt sind, mit bloßen prev_calculated ohne zusätzliche Krücken lösen kann: zeigen Sie, wie viele Balken auf dem vorherigen Tick gezählt wurden, definieren Sie den ersten Aufruf von OnCalculate und definieren Sie, dass die Geschichte (Prüfsumme) geändert wurde. Es gibt keine Notwendigkeit, etwas für den Benutzer zu erfinden, um Ihre Axiome anzupassen - die Aufgaben sind formuliert, sehr einfach und eindeutig wie ein halber Finger

Sie sollten diese Frage nicht an Vladimir richten (er verteidigt nur die Position der Entwickler), sondern an die Entwickler selbst, die Ihnen (vertreten durch Slawa) gesagt haben, dass bei prev_calculated = 0 alles neu berechnet werden muss. Sie können nicht immer alle Varianten der Indikatorverwendung berechnen. Wenn es jetzt ein Problem gibt, hat es keinen Sinn, den Moderator zu quälen, sondern Sie müssen sich mit einer detaillierten Beschreibung an servicedesk wenden.
 
Alexey Viktorov:

Ist es so schwer, bei der Initialisierung des Indikatorpuffers sicherzustellen, dass kein Platzmüll im Array vorhanden ist? Oder das Array wird mit dem auf PLOT_EMPTY_VALUE gesetzten Wert initialisiert

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

1. Kein Subtext, eine einfache Frage. Terminal funktioniert, Kurse werden empfangen, bei jedem Tick berechnet der Indikator OnCalculate neu und zählt prev_calculated und gibt rates_total zurück, und plötzlich bang!!! und ein ganzer Balken ist verloren... Wohin?

2. Werfen Sie Variablen, benutzerdefinierte Arrays und Indikatorpuffer nicht auf einen Haufen.


Es scheint, dass eine Krücke gefunden wurde. Der Indikator wird mit dieser Krücke gestartet. Nach einem weiteren Verlust der Geschichte wird es ein Ergebnis geben.

1. Wieder ein Gedankengang, aber ich sehe immer noch nicht den Sinn.

2. Sie haben Ihre Frage immer noch nicht beantwortet, was mir zeigt, dass Sie sich noch nie Gedanken darüber gemacht haben, was in der Variablen gespeichert wird, nachdem sie deklariert wurde.