Mein Ansatz. Der Kern ist der Motor. - Seite 86

 
Peter, wie ich aus dem Ellipsen-Gif entnehme, ist das Formular eine einzige Leinwand? Und wie funktionieren Dropdown-Listen? Ich interessiere mich für den Fall, dass die Dropdown-Liste die Größe des Formulars überschreitet.
 
Vasiliy Sokolov:

Lassen Sie es mich so sagen: Ich selbst mag einige der Schlampigkeiten meiner Lösung nicht. Sie müssen MT-Objekte erstellen. Aber in Wirklichkeit ist es nur ein Vorurteil. Welchen Unterschied macht das? Für eine vollständige Übertragung benötigen Sie nicht mehr als 20 bis 30 Stück.

30*64 Zeichen = 1920 Zeichen. Dies ist ausreichend, um große Tabellendaten zu übertragen.

 
Dmitry Fedoseev:
Peter, ich sehe aus der Ellipse gif, dass das Formular eine durchgehende Leinwand ist? Und wie funktionieren die Dropdown-Listen? Ich interessiere mich für den Fall, dass die Dropdown-Liste die Größe des Formulars überschreitet.

Ja, das Formular ist ein einziger Kanvas. Der Konstruktor schreibt die Namen des Canvas selbst und erstellt Wrapper-Funktionen, die mit ihm arbeiten.

Die Dropdown-Listen funktionieren auch in dem Bereich außerhalb des Fensters. Dies wird umgesetzt.

Die Dropdown-Liste ist ein weiterer Kanvas. Sie erscheint und verschwindet, wenn die Schaltfläche angeklickt wird.

 
Vasiliy Sokolov:

Direkte Abbildung von Strukturen über Union auf Byte-Array, gemeinsam genutzt für globalen Zugriff. Ich weiß nicht, ob das technisch machbar ist, aber wenn ja, wäre die Geschwindigkeit kosmisch, da man überhaupt nichts mehr kopieren müsste.

Ich würde diese Lösung gerne akzeptieren, wenn Sie ein Beispiel nennen.

 

Seien Sie vorsichtig beim Datenaustausch über grafische Objekte :-)

Andernfalls können Sie Ihren Expert Advisor leicht als "nicht optimierbar" darstellen...

 
Реter Konow:

Meine Lösung ist unter den gegebenen Ausgangsbedingungen die beste Option.

Was ist ein String:

  1. Keine feste Größe. Infolgedessen ist es unmöglich, ein Array von Zeichenketten zu organisieren und auf eine beliebige Zeichenkette in diesem Array zuzugreifen;
  2. Völliges Fehlen der Dateneingabe in Zeichenketten. Sie müssen einen Untertyp dynamisch im Rahmen des String-Parsing definieren. Sie verschwenden kostbare Zeit mit dem Parsen benötigter Token; und wenn Lexeme Fehler enthalten, wird dies von der Zeichenfolge in keiner Weise kontrolliert. Sie erhalten eine Zeichenfolge und beten, dass sie richtig ist;
  3. Geringe Effizienz bei der Speicherung von Informationen pro Byte. Eine Dienstzeichenfolge wie "opt=1;cancel=3" verwendet bestenfalls 35-40 von 256 möglichen Zeichen (17 %). Um 100 Bytes an Informationen zu senden, sollten Sie eine 588-Byte-Zeichenkette bilden, wodurch der Kommunikationskanal überlastet wird. Wenn Sie die Zeichen komprimieren, wird der Code sehr kompliziert. Wenn Sie Variablennamen abkürzen, hilft das nur wenig.

Und trotz all dieser offensichtlichen Dinge verkündest du wie Robin Hood immer wieder, wie schnell und genau du bist und wie gut du die Schnur erraten hast. Nein, habe ich nicht, und das ist alles sehr ungesund.

Versuchen Sie nicht, auf Ihr Bauchgefühl zu hören, wenn grundlegende Kenntnisse erforderlich sind.

 
Vasiliy Sokolov:

Was ist ein String:

  1. Es gibt keine feste Größe. Infolgedessen ist es unmöglich, ein Array von Zeichenketten zu organisieren und auf eine beliebige Zeichenkette in diesem Array zuzugreifen;
  2. Völliges Fehlen der Dateneingabe in der Zeichenkette. Sie müssen einen Untertyp dynamisch im Rahmen des String-Parsing definieren. Sie verschwenden kostbare Zeit mit dem Parsen benötigter Token; und wenn Lexeme Fehler enthalten, wird dies von der Zeichenfolge in keiner Weise kontrolliert. Sie erhalten eine Zeichenfolge und beten, dass sie richtig ist;
  3. Geringe Effizienz bei der Speicherung von Informationen pro Byte. Dienstzeichenfolgen wie "opt=1;cancel=3" verwenden bestenfalls 35-40 Zeichen (Bytes) von 256 möglichen (17 %). Um 100 Bytes an Informationen zu senden, sollten Sie eine 588-Byte-Zeichenkette bilden, wodurch der Kommunikationskanal überlastet wird. Wenn Sie die Zeichen komprimieren, wird der Code sehr kompliziert. Wenn Sie Variablennamen abkürzen, hilft das nur wenig.

Und trotz all dieser offensichtlichen Dinge bist du wie Robin Hood und verkündest immer noch, wie schnell und genau du bist und wie gut du die Schnur erraten hast. Nein, habe ich nicht, und das ist alles sehr ungesund.

Versuchen Sie nicht, auf Ihr Bauchgefühl zu hören, wenn Sie die Grundlagen kennen müssen.

Vasily, glaubst du nicht, dass die MT-Entwickler die String-Probleme berücksichtigt haben, als sie die Beschreibung der MT-Objekte beibehielten?

Es ist viel cooler, auf dem grundlegenden Wissen von jemand anderem aufzubauen und seine Intuition zu nutzen, um noch mehr zu erreichen.

 
Реter Konow:

Vasiliy, glaubst du nicht, dass die MT-Entwickler bei der Speicherung der MT-Objektbeschreibung die Probleme mit Strings berücksichtigt haben?

Peter, jeder Datenspeicher-Algorithmus hat seine Schwächen und Stärken. Die Entwickler haben sicherlich viele Dinge berücksichtigt, und sie sind sicherlich gut, aber im Grunde genommen werden Strings immer Strings bleiben.

 
Vasiliy Sokolov:

Peter, jeder Datenspeicher-Algorithmus hat seine Schwächen und Stärken. Die Entwickler haben natürlich eine Menge Dinge berücksichtigt, und sie sind sicherlich gut, aber im Grunde genommen werden Strings immer Strings bleiben.

Vasily, wenn die Praxis zeigt, dass meine Lösung fehlerhaft ist, werde ich sie aufgeben. Und ich werde die Lösung von Nikolai übernehmen. Wenn es auch schlecht ist, werde ich zu OnChartEvent() zurückkehren und sagen, dass nichts getan werden kann.

Es gibt jedoch keinen Grund zu der Annahme, dass die Umsetzung meiner Lösung noch nicht ausgereift sein wird.

Das werden wir bald herausfinden.

 
z.s. Speziell zum Thema der Speicherung von Strings in MT-Objekten gibt es eine seltsame Panne. Wenn Sie mit der Komprimierung von Daten beginnen und nicht druckbare Zeichen im Objektnamen verwenden, können Sie in manchen Fällen nicht mehr auf das Objekt zugreifen. Der Fehler ist wahrscheinlich immer noch da, weil er sehr spezifisch ist und nicht viele Leute ihn kennen, aber Sie könnten trotzdem darüber stolpern.
Grund der Beschwerde: