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
So sieht der Anfang des Blocks aus:
Soweit ich Sie verstehe, haben Sie Ihre eigene Dolmetschersprache entwickelt.
Etwa so?
Eine weitere dumme Frage:
Ist jedes erzeugte Fenster mit verschiedenen Elementen eine Ressource oder mehrere?
Obwohl eine bessere Analogie wahrscheinlich HTML wäre
Wie ich bereits sagte, braucht Ihr Kind einen grafischen Konstruktor. So etwas wie die von Andrei Barinov.
Auch Ihre Videoclips sind zu lang. Sie müssen sie von 45 Minuten auf 5 Minuten oder besser noch auf 3 Minuten reduzieren.
Haben Sie selbst versucht, die Antwort auf diese Frage zu finden?
Tipp: Geben Sie in der Google-Suche "DBL_MANT_DIG 53 52" ein.
Ja, danke. Ich habe es gefunden.
1. Soweit ich Sie verstehe, haben Sie Ihre eigene Dolmetschersprache entwickelt.
Etwa so?
Und eine dumme Frage:
Ist jedes erzeugte Fenster mit verschiedenen Elementen eine Ressource oder mehrere?
Eine bessere Analogie wäre aber vielleicht die Sprache HTML.
Wie ich schon sagte - Ihr Geistesprodukt braucht einen grafischen Konstrukteur. So etwas wie die von Andrei Barinov.
Auch Ihre Videoclips sind zu lang. Von 45 Minuten sollten sie auf 5 oder besser noch auf 3 Minuten reduziert werden.
1. Ja, es hat sich herausgestellt, dass die Definition von "Dolmetscher" am besten zu dem passt, was ich geschaffen habe (obwohl ich bei der Erstellung keine Ahnung hatte, was es ist).
2. Jedes gebildete Fenster besteht aus mehreren Kanvasen (Ressourcen). Bei den ersten beiden handelt es sich um die Windows-Plattform. Früher habe ich eine andere Zeichenmethode verwendet und deshalb waren einige Teile halbtransparent und man konnte die Grafik durch sie hindurch sehen. Um dies zu vermeiden, habe ich eine weitere Leinwand im Hintergrund hinzugefügt. Dann hat sich die Technik verbessert, aber die Leinwand bleibt im Hintergrund. Sie ist in die Technologie hineingewachsen, und es ist jetzt schwer, sie wieder loszuwerden. Aber irgendwann werde ich sie entfernen und die Fensterplattform wird aus einer einzigen Leinwand bestehen.
Auch die "Felder" (umschaltbare Bildreiter), sind unabhängige Leinwände. Sie enthalten vorgefertigte Bilder und lassen sich daher schnellstmöglich wechseln. Wenn ich alles auf eine einzige Leinwand zeichnen würde, wäre der Bildwechsel unweigerlich langsamer. Nachdem ich darüber nachgedacht habe, bin ich zu dem Schluss gekommen, dass dies die beste Lösung ist.
3. Visual Constructor war und ist immer noch mein Ziel. Ich stehe kurz vor dem Beginn der Umsetzung. Es gibt ein Verständnis für seine Struktur. Es gibt alle Konzepte, die für seine Umsetzung notwendig sind. Ich weiß, wie man es macht. Alles, was ich brauche, ist Zeit.
ZS: Die Besonderheit meiner Entwicklung ist die Spontaneität. Ich war weder mit Interpertoren noch mit der HTML-Sprache vertraut und wusste nicht, wie sie funktionieren. Das hält mich aber nicht davon ab, ähnliche Dinge zu entwerfen und herzustellen. Ich denke, wenn es gut funktioniert, werde ich es auch weiterhin tun. :)
Auf den ersten Blick scheinen Sie den Speicher sehr verschwenderisch zu nutzen. Ich kann mich aber auch irren.
Idealerweise sollte Ihre Aufgabe nur eine Leinwand haben, die die Transparenz des Preisdiagramms unterstützt.
Die Leistung von MQL5 sollte ausreichen, um die gesamte Schnittstelle im laufenden Betrieb zu bilden, ohne fertige Blöcke im Speicher zu haben.
Allerdings schließe ich die Möglichkeit nicht aus, Speicherressourcen zu opfern, um die Leistung von schwerfälligen Schnittstellen zu erhöhen.
Ich sehe einen großen Vorteil in Ihrem bisherigen Ansatz:
Es wird für Sie einfacher sein, einen vollwertigen grafischen Konstruktor zu erstellen, da es einfacher ist, Markup-Code zu generieren, als den MQL-Code selbst.
Aber es ist eine gewaltige Aufgabe.Auf den ersten Blick scheinen Sie den Speicher sehr verschwenderisch zu nutzen. Ich kann mich aber auch irren.
Im Idealfall sollte Ihre Aufgabe nur eine Leinwand haben, die die Transparenz des Preisdiagramms unterstützt.
Die Leistung von MQL5 sollte ausreichen, um die gesamte Schnittstelle im laufenden Betrieb zu bilden, ohne fertige Blöcke im Speicher zu haben.
Allerdings schließe ich die Möglichkeit nicht aus, Speicherressourcen zu opfern, um die Leistung von schwerfälligen Schnittstellen zu erhöhen.
Ich sehe einen großen Vorteil in Ihrem bisherigen Ansatz:
Es wird für Sie einfacher sein, einen vollwertigen grafischen Konstruktor zu erstellen, da es einfacher ist, Markup-Code und nicht den MQL-Code selbst zu generieren.
Aber es ist eine gewaltige Aufgabe.Es gibt immer noch eine relativ geringe Speicherüberschreitung. Sie haben Recht. Elementobjekte wie Text oder Icon erhalten im Kernel "unverdienterweise" eine Anzahl von 235 Eigenschaften, während ihre eigenen Eigenschaften um ein Vielfaches geringer sind. Das Hauptelement, d. h. das Basisobjekt, sollte alle 235 Eigenschaften haben, aber Symbol- und Textobjekte haben weniger Eigenschaften. Dies führt zu einem Speicherüberlauf.
Die Idee ist, dass ich, wenn ich weitere 60 Zellen zur Reihe der Hauptelementobjekte hinzufüge, Text- und Symboleigenschaften in sie einfügen kann. Dadurch würde der Kern "breiter" werden, aber Sie könnten zwei Drittel der Objekte entfernen.
Dies würde zu einer erheblichen Einsparung von Arbeitsspeicher und zu einem Geschwindigkeitsgewinn bei der Erstellung des Kernels führen. Dies ist jedoch technisch schwierig zu realisieren. Es ist eine Menge Nacharbeit erforderlich. Bisher sind der Speicherverbrauch und die Erstellungszeit recht akzeptabel. Aber es gibt keine Grenzen der Perfektion...
Die Verwendung einer einzigen Leinwand ist keine gute Idee. Es ist viel einfacher, eine Leinwand für jedes Fenster und eine Leinwand für jedes Feld zu verwenden. Die allgemeine Leinwand muss viel öfter neu gezeichnet werden. Bei jedem Bildwechsel oder jeder Fensterverschiebung. Beim Scrollen... Es sollte berücksichtigt werden, dass das Neuzeichnen nicht immer schnell geht. Das liegt nicht an den Algorithmen, sondern an der "Raffinesse" der Grafiken. Lassen Sie mich das erklären:
Wenn Sie ein einfaches rechteckiges Etikett (z. B. ein Quadrat) zeichnen, ist es ein Zyklus über ein Array von Pixeln, wobei die richtigen Zellen mit dem richtigen Wert (Farbe) initialisiert werden.
Wenn Sie ein Quadrat mit einem Rahmen zeichnen, handelt es sich um zwei Zyklen auf einem Feld von Pixeln.
Wenn Sie ein Quadrat mit einem Rahmen und einem Symbol zeichnen, sind das drei Zyklen.
Wenn Sie ein Quadrat mit einem Rahmen zeichnen, der einen Oberflächenverlauf und ein Symbol mit einem Schatten hat, sind das vier oder mehr Zyklen auf dem Pixelarray.
Je steiler die Grafik also ist, desto mehr müssen Sie diese Pixelreihe in Zyklen "bügeln", um das richtige Bild zu erzeugen. Daher ist es umso besser, je weniger neu gezeichnet werden muss.
Eine Leinwand für alle Bilder führt dazu, dass Sie alles ständig neu zeichnen müssen. Daher ist das keine gute Lösung.
ZS: Die Aufgabe ist gewiss gigantisch, aber ich kann sie bewältigen. (Obwohl ich Hilfe bekommen werde.))
ZS: Danke für das Video, es ist inspirierend! :)
Ändern Sie die Größe des Fensters mit der Maus?
Wenn ja, erscheint dann ein rotes Quadrat?
Ändern Sie die Größe des Fensters mit der Maus?
Wenn ja, erscheint dann ein rotes Quadrat?
Ich verstehe nicht, über welche Quadrate wir hier reden.
Das dynamische Fenster kann mit der Maus in der Größe verändert werden. Wie könnte es anders sein?
ZS: Das dynamische Fenster hat zunächst eine volle Bildschirmgröße. Außerdem wird es auf die gewünschte Größe "zugeschnitten". Mit anderen Worten, die gesamte Dynamik wird in der maximalen Größe der bereits erstellten Bitmap realisiert.
Um das Thema der Rundung fortzusetzen.
Ich habe herausgefunden, dass moderne Intel-Prozessoren, die den erweiterten SSE4.1-Befehlssatz unterstützen, den RundungsbefehlROUND{PS, PD} haben. Ich bin sicher, AMD hat etwas Ähnliches.
https://ru.wikipedia.org/wiki/SSE4#SSE4a
http://o-ili-v.ru/wiki/SSE4
Bedeutet dies, dass der MQL5-Compiler diesen Befehl auf CPU-Ebene nicht verwendet? Da mein Intel Kaby Lake-Prozessor dieses Set unterstützt.
Und es gibt noch viel mehr, sogar die skalare Multiplikation von Vektoren.