ChartNavigate während der Initialisierung - Seite 3

 
Dina Paches:

Warum ist das so? Habe ich Blödsinn geschrieben/mitgebracht?

Nicht, dass es Unsinn wäre... aber es ist nur so, dass wir hier die Navigation untersuchen und das Neuzeichnen des Graphen keinerlei Auswirkungen hat (da zu Beginn des Experiments klar gesagt wurde, dass das Scrollen des Graphen deaktiviert sein sollte).

Der Testcode läuft höchstens ein oder zwei Minuten, unsere Computer sind leistungsstark - die Belastung ist also vernachlässigbar.

 
Vladimir Karputov:

Nicht, dass es Unsinn wäre... aber es ist nur so, dass wir hier die Navigation untersuchen und das Neuzeichnen des Diagramms keinerlei Auswirkungen hat (da zu Beginn des Experiments klar gesagt wurde, dass das Scrollen des Diagramms deaktiviert sein sollte).

Der Testcode wird höchstens ein oder zwei Minuten lang ausgeführt, unsere Computer sind leistungsstark - die Belastung ist also vernachlässigbar.

Testcodes können häufig ausgeführt werden. /* Jetzt eine Minute hier, dann eine Minute dort, dann eine Stunde woanders, usw...

Ich habe mich in diesem Beitrag auf die Worte von Renat bezogen. Ich nehme an, er hat einen leistungsfähigeren Computer als Sie.

Sie, Vladimir, haben diese Testcodes veröffentlicht, um die Arbeit (Forschungsergebnisse) zu zeigen, zum Herunterladen. Es ist unangemessen, das Diagramm bei jeder Markierung neu zu zeichnen.

 
P./S.: In den Eingabeparametern haben Sie die Möglichkeit, nur den Chart-Redraw überChartRedraw() zu deaktivieren/aktivieren. In den Testcodes wird das Diagramm jedoch bei jedem Tick über Comment neu gezeichnet.
 
Dina Paches:

Testcodes können häufig ausgeführt werden. /* Jetzt eine Minute hier, dann eine Minute dort, dann eine Stunde woanders, usw...

Ich habe mich in diesem Beitrag auf das bezogen, was Renat gesagt hat. Ich nehme an, er hat einen leistungsfähigeren Computer als Sie.

Sie, Vladimir, haben diese Testcodes zum Herunterladen veröffentlicht, um Ihre Arbeit (Forschungsergebnisse) zu zeigen. Das erneute Zeichnen von Diagrammen bei jedem Häkchen ist nicht angebracht.

Sie haben Recht, was die Umzeichnung betrifft. Es ist jetzt einfach nicht angebracht ))

 
Ihor Herasko:

Sie haben Recht, was die Umzeichnung betrifft. Es ist im Moment einfach nicht das Richtige).

Ähm ... Es ist nicht der richtige Ort, um bei jedem Häkchen neu zu zeichnen. Das ist nicht der richtige Ort, um Sie davon zu überzeugen, dass es sich nicht lohnt, ihm Aufmerksamkeit zu schenken.

Und nicht darüber gesprochen.

Aber jetzt, auf Kosten Ihrer und Vladimirs Bemühungen, ihn davon zu überzeugen, dass er fehl am Platz ist und keine Aufmerksamkeit verdient, hat sich der Schwerpunkt wirklich vom Thema weg verlagert)

 

Bauen Sie 1865.

Der Indikator wurde geändert:

   if(count%12==0/* || count==19*/)

Das heißt, bei jedem 12. Tick wird das Diagramm zwangsweise verschoben. Wofür ist es gedacht?

  1. Sie können das Diagramm manuell zwischen 12 Ticks verschieben und die Nummer des ersten sichtbaren Balkens sehen
  2. Visuelle Verfolgung von Bewegungen.


Bisher haben wir eine Theorie: Die Verschiebung des Diagramms hängt von der GRAPHIC WIDE ab!

Dateien:
 

Indikator Version 1.002:

alle Kommentare entfernt (Ausgabe jetzt über Print)

Standard:

//--- input parameters
input bool redraw=false;
input ENUM_CHART_POSITION position=CHART_END;

Deutliche Abhängigkeit von der Skala der Karte. Und es gibt eine gewisse Erinnerung, wenn man die Karte einmal manuell verschiebt.

Dateien:
 
Ihor Herasko:

Ich bin auf ein Problem mit der Funktion ChartNavigate gestoßen. Mache ich etwas falsch oder gibt es wirklich ein Problem mit der Funktion. Schreiben Sie zurück, wenn Sie es oft genug benutzt haben.

Der Kern des Problems: ChartNavigate verschiebt das Diagramm nicht Beim Starten des Terminals Wenn ich diese Funktion in OnInit() aufrufe. Ich habe die Dokumentation absichtlich mehrmals gelesen. Nirgendwo steht, dass die Funktion nicht während der Initialisierung aufgerufen werden kann.

Code Anzeige für die Wiedergabe:

Die Schritte zum Spiel:

  1. Schalten Sie die automatische Wiedergabe von Diagrammen aus.
  2. Befestigen Sie den Indikator am Diagramm. ChartNavigate wird durch Verschieben des Diagramms an die gewünschte Position ausgelöst.
  3. Entladen Sie das Terminal.
  4. Laden Sie das Terminal. ChartNavigate funktioniert nicht, wenn das Diagramm ohne einen Offset angezeigt wird.
OK, wenn die Funktion einen Fehler verursachen würde. Aber das ist nicht der Fall. Alle Aufrufe sind erfolgreich, aber erst wenn das Terminal neu geladen wird, tritt der Diagrammversatz nicht auf.

Bitte sagen Sie mir, ob Sie vor dem Entladen des Terminals das Diagramm auf die neuesten Preise zurücksetzen?

Warum frage ich?

Ich verwende Ihren Code, um zu sehen, wie er unter diesen Bedingungen für mich funktionieren würde. Zuerst dachte ich, dass das von Ihnen beschriebene Problem in meinem Code reproduziert wird. Später habe ich verstanden, dass das nicht der Fall ist. Wenn das Diagramm vor dem Entladen auf die letzten Preise zurückgesetzt wird, funktioniert es beim Laden des Terminals gemäß dem Code. Wenn ich nicht zu den letzten Preisen vor dem Entladen zurückkehre, bleibt das Diagramm dort, wo es vor dem Entladen war.

 
Vladimir Karputov:

Bauen Sie 1865.

Der Indikator wurde geändert:

Das heißt, bei jedem 12. Tick wird das Diagramm zwangsweise verschoben. Wofür ist es gedacht?

  1. Sie können das Diagramm manuell zwischen 12 Ticks verschieben und die Nummer des ersten sichtbaren Balkens sehen
  2. Visuelle Verfolgung von Bewegungen.


Bisher haben wir eine Theorie: Die Verschiebung des Diagramms hängt von der GRAPHIC WIDE ab!

Wladimir Karputow:

Indikator Version 1.002:

...

Es besteht eine deutliche Abhängigkeit von derSkalierung der Grafik. Und es gibt einen gewissen Speicherplatz, wenn Sie die Karte einmal manuell verschieben.


Der Autor des Threads hat diesen Thread aufgrund der folgenden Frage erstellt - ChartNavigate während der Initialisierung:

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

ChartNavigate bei der Initialisierung

Ihor Herasko, 2018.06.25 12:17

...

Der Kern des Problems: ChartNavigate verschiebt das Diagramm nicht Am Anfang des Terminals Wenn Sie die Funktion in OnInit() aufrufen.


Sie, Vladimir, führen Ihre Untersuchungen nicht in OnInit(), sondern in OnCalculate() durch. Nicht zu dem vom Verfasser des Beitrags beschriebenen Problem.

Das heißt, Sie ziehen in diesem Thread etwas anderes in Betracht.

Wenn Sie ein echtes Problem entdeckt haben, sollten Sie sich vielleicht mit einer Beschreibung an den Service Desk wenden.


P./S.: Nach dem neuesten Testcode des Indikators, der hier angehängt ist, wird der Chart nicht mehr bei jedem Tick zwangsweise neu gerendert. Stattdessen wird nun bei jedem Ticken ein Ausdruck im Protokoll erstellt. Da nicht geprüft wird, ob sich die Nummer des ersten Balkens im Diagramm geändert hat.

Darüber hinaus enthält Ihr Code das aktive Löschen von Kommentaren. Das heißt, wenn Sie Ihren Code in das Diagramm einfügen, wo ein anderes Programm einige benötigte Kommentare erstellt, wird Ihr Testcode diese entfernen

P./S.: Ich habe ein doppeltes Zitat am Anfang des Beitrags entfernt und stattdessen Zitate aus einem anderen, verlinkten Beitrag eingefügt.

 
Dina Paches:


Der Autor des Themas hat es aufgrund der folgenden Frage erstellt - ChartNavigate während der Initialisierung:


Sie, Vladimir, führen Ihre Untersuchungen nicht in OnInit(), sondern in OnCalculate() durch. Nicht zu dem vom Verfasser des Beitrags beschriebenen Problem.

Das heißt, Sie ziehen in diesem Thread etwas anderes in Betracht.

Wenn Sie ein echtes Problem entdeckt haben, sollten Sie sich vielleicht mit dessen Beschreibung an den Service Desk wenden.


P./S.: Nach dem neuesten Testcode des Indikators, der hier angehängt ist, wird der Chart nicht mehr bei jedem Tick zwangsweise neu gerendert. Stattdessen wird nun bei jedem Ticken ein Ausdruck im Protokoll erstellt. Da nicht geprüft wird, ob sich die Nummer des ersten Balkens im Diagramm geändert hat.

Darüber hinaus enthält Ihr Code aktive Löschungen von Kommentaren. D.h., wenn Sie Ihren Code in das Diagramm einfügen, wo ein anderes Programm notwendige Kommentare erstellt, wird Ihr Testcode diese Kommentare entfernen

Dina, funktioniert es bei dir? Ich habe seit 2-3 Stunden (nur heute, ohne die gestrigen Tests zu zählen) versucht, eine nicht funktionierende Version von OnInit zu bekommen, aber ohne Erfolg. Alles funktioniert immer so, wie es soll. Wenn ich den Indikator in zwei Charts einsetze und das Terminal neu starte, funktioniert er nur in dem Chart, der zum Zeitpunkt des Schließens und Öffnens des Terminals aktiv war. Auf der zweiten, nicht aktiven Karte funktioniert es nicht. Aber das ist meiner Meinung nach verständlich, denn es gibt kein Diagramm, das gerendert wird, und kein Diagramm selbst, obwohl die Daten empfangen werden.