Fehler, Irrtümer, Fragen - Seite 3126
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Sie bilden eine Datenstruktur oder ein Array von Strukturen in einem EA oder in einem Indikator und senden es an eine Ressource.
Kanvas selbst arbeitet mit einer grafischen Ressource (OBJ_BITMAP_LABEL/ OBJ_BITMAP). Es bleibt also nichts anderes übrig, als einer anderen Anwendung den Namen der Ressource mitzuteilen, und sie wird problemlos auf die Pixel zugreifen. Es muss auch das Pixelformat übergeben werden. Und Sie können die Pixel lesen oder sie mit einem anderen CCanvas ändern. Sie verfügt über eine Methode, CCanvas::Attach, um sie an eine vorhandene Ressource anzuhängen.
Was ist das Problem, Andrej?
Bilden einer Datenstruktur oder eines Arrays von Strukturen
Überhaupt keine Probleme! Es sind nur die zusätzlichen Schritte, das ist es, was ich meine.
Jeder gepufferte Indikator kann von jedem anderen Indikator oder Expert Advisor gelesen werden.
Zum Beispiel habe ich einen EA, der eine Liste von laufenden Indikatoren erhält und dann erstellt sie auf eine bestimmte Liste von Instrumenten / TF und sammelt dann Signale von ihnen (und sendet sie an Telegramm). So kann jeder Pufferindikator einfach auf einem Diagramm ausgeführt werden, und er wird automatisch übernommen. Der Kanvas-Indikator muss jedoch manuell angeschlossen werden, und der Rest der Arbeit sollte dann manuell erledigt werden.
Wir müssen die Arbeit mit Kanvas-Indikatoren vereinheitlichen. Ich befürchte, dass diese Vereinheitlichung dazu führen wird, dass ... Pufferindikatoren))
Was ist das Problem, Andrej?
Ich habe keins gefunden und auch nicht danach gesucht.
Das ist kein Problem! Das sind nur unnötige Gesten, das ist es, was ich meine.
Jeder Buffer-Indikator kann von jedem anderen Indikator oder EA gelesen werden, und ein Kanvas benötigt einen Kastum-Layer.
Zum Beispiel habe ich einen EA, der eine Liste von laufenden Indikatoren erhält und dann erstellt sie auf eine bestimmte Liste von Instrumenten / TF und sammelt dann Signale von ihnen (und sendet sie an Telegramm). So kann jeder Pufferindikator einfach auf einem Diagramm ausgeführt werden, und er wird automatisch übernommen. Der Kanvas-Indikator muss jedoch manuell angeschlossen werden, und der Rest der Arbeit sollte dann manuell erledigt werden.
Wir müssen die Arbeit mit Kanvas-Indikatoren vereinheitlichen. Ich befürchte, dass diese Vereinheitlichung dazu führen wird, dass ... Pufferindikatoren)).
Kanvas selbst arbeitet mit einer grafischen Ressource (OBJ_BITMAP_LABEL/ OBJ_BITMAP). Es bleibt also nur noch, den Namen der Ressource einer anderen Anwendung mitzuteilen, und diese kann dann problemlos auf die Pixel zugreifen. Es muss auch das Pixelformat übergeben werden. Und Sie können die Pixel lesen oder sie mit einem anderen CCanvas ändern. Sie verfügt über eine Methode namens CCanvas::Attach, um sie an eine vorhandene Ressource anzuhängen.
Ich konnte es nicht finden, und ich habe nicht einmal danach gesucht.
Ich frage mich, in welchen Fällen ein Indikator läuft und sein Fenster nicht existiert? Und wenn das Fenster inaktiv ist (der Benutzer hat zu einem anderen Diagramm gewechselt oder es minimiert), welche Ressource wird aus dem Speicher entladen, wird sie einfach gelöscht?
Ich glaube, da stimme ich mit Ihnen überein. Ich musste einen Multitasking-Roboter entwickeln. Die erste Anwendungsinstanz erstellt Aufgaben und Diagramme für sie und wendet dann eine spezielle Vorlage mit demselben Roboter an. Dann erstellt der erste Roboter die Aufgaben und die vom Automaten erstellten Roboter führen sie aus. Die Datenübertragung erfolgt über Ressourcen. Die Zahlenketten und Strukturen werden dorthin übertragen. Hier auf der Website gibt es ein Beispiel für die Datenübertragung über http (wenn ich mich recht erinnere). Aber die Daten über die Strukturen, ihre Größen und Typen gehen zuerst dorthin, und dann die Daten selbst. Ich habe beschlossen, es in meinem Expert Advisor einfacher zu machen, indem ich die Strings und Zahlen durch ein Array von uchar-Typen in Form von Strings übergebe, was den Prozess des Lesens/Schreibens stark vereinfacht. Aber ich habe noch nie Bytes in Indikatorpuffer geschrieben und sie von dort gelesen. Aber ich sehe schon einen Nachteil dieser Methode - die begrenzte Anzahl von Bytes in den Indikatorbalken. Allerdings befinden sich in jeder Zelle des Arrays 8 Bytes. Vielleicht ist das gar nicht so ein großer Nachteil. Wer weiß...
Ich frage mich, in welchen Fällen ein Indikator läuft, aber sein Fenster nicht vorhanden ist?
Ich meinte die Verwendung von iCustom
Und wenn das Fenster inaktiv ist (der Benutzer hat zu einem anderen Diagramm gewechselt oder es minimiert), wird die Ressource aus dem Speicher entladen, wird sie einfach gelöscht?
Das war nur meine Vermutung, denn es gibt keinen besonderen Grund, Bilder zu erstellen, wenn das Fenster minimiert ist. Wie es in MT implementiert ist, habe ich nicht überprüft, bin aber auf etwas Ähnliches gestoßen. Ich habe alle Feinheiten vergessen.
Auf jeden Fall ist es unwahrscheinlich, dass die Ressource gelöscht wird, aber sie wird auch nicht mit der Zeit aktualisiert. D.h. CCanvas::Update funktioniert nicht
Ich meinte die Verwendung von iCustom
Es stellt sich heraus, können Sie Werte durch die Ressource und Puffer übergeben, aber nicht durch Kanvas Ressource. Es ist eine interessante Aufgabe, einen Indikator mit Ausgabe an Kanvas mitiCustom aufzurufen.Ich habe es nicht ausprobiert. Ich habe den Eindruck, dass in diesem Fall Fehler vorliegen könnten. Kann es sein, dass ein solcher Indikator, der über iCustom geladen wird, überhaupt nicht funktioniert?
Ich glaube, ResourceCreate funktioniert, aber das Ergebnis wird nicht mit ChartRedraw gerendert. Die Aufrufe der Funktion laufen, aber das System versteht, dass das Diagramm nicht aktualisiert werden muss, solange es inaktiv ist. WennResourceCreate jedoch nicht funktioniert,stellen Sie sich vor, dass der Indikator bei einem zufälligen Tick, wenn das Diagramm inaktiv ist, Daten aktualisiert hat, aber die Kanvas-Ressource nicht aktualisiert wurde. Und dann hat der Benutzer beschlossen, diesen inaktiven Chart zu aktivieren und den Indikator (Kanwa)zu betrachten. Und es stellt sich heraus, dass es ein Häkchen gab, aber die Canva bleibt die gleiche wie vor der Änderung des Diagramms durch den Benutzer. Und was wäre, wenn es in der Zeit der Inaktivität viele Zecken gäbe? Natürlich würde der Indikator sie verarbeiten, aber keines der Ergebnisse würde auf der Leinwand angezeigt werden.
Ich glaube, ResourceCreate funktioniert, aber das Ergebnis wird nicht mit ChartRedraw angezeigt.
Ja, Sie haben wahrscheinlich Recht. Dies ist wahrscheinlich der Fall.
Und um Ressourcen zu sparen, wäre es richtig, die Fensteraktivität zu überwachen und keine Bitmap zu erzeugen, wenn das Fenster nicht aktiv ist.
Es lohnt sich, nachzuprüfen, statt Vermutungen anzustellen.