Fehler, Irrtümer, Fragen - Seite 341

 
Urain:

Es besteht die Notwendigkeit, vorverarbeitete Daten an einen bereits laufenden Indikator zu senden. Ich habe beschlossen, das Graph-Objekt Text als globalen Datenspeicher zu verwenden. Ich verstehe, dass der Zweck von grafischen Objekten ein anderer ist, und wenn es eine Alternative gibt, würde ich mich freuen, sie zu hören.

Aber hier bin ich auf eine weitere Einschränkung der Sprache gestoßen. Die Zeichenkette selbst unterstützt eine fast unendliche Länge von Zeichen. Nun, wahrscheinlich liegt die Einschränkung irgendwo im Bereich der Begrenzung von Arrays im Allgemeinen. Und die Zeichenkette, die als Parameter eines grafischen Objekts übergeben wird, ist auf 63 Zeichen begrenzt. Folglich würde die Übergabe eines Arrays als String einen Haufen grafischer Objekte erfordern (ja, ich habe vergessen, Ihnen zu sagen, dass ich Verschlüsselung verwende, weshalb Informationen in Strings ungefähr den gleichen Platz einnehmen wie im Originaltyp). Mit den derzeitigen 63 Zeichen ist es möglich, nur 15 Zeit-/Preispaare über ein Objekt zu übertragen.

Daher die Frage: Können wir erwarten, dass die Sprache in Zukunft die Beschränkung der Textlänge des grafischen Objekts aufhebt, oder wird es einen Mechanismus für die Übergabe von Daten an den Indikator-Thread geben?

Ich bin bei der Erstellung eines benutzerdefinierten Ereignisses auf das gleiche Problem gestoßen. Es gibt eine Beschränkung auf 63 Symbole, nicht auf die gesamte Zeichenfolge....

Ich musste eine eigene Klasse schreiben, um die Nachricht von slices.... zusammenzufügen. Werke ))))

Документация по MQL5: Работа с событиями / EventChartCustom
Документация по MQL5: Работа с событиями / EventChartCustom
  • www.mql5.com
Работа с событиями / EventChartCustom - Документация по MQL5
 
AlexSTAL:

Ich bin beim Erstellen eines benutzerdefinierten Ereignisses auf das gleiche Problem gestoßen. Es gibt die gleiche Begrenzung auf 63 Zeichen, nicht die ganze Zeichenfolge....

Ich musste eine eigene Klasse schreiben, um die Nachricht von slices.... zusammenzufügen. Werke ))))

Ja, wenn es keine Einschränkungen gäbe, könnten Sie Ereignisse auch zum Senden von Datenarrays verwenden.
 
Urain:
Ja, wenn es keine Einschränkungen gäbe, könnten Sie Ereignisse verwenden, um Datenfelder zu senden.

Ich bin immer noch nicht in der Lage zu versuchen, ein Objekt-Handle durch ein Ereignis zu übergeben. Und das Objekt enthält alle notwendigen Daten.

Wenn es im Moment relevant ist, probieren Sie es aus und berichten Sie später.

// Es wäre schön, einen kontrollierbaren Shared-Memory-Speicher innerhalb des Terminals zu haben. Zumindest nur für Objekte und Arrays.

// Und wenn ein solches Objekt deklariert wird, würde der Modifikator shared seine Platzierung in diesem Speicher bestimmen.

 
MetaDriver:

Ich kann immer noch nicht herum zu versuchen, das Objekt-Handle durch ein Ereignis übergeben. Und das Objekt enthält alle notwendigen Daten.

Wenn es im Moment relevant ist, probieren Sie es aus und berichten Sie später.

Der Handle-Wert wird korrekt übergeben, aber der benötigte Thread hat kein solches Handle. Daher verweist der Wert nicht auf das erforderliche Handle.
 
MetaDriver:

// Es wäre sehr verlockend, einen kontrollierbaren Shared-Memory-Speicher innerhalb des Terminals zu haben. Zumindest nur für Objekte und Arrays.

// Und bei der Deklaration eines solchen Objekts würde der gemeinsame Modifikator dessen Speicherort definieren.

So etwas wie ein globaler Terminalspeicher, der für alle Threads verfügbar ist.
 
Urain:
Eine Art globaler Terminalspeicher? für alle Threads verfügbar.
Mm-hmm.
 
Urain:
Der Handle-Wert wird korrekt übergeben, aber es gibt kein solches Handle im gewünschten Thread. Daher verweist der Wert nicht mehr auf den richtigen Handle.
Schade.
 
Ich habe 420 Build von hierhttps://www.mql5.com/ru/forum/23/page11 heruntergeladen, aber es wird tatsächlich 412 installiert. Habe ich ein Problem oder haben sie vergessen, die Dateimetaquotes.net zu ändern?
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
 
Urain:
So etwas wie ein globaler Terminalspeicher, der für alle Threads verfügbar ist.

Die einfachste Lösung für MQ wäre, die Funktionsparameter

void OnChartEvent(const int id,const long &lparam[],const double &dparam[],const string &sparam[])

Arrays anstelle von Variablen, die jetzt als Parameter existieren. Die Lösung ist natürlich einseitig, da es immer noch keine Möglichkeit gibt, Daten zwischen EAs zu übertragen, aber es ist immer noch besser als nichts.

 
Urain:

1. Die einfachste Lösung für MQ wäre, Arrays von Daten als Funktionsparameter anstelle von Variablen zu übergeben, die jetzt als Parameter existieren.

2. Die Lösung ist natürlich einseitig, da es immer noch keine Möglichkeit gibt, Daten zwischen EAs zu übertragen, aber es ist immer noch besser als nichts.

1. Ja, vielleicht.

2. Warum ist das nicht möglich? Kopieren Sie es für sich selbst, holen Sie es. Und was übertragen werden muss, wird mit der nächsten Nachricht übertragen.