Terminal
- Es wurde die Darstellung der Handelshistorie in Form von
Positionen hinzugefügt. Das Terminal sammelt Daten von Deals, die auf
eine Position bezogen sind (Eröffnung, zusätzliches Volumen,
Teilschließung und komplette Schließung) und gruppiert diese Daten in
einer Eintragung, die die folgenden Details enthält:
- Eröffnungs- und Schlusszeit der Position, die Zeit wird nach dem ersten und letzten Trade festgelegt Positionsgröße.
- Positionsgröße. Wenn ein Teil der Position geschlossen wurde, werden
das geschlossene Volumen und das ursprüngliche Volumen angezeigt
- gewichteten Durchschnittspreis für das Eröffnen und Schließen der Position
- Gesamtfinanzergebnis von Deals, die zur Position gehören
Für Konten mit der Hedge-Option ist solche Darstellung von Positionen ähnlich der Kontohistorie in MetaTrader 4.
- Es wurde ein neues Befehl für die Visualisierung von Deals auf dem Chart nach einem bestimmten Symbol hinzugefügt.
- Um alle Abschlüsse für die gewählte Position/Symbol anzuzeigen,
klicken Sie auf "[Symbolname] Deals hinzufügen". Die entsprechenden
Deals werden auf allen offenen Charts des ausgewählten Symbols
angezeigt. Wenn keine offenen Charts vorhanden sind, wird ein neuer
Chart geöffnet.
- Um alle Abschlüsse für alle Symbole aus der Historie anzuzeigen,
klicken Sie auf "Alle Deals hinzufügen". Auf allen offenen Charts werden
alle Deals für entsprechende Symbole angezeigt.
- Es wurde die Anzeige des internationalen Namens eines
Finanzinstruments in der Kontraktspezifikation hinzugefügt sowie die
Suchmöglichkeit nach dem internationalen Namen im Dialog der Verwaltung
von Symbolen.
- Es wurde die Möglichkeit hinzugefügt, die Auflösung des
Terminalfensters schnell zu setzen. Diese Funktion wird für diejenigen
praktisch sein, die Videos aufnehmen. Im Menü stehen Ihnen die
populärsten Auflösungen für die Veröffentlichung von Videos in
verschiedenen Videoservices wie YouTube zur Verfügung.
- Vorlagen und Profile von Charts wurden aus [Terminal Data
Folder\Profiles] nach [Terminal Data Folder\MQL5\Profiles] übertragen.
Nun kann man Vorlagen ins MQL5 Storage ganz einfach hinzufügen und auf diese von beliebigen PCs zugreifen.
MQL5
- Es wurde die Unterstützung für Ressourcenvariablen hinzugefügt.
Die Verwendung solcher Variablen kann die Entwicklung einiger Programme
wesentlich vereinfachen. Sie können zum Beispiel, einen OpenCL-Code in
einer separaten CL-Datei schreiben und dann diese Datei als String den
Ressourcen ihres MQL5-Programms hinzufügen. Früher hat man einen solchen
Code als eine große String-Variable beschreiben müssen.
Deklaration der Ressourcenvariablen
#resource path_to_resource_file als type_of_resource_variable name_of_resource_variable
Eigenschaften
- Die Kodierung von String-Dateien wird automatisch nach BOM
(Überschrift) bestimmt. Wenn BOM fehlt, wird die Kodierung nach dem
Inhalt ermittelt. Es werden die Kodierungen ANSI, UTF-8 und UTF-16
unterstützt. Alle Strings werden in Unicode umgewandelt.
- Die Daten einer solchen Ressource können nur über eine Variable
adressiert werden. Die automatische Adressierung über "::<resource
name>" funktioniert nicht.
- Der spezielle Typ der Ressourcenvariablen bitmap zeigt dem Compiler,
dass die Ressource eine grafische Abbildung darstellt. In diesem Fall
bekommt die Ressourcenvariable den Typ uint.
- Bei der Verwendung einer 24-Bit-Abbildung wird die Komponente des Alpha-Kanals für alle seine Pixel auf 255 gesetzt.
- Bei der Verwendung einer 32-Bit-Abbildung ohne Alpha-Kanal wird die
Komponente des Alpha-Kanals für alle seine Pixel auch auf 255 gesetzt.
- Bei der Verwendung einer 32-Bit-Abbildung mit dem Alpha-Kanal werden die Pixel nicht verarbeitet.
- Die Array-Ressourcenvariable vom Typ bitmap kann zwei Dimensionen
haben. In diesem Fall wird die Array-Größe als [Bildhöhe][Bildbreite]
gesetzt.
- Wenn das Arrays eindimensional ist, wird die Anzahl der Elemente als Bildhöhe*Bildbreite definiert.
- Wenn die Dateigröße der Ressource keine Aliquote zur Größe des
Elements des Arrays ist, werden die restlichen Daten abgeschnitten. Z.B.
wenn die Dateigröße 14 Bytes beträgt, beläuft sich die Anzahl der
Elemente für ein int Array auf 3, und die restlichen 2 Bytes (14 -
sizeof(int)*3) werden abgeschnitten.
Anwendungsbespiele
#resource "data.bin" as int ExtData[]
#resource "data.bin" as MqlRates ExtData[]
#resource "data.txt" as string ExtCode
#resource "data.txt" as string ExtCode[]
#resource "image.bmp" as bitmap ExtBitmap[]
#resource "image.bmp" as bitmap ExtBitmap2[][]
- Es wurde die Eigenschaft CHART_SHOW für die Deaktivierung der
Anzeige eines Charts hinzugefügt. Für das Erhalten und die Installation
der Eigenschaft werden die Funktionen ChartGetInteger und ChartSetInteger verwendet.
Wenn
false, wird die Zeichnung jeglicher Attribute eines Preischarts
deaktiviert und alle Randabstände des Charts werden entfernt: Zeit- und
Preisskala, die Leiste der schnellen Navigation, Markierungen von
Ereignissen im Kalender, Zeichen von Trades, Tooltips von Indikatoren
und Balken, Unterfenster von Indikatoren, Histogramme der Volumina usw.
Die
Deaktivierung der Zeichnung stellt eine ideale Lösung für die
Erstellung eines eigenen Interfaces unter Verwendung grafischer Ressourcen.
Grafische Objekte werden unabhängig von dem gesetzten Wert der CHART_SHOW Eigenschaft gezeichnet.
- Es wurde die Eigenschaft CHART_KEYBOARD_CONTROL für die
Aktivierung/Deaktivierung der Steuerung eines Charts mit der Tastatur
("Home", "End", "PageUp", "+", "-", "Pfeil nach oben" usw.) hinzugefügt.
Wenn man CHART_KEYBOARD_CONTROL auf false setzt, kann man das Scrollen
und die Skallierung des Charts deaktivieren, dabei kann man aber die
Ereignisse des Drückens auf diese Tasten in OnChartEvent erhalten.
Für das Erhalten und Setzen der Eigenschaft werden die Funktionen ChartGetInteger und ChartSetInteger verwendet.
- Es wurden neue Funktionen und Eigenschaften für Operationen mit OpenCL hinzugefügt.
Neue Eigenschaften für das Arbeiten mit dem Speicher
Mit CLGetInfoIntegrer kann man nun 4 neue Eigenschaften erhalten:
- CL_DEVICE_MAX_WORK_GROUP_SIZE — die Gesamtzahl der lokalen Arbeitsgruppen, die für ein OpenCL Gerät verfügbar sind.
- CL_KERNEL_WORK_GROUP_SIZE — die Gesamtzahl der lokalen Arbeitsgruppen, die für ein OpenCL Programm verfügbar sind.
- CL_KERNEL_LOCAL_MEM_SIZE — die Größe des lokalen Speichers in Bytes,
den ein OpenCL Programm für alle parallelen Auufgaben in einer Gruppe
verwendet. Verwenden Sie CL_DEVICE_LOCAL_MEM_SIZE, um das verfügbare
Maximum zu erhalten.
- CL_KERNEL_PRIVATE_MEM_SIZE — minimale Größe des privaten Speichers
in Bytes, die von jeder Aufgabe im Kernel des OpenCL Programms genutzt
wird.
bool CLExecutionStatus(int kernel)
Gibt den
Ausführungsstatus eines OpenCL Programms zurück. Als Parameter wird das
Handle auf Kernel des OpenCL Programms übergeben.
bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)
Setzt
den Puffer als Argument der kernel-Funktion. Als Parameter werden das
Handle des Kernels des OpenCL Programms, Nummer des Arguments der
OpenCL-Funktion und die Puffergröße übergeben.
- Es wurde der Antwortcode TRADE_RETCODE_LIMIT_POSITIONS hinzugefügt.
Die Anzahl offener Positionen, die man gleichzeitig auf einem Konto
haben kann, kann durch die Servereinstellungen begrenzt werden. Wenn die
Grenze erreicht ist, gibt der Server beim Versuch, eine Order zu
platzieren, den Fehler TRADE_RETCODE_LIMIT_POSITIONS zurück. Die
Begrenzung funktioniert unterschiedlich je nach dem Typ der Verrechnung
von Positionen:
- Im Netting-Modus wird die Anzahl offener Positionen berücksichtigt.
Beim Erreichen der Grenze erlaubt die Plattform keine neuen Orders zu
platzieren, infolge deren sich die Anzahl der offenen Positionen erhöhen
kann. Die Plattform erlaubt praktisch Orders nur für die Symbole zu
platzieren, auf welchen es bereits offene Positionen gibt. Die aktuellen
Pending Orders werden nicht berücksichtigt, weil deren Ausführung zur
Änderung der aktuellen Positionen und nicht zur Erhöhung ihrer Anzahl
führen kann.
- Im Hedging-Modus werden neben den offenen Positionen auch platzierte
Pending Orders berücksichtigt, denn ihre Auslösung immer zur Eröffnung
einer offenen Position führt. Wenn die Grenze erreicht ist, erlaubt die
Plattform keine Marktorders zur Eröffnung von Positionen sowie keine
Pendig Orders zu eröffnen.
- Es wurde ein Fehler behoben, der in einigen Fallen zum Auslassen von Ticks in der Tick-Historie führte.
- Es wurden Fehler der indirekten Typisierung von Vorlagen behoben.
- Die Bibliothek der mathematischen Statistik wurde aktualisiert.
- Es wurde die Funktion TranslateKey
hinzugefügt, die ein Unicode-Zeichen nach dem virtuellen Code der
Taste unter Berücksichtigung der aktuellen Eingabesprache und des Status
der Steuerungstasten zurückgibt. Die Funktion verwendet ToUnicodeEx für die Umwandlung der vom Nutzer gedrückten Tasten in Unicode-Zeichen.
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
{
if(id==CHARTEVENT_KEYDOWN)
{
short sym=TranslateKey((int)lparam);
//--- wenn das eingegebene Zeichen erfolgreich in Unicode umgewandelt wurde if(sym>0)
Print(sym,"'",ShortToString(sym),"'");
else
Print("Error in TranslateKey for key=",lparam);
}
}
Market
- Das Öffnen der Produktseite beim Herunterladen einer Demoversion korrigiert.
Tester
- Nun werden Optimierungsergebnisse nach der Spalte "Ergebnisse" automatisch sortiert.
- Es wurde die Option der automatischen Umschaltung auf Ergebnisse nach dem Beenden der Optimierung hinzugefügt.
- Der Strategietester bleibt nun im Optimierungsmodus nach dem Start
eines einzelnen Tests. Früher wechselte der Strategietester zum Modus
des Einzeltests, wenn ein Einzeltest aus dem Ergebnisse-Reiter gestartet
wurde. Für die erneute Optimierung musste man früher diese in den
Einstellungen wieder starten.
- Jetzt kann man Sets von Parametern nicht nur als set-Dateien,
sondern auch als Einstellungen des lokalen Strategietesters mit einem
einfachen Zugriff über das Kontextmenü speichern.
- Es wurde eine Übersetzung ins Mongolische, Ungarische, Rumänische und Urdu hinzugefügt.
MetaEditor
- Es wurde die Möglichkeit hinzugefügt, die Reihenfolge
betrachtender Ausdrücke im Debug-Fenster zu ändern. Bewegen Sie einfach
den Ausdruck zur gewünschten Position.
- Es wurde der Fehler der Erkennung der Kodierung von Quelldateien behoben.
- Die Suche nach Dateien wurde in der UTF-8-Kodierung korrigiert.
- Es wurde der Fehler der Hervorhebung eines Textes mit Tabulatoren mit der Maus behoben.
- Es wurde eine Übersetzung ins Ungarische und Rumänische hinzugefügt.
Die Dokumentation wurde aktualisiert.
Lesen Sie die vorige Nachricht: