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
Es ist ungünstig, dass die Klassen nicht am Ende des Programms beschrieben werden können, sondern nur am Anfang.
Es wäre gut, einen Schieberegler im Editor einzubauen, der das Bearbeitungsfenster in zwei unabhängige Fenster unterteilt, wie in Word. Es wäre praktisch, zwei Teile des Programms gleichzeitig zu kopieren, zu schreiben und anzusehen.
Ich wünschte...
Die einzige (und nicht notwendige) Ausnahme sind die Wochenenden, die ebenfalls übersprungen werden können, aber auch hier wird garantiert, dass sie über verschiedene Instrumente hinweg synchron sind.
Wussten Sie, dass Forex an den Wochenenden tatsächlich arbeitet?
dass die meisten Makler nicht arbeiten
---
Einige geben Ihnen sogar am Wochenende Angebote und lassen Sie an Ihren Aufträgen arbeiten.
was sehr praktisch ist.
sie können den Spread am Wochenende ausweiten, weil es keine Liquidität gibt
aber es gibt eine Möglichkeit, Dinge zu vertuschen und zu ändern
Es wäre eine gute Idee, den Standardbibliotheken eine Funktion hinzuzufügen, die eine Zeichenkette dieser Form verarbeitet: Zerlegen Sie die Zeichenfolge in Module, die durch "Anfang" und "Ende" begrenzt sind, und schreiben Sie sie in ein Array von Zeichenfolgen. Zum Beispiel: int count=(string, array,"<h1>","</h1>",flag); Dabei ist string die Eingabezeichenkette, array die Ausgabezeichenkette, "<h1>" - Der Anfang des Moduls in der Zeichenfolge "</h1>". - Modulende in String. flag - gibt an, ob Modulbegrenzer in die Ausgabe-Array-Strings aufgenommen werden sollen oder nicht, count - Anzahl der gefundenen Module.
In diesem Fall wird int count=(string, array,"<h1>","</h1>",flag); - das Array aller Überschriften erstellen, die in string enthalten sind.
Dies kann mit vorhandenen Tools geschehen, lesen Sie den Artikel HTML mit MQL4-Tools parsen
Nun, es ist verständlich, dass Sie dies mit den verfügbaren Tools Schritt für Schritt tun können. Aber es ist besser, eine fertige Funktion zu haben, die alles auf einmal erledigt, als zwei Seiten Code....
Im Editor wäre es sinnvoll, einige Blöcke des Programmcodes auszublenden/zu öffnen. Zum Beispiel "Funktionen", "Definitionen", "Klassen"..., oder Sie können Unter-Codes ausblenden/öffnen, z.B. für, wenn...
Lesen Sie die Organisation des Datenzugriffs, dort steht, wie Sie die Historie korrekt abfragen.
Bericht. Und geteilt. Und die, die ich gemeistert habe. Es ist durchaus möglich, das herauszufinden, wenn es nötig ist. Ich muss MQL erst noch lernen, daher ist fast jede Frage, die ich zu dieser Sprache habe, dumm.
Einen anderen verstehe ich nicht: "Der Parameter "Max bars in charts" begrenzt die Anzahl der für Charts, Indikatoren und mql5-Programme im HC-Format verfügbaren Balken. Diese Einschränkung gilt für alle Zeitrahmendaten und dient in erster Linie dazu, Ressourcen zu sparen.
Bei der Einstellung hoher Werte für diesen Parameter ist zu bedenken, dass der Speicherverbrauch für die Speicherung von Zeitreihen und Indikatorpuffern Hunderte von Megabyte erreichen kann und das Speicherlimit für das Client-Terminalprogramm (2 GB für 32-Bit-Anwendungen von MS Windows) erreicht, wenn die Preisdatenhistorie für niedrige Zeitrahmen tief genug ist.
Vielleicht habe ich in dieser Folge nicht wirklich verstanden, was Sache ist, und gleichzeitig möchte ich noch einmal betonen, dass ich hier und jetzt keine Fragen zu MQL-Programmen stellen werde, aber die obige Motivation, Ressourcen zu sparen, wirkt seltsam in Bezug auf die automatische Abfrage der Historie durch das Terminal, wenn man direkt mit einem Chart manuell arbeitet. Ihr Code ist geschlossen, so dass ich nicht beurteilen kann, wie das Ganze funktioniert. Ich weiß nicht, ob jeder Kerzenständer ein echtes Objekt mit einer Vielzahl von Eigenschaften und Attributen ist oder ob es sich um eine vereinfachte grafische Zeichnung/Rendering des strukturellen Bildes des Marktes handelt. Wenn wir das Thema des Herunterladens der fehlenden Geschichte auslassen und uns auf diejenige konzentrieren, die wir bereits haben, stellt sich die Frage nach der Rationalität des Zeichnungsansatzes. Selbst wenn wir in den Einstellungen eine bestimmte und große Anzahl von Balken im Diagramm einstellen, selbst wenn wir die Diagrammbalken auf eine Nadel komprimieren und eine sehr hohe Auflösung des Bildschirms verwenden, kann ich nicht glauben, dass das gesamte Bild den Arbeitsspeicher beansprucht, wenn die Balken korrekt aus dem History DBMS auf den Bildschirm geladen werden. Wenden Sie das LIFO-Prinzip an? Die maximale Anzahl der Balken auf dem Diagramm kann unendlich groß sein, aber das, was sich hinter dem Bildschirm befindet (sowohl links als auch rechts), sollte überhaupt nicht im Speicher sein, und beim Scrollen sollte es in den Hauptspeicher geladen und sofort entladen werden, da wir nicht mit dem Netzwerk arbeiten, sondern nur mit der lokal verfügbaren Geschichte. Von welchen schrecklichen 2Gb-Beschränkungen könnte die Rede sein?
...ich bin wahrscheinlich nicht ganz auf dem Laufenden, also verzeihen Sie mir den Redneck im Voraus.
Jeder Preisbalken wird durch die Struktur MqlRates (keine anderen Merkmale) mit einer Größe von 52 Bytes beschrieben:
Um die Größe der Arbeitsdatenbanken abzuschätzen, müssen Sie im Verzeichnis /bases/server name/symbol/ nachsehen. Für EURUSD sehen Sie zum Beispiel Folgendes:
In diesem Verzeichnis liegen die originalen komprimierten Minutencontainer, wie sie vom Handelsserver vorgegeben werden. Sie können sehen, dass die Minutencontainer im Durchschnitt etwa 15 MB über 1 Jahr benötigen. Dies ist ein sehr spezielles Komprimierungsformat, um den Datenverkehr zu minimieren.
Das Cache-Verzeichnis enthält die Arbeitsdatenbanken, die nach Bedarf komprimiert wurden:
Wie Sie sehen können, sind seit 1993 minutki (eigentlich bis 1999 tägliche Datenbanken anstelle von minutki) etwa 231 Megabyte, komprimiert und einsatzbereit. Die benachbarten Uhren nehmen jedoch nur 4 MB in Anspruch.
Multipliziert man 52 Byte mit 4 400 000 Takten, so ergibt sich ein Wert von 230 MB. Ein einfacher gleitender Durchschnittsindikator mit einem Arbeitspuffer (Double) benötigt 4 400 000 * 8 = 35 Megabyte Speicher.
Wenn der Händler in den Terminaleinstellungen "Maximale Balken im Fenster" einstellt, gibt er ausdrücklich an, dass "nicht mehr als die angegebene Anzahl von Balken zum Arbeiten in den Speicher geladen werden" soll. Wenn die gesamte Minutenhistorie geladen wird (wir arbeiten mit dem M1-Chart), einige schwere Multi-Buffer-Indikatoren angewendet und Expert Advisors verwendet werden, können die Speicherkosten erheblich sein. Und wir können nicht denken: "Ich arbeite mit einem Fenster und sehe 500 Balken, also kann ich den Rest ausladen". Man kann sie nicht abladen - Indikatoren, Experten usw. leben und arbeiten mit diesen Daten.
Wir haben ein sehr effektives Caching-Modell implementiert, bei dem Daten und Indikatoren immer in einer einzigen Nummer gespeichert werden. Das bedeutet, dass das Öffnen von 5 Fenstern auf EURUSD:M1 nicht die Erstellung von 5 Datenpuffern erfordert, und dass mehrere Indikatoren, die in ihren Parametern absolut gleich sind, nur eine Kopie haben. Wenn Indikatoren oder Diagramme über einen längeren Zeitraum nicht verwendet werden, werden ihre Daten automatisch freigegeben und bei Bedarf zurückgeholt.
Darüber hinaus haben wir eine 64-Bit-Version des Client-Terminals, die ohne Einschränkungen eine große Menge an Daten verarbeiten kann. Diese Version wird veröffentlicht, sobald wir die Tests von MQL5 unter 64-Bit-Umgebung abgeschlossen haben.