Diskussion zum Artikel "Erstellen und Testen benutzerdefinierter Symbole im MetaTrader 5" - Seite 5

 
fxsaber:

Es gibt eine andere Funktion mit demselben Namen. Das Ersetzen durch eine Replace-Funktion bedeutet, dass man nicht wirklich versteht, wozu TicksAdd da ist: die entsprechenden Tick-Ereignisse auszulösen.


Ich sehe TicksAdd nicht, ich denke, dass es ursprünglich TicksAdd war, aber nachdem es in Analogie zu RatesUpdate (das sowohl Daten hinzufügt als auch löscht) umbenannt wurde, damit es keine Diskrepanz gibt und sie es richtig gemacht haben.

Ich ersetze es durch Replace, weil die Update-Funktion nicht funktioniert (wenn Sie das Skript ausführen, werden Sie das Gleiche sehen, die Dateien in Common/Files werden dort sein).
.

Dateien:
 
AndreyKrivcov:

Ich habe intellescence nicht sehen TicksAdd

Update auf 1700er Build.

 
AndreyKrivcov:

Aber ich habe mich mit Sicherheit geirrt - die Funktion funktioniert wahrscheinlich, kann aber nicht alle Ticks aufzeichnen, die ich angefordert habe (ich versuche, zu viele Ticks aufzuzeichnen)

Sie ist nicht für die Aufzeichnung gedacht.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.

Beta-Version von MetaTrader 5 build 1700: Projekte in MetaEditor und synthetische Tools

MetaQuotes Software Corp. 2017.12.05 14:22

  1. Terminal: Es wurde die Möglichkeit hinzugefügt, Echtzeit-Kurse für benutzerdefinierte Instrumente einzugeben. Jetzt können Sie einen Expert Advisor in MQL5 schreiben, der alle Kurse für ein bestimmtes benutzerdefiniertes Instrument einfügt. Zu diesem Zweck wird die neue Funktion CustomTicksAdd verwendet.
    .
    int  CustomTicksAdd(
       const string           symbol,       // Zeichenname
       const MqlTick&         ticks[]       // Array mit Tickdaten, die auf das Benutzerinstrument angewendet werden sollen
       );
    Die Funktion CustomTicksAdd ermöglicht es Ihnen, Ticks so zu übersetzen, als kämen sie vom Server des Brokers. Die Daten werden nicht direkt in die Tickdatenbank aufgenommen, sondern an das Fenster "Market Watch" gesendet. Und von diesem Fenster aus speichert das Terminal die Ticks in seiner Datenbank. Wenn die in einem Aufruf übertragene Datenmenge groß ist, ändert die Funktion ihr Verhalten, um Ressourcen zu sparen. Wenn mehr als 256 Ticks übertragen werden, werden die Daten in zwei Teile aufgeteilt. Der erste Teil (der größere) wird direkt in die Tickdatenbank geschrieben (wie bei CustomTicksReplace). Der zweite Teil, bestehend aus den letzten 128 Ticks, wird in das "Market Watch"-Fenster übertragen und dann vom Terminal in der Datenbank gespeichert.
 
fxsaber:

Es ist nicht dazu gedacht, aufgezeichnet zu werden.


Wahrscheinlich wegen des Builds. Ich habe eine ältere Version so weit, richtig. Aber für meine Zwecke, die ich nicht brauche, um Zecken in Echtzeit zu werfen, muss ich sie in den Tester zu verwenden und das ist es.

 
AndreyKrivcov:

Wahrscheinlich wegen des Builds. Ich habe eine alte Version so weit, richtig. Aber für meine Zwecke muss ich nicht in Echtzeit Ticks werfen, ich muss sie im Tester verwenden und das war's.

Dafür ist Replace da.

 
Beim Exportieren der Tick-Historie erhöht sich das Volumen der CSV-Datei erheblich, und ihr Format enthält Informationen über jeden Tick mit Millisekundengenauigkeit. Auf der Grundlage dieser Daten wird das Terminal einen Minutenverlauf erstellen, der für die Erstellung aller anderen Zeitrahmen verwendet wird.

Kameraden, was muss ich drücken, damit das Terminal aus der Tick-Historie eine Minuten-Historie generiert?

 

Guten Tag!

Ich bitte um Ihre Hilfe:

Einmal am Tag schreibe ich benutzerdefinierte Zeichen in CSV ("für vorgestern" von 24 Stunden Dauer).

Dann lösche ich das entsprechende Segment in der Historie (lösche "vorgestern" mit einer Dauer von 24 Stunden) über CustomRatesDelete.

Dann zeichne ich das Diagramm mit ChartRedraw neu.

Als Ergebnis erwarte ich eine kleinere Verlaufsdatei ***.hcc als vor dem Löschen eines Teils des Verlaufs.

Sie wird jedoch immer größer.

Auch das erneute Laden des Terminals hat keine Wirkung.

Wie kann ich bei den Verlaufsdaten Platz sparen und dafür sorgen, dass sie mit den Daten im Diagramm übereinstimmen?

 
vestrub:

Infolgedessen erwarte ich eine kleinere ***.hcc History-Datei als vor der Entfernung des History-Teils.

Sie wächst jedoch weiter.

Das Wachstum von *.tkc und *hcc ist ein langjähriges Merkmal. Vielleicht wird es in der neuen Version behoben.

 
fxsaber:

Das Wachstum von *.tkc und *hcc ist ein langjähriges Merkmal. Vielleicht wird es in der neuen Version behoben.

Verstehe ich das richtig, dass die einzige Möglichkeit, Speicherplatz zu sparen, sein wird:

1. den gesamten Verlauf auf SCV speichern.

2. dann *hcc löschen und das Terminal neu starten, um den Verlauf von Grund auf neu zu schreiben.

?

 
vestrub:

Verstehe ich das richtig, dass die einzige Möglichkeit, Speicherplatz zu sparen, darin besteht:

1. den gesamten Verlauf auf SCV zu speichern.

2. dann *hcc löschen und das Terminal neu starten, um den Verlauf von Grund auf neu zu schreiben.

?

Das ist kein Speichern. CSV nimmt an einem Tag mehr Platz ein als hcc in einer Woche.