Terminal
- Für die Erweiterung der Möglichkeiten von Retail-Devisenhändlern
wurde der Plattform das Hedging-System hinzugefügt. Nun kann man eine
Vielzahl von Positionen pro Symbol haben, darunter auch gegenläufigen
Positionen. Dank Hedging kann man Handelsstrategien mit dem sogenannten
"Locking" umsetzen: wenn sich der Preis gegen den Trader entwickelt,
kann der Trader eine Position in eine entgegengesetzten Richtung
eröffnen.
Das neue System ist dem von MetaTrader 4 ähnlich,
Trader sind also mit diesem System vertraut. Dabei können sie von allen
Vorteilen der fünften Version der Plattform profitieren, zu welchen
Ausführung von Orders durch mehrere Trades (darunter auch
Teilausführung), Mehrwährungs- und Multithread-Tester mit MQL5 Cloud Network Netz und vieles mehr gehören.
Nun kann man mit einem Konto an der Börse traden, wo man nur eine
Position pro Symbol haben darf und wo Netting verwendet wird.
Gleichzeitig kann man direkt auf derselben Plattform, aber auf einem
anderen Konto am Devisenmarkt handeln und Hedging verwenden.
Wie man ein Konto mit Hedging eröffnen und wo man den Kontotyp prüfen kann
Der Typ der Berechnung von Positionen wird auf Konto-Ebene gesetzt, er
wird in der Überschrift des Fensters im Terminal sowie im Journal
angezeigt:
Um ein Demokonto mit Hedging zu eröffnen, aktivieren Sie die entsprechende Option:
Netting
In diesem System kann zur gleichen Zeit nur eine Position pro Symbol vorhanden sein:
- Wenn es auf dem Symbol bereits eine Position gibt, erhöht die
Ausführung eines Trades in der gleichen Richtung das Volumen dieser
Position.
- Die Ausführung eines Trades in einer entgegengesetzten
Richtung führt zur Reduzierung des Volumens der vorhandenen Position,
ihrer Schließung (wenn das Volumen des Trades dem Volumen der laufenden
Position gleich ist) oder Umkehrung (wenn das Volumen des
entgegengesetzten Trades größer als das der laufenden Position ist).
Dabei ist es irrelevant, was den Trade in der entgegengesetzte
Richtung hervorgerufen hat — die Ausführung einer Marktorder oder
Auslösung einer Pending-Order.
Das Beispiel unten zeigt die Ausführung von zwei Buy-Trades EURUSD mit dem Volumen in Höhe von 0.5 Lots:
Aus der Ausführung dieser Trades ergab sich eine gemeinsame Position mit einem Volumen in Höhe von einem Lot.
Hedging-System
Beim Hedging kann man eine Vielzahl von Positionen auf einem und
demselben Symbol haben, darunter auch von entgegengesetzte Positionen.
Wenn eine offene Position für das Symbol vorhanden ist, und der Händler
einen neuen Trade ausführt (bzw. eine Pending-Order ausgelöst wird),
wird eine neue Position eröffnet. Die vorhandene Position ändert sich
nicht.
Das Beispiel unten zeigt die Ausführung von zwei Buy-Trades EURUSD mit dem Volumen in Höhe von 0.5 Lots:
Die Ausführung dieser Trades führte zur Eröffnung zwei separater Positionen.
Neuer Typ von Handelstransaktionen Close By
Für Konten mit Hedging wurde ein neuer Typ von Transaktionen
hinzugefügt — Schließung einer Position zur Gegenposition. Diese
Operation ermöglicht es, zwei gegensätzliche Positionen auf einem
Instrument gleichzeitig zu schließen. Wenn die Gegenpositionen
unterschiedliche Zahl von Lots haben, bleibt nur eine der Orders offen.
Ihr Volumen ist der Differenz der Lots dieser zwei geschlossener
Positionen gleich, und die Richtung der Position sowie der
Eröffnungspreis stimmen mit der größeren (nach Volumen) Position
überein.
Im Gegensatz zur einzelnen Schließung von zwei Positionen, lässt die Schließung zur Gegenposition einen Spread sparen:
- Bei einzelner Schließung muss der Trader den Spread zweimal
zahlen: er schließt den Kauf zum niedrigeren Preis (Bid), und den
Verkauf — zum höheren Preis (Ask).
- Bei der Schließung zur Gegenposition werden die erste Position
zum Eröffnungspreis der zweiten Position und die zweite Position zum
Eröffnungspreis der ersten Position geschlossen.
Beim Schließen einer Position zur Gegenposition wird eine Order
vom Typ "close by" platziert. Im Kommentar zur Order sind die Tickets
der Positionen angegeben, die geschlossen werden. Die Schließung eines
Paares gegenläufiger Positionen erfolgt durch zwei Trades vom Typ "out
by". Der Gesamtgewinn/-verlust nach der Schließung der beiden Positionen
wird nur in einem Trade angegeben.
- Es wurde die Option hinzugefügt, Handelsroboter und technische Indikatoren anhand realer Tick-Historie zu testen.
Das Testen und die Optimierung anhand realer Ticks sind möglichst nah
an realen Bedingungen. Statt den anhand Minutendaten generierten werden
reale Ticks verwendet, die vom Broker nach Finanzinstrumenten
gespeichert wurden. Das sind Ticks von Börsen und Liquiditätsanbietern.
Wählen Sie den entsprechenden Modus im Strategietester aus, um das Testen oder die Optimierung anhand realer Ticks zu starten:
Tickdaten haben ein erheblich größeres Volumen, als Minutendaten.
Beim ersten Testerstart kann die Ladung der Daten eine lange Zeit in
Anspruch nehmen. Die heruntergeladenen Tickdaten werden nach Monaten in
TKC-Dateien im Ordner \bases\[Name des
Handelsservers]\ticks\[Symbolname]\ gespeichert.
Besonderheiten des Testens anhand realer Ticks
Beim Testen anhand realer Ticks kann sich der Spread innerhalb des
Minutenbalkens ändern, während bei der Generierung von Ticks innerhalb
des Minutenbalkens der Spread genutzt wird, der im entsprechenden Balken
festgelegt wurde.
Wenn die Markttiefe für das Symbol angezeigt
wird, werden die Balken strikt nach den Preisen der Ausführung des
letzten Trades — Last — gebildet. Im anderen Fall versucht der Tester
die Balken zuerst anhand Last-Preise zu bilden und erst wenn diese nicht
vorhanden sind anhand Bid-Preise. Das Ereignis des eingehenden Ticks
OnTick wird auf allen Ticks ausgelöst, unabhängig davon, ob der
Last-Preis vorliegt oder nicht.
Beachten Sie bitte, dass
Transaktionen immer nach Bid- und Ask-Preisen ausgeführt werden, auch
wenn der Chart auf Last-Preisen beruht. Der Expert Advisor, der für den
Handel nur Eröffnungspreise verwendet (unter Anderem, den integrierten
Moving Average), erhält z.B. ein Signal mit einem Preis (Last), wird
aber den Trade zu einem anderen Preis ausführen (Bid oder Ask je nach
der Richtung). Wenn man den Alle-Ticks-Modus verwendet werden die Balken
nach Bid-Preisen gebildet, und Trades werden nach Bid und Ask
ausgeführt. Dabei wird Ask als Bid plus festgelegter Spread des
entsprechenden Minutenbalkens berechnet.
Wenn der Minutenbalken
in der Historie des Symbols vorhanden ist und es aber keine Tickdaten
für diese Minute gibt, generiert der Tester Ticks im Alle-Ticks-Modus.
So kann man den Expert Advisor anhand einer bestimmten Periode testen,
wenn der Broker unvollständige Tickdaten hat. Wenn die Historie des
Symbols über keinen Minutenbalken verfügt, Tickdaten für diese Minute
aber vorhanden sind, werden diese Ticks ignoriert. Minutendaten gelten
als zuverlässiger.
Wählen Sie den entsprechenden Modus im
Strategietester aus, um das Testen oder die Optimierung anhand realer
Ticks zu starten: Die Unterstützung für
MQL5 Cloud Network wird bald hinzugefügt
- Chat hinzugefügt. Nun können Sie mit Ihren Freunden und Kollegen auf MQL5.community
direkt in der Plattform kommunizieren. Im Chat werden alle persönlichen
Nachrichten eines MQL5-Benutzerkontos angezeigt. Um einen neuen Chat zu
starten, loggen Sie sich ins Ihr Benutzerkonto direkt im Chat-Fenster
oder über die Einstellungen der Plattform ein: Extras -> Optionen
-> Community.
- Der Dialog der Eröffnung eines Demokontos wurde wesentlich
vereinfacht; es wurden Demokonten mit Hedging hinzugefügt. Nun brauchen
Sie keine lange Form mehr auszufüllen, geben Sie nur die wichtigsten
Daten an und wählen Sie die Handelsparameter aus: Kontotyp, Anlage,
Hebel und Hedging.
- Für einen schnellen Start wurde eine automatische Eröffnung eines
Demokontos hinzugefügt. Wenn es noch kein einziges Konto in der
Plattform gibt, wird beim Starten ein Demokonto auf einem verfügbaren
Handelsserver eingerichtet. Nach einer erfolgreichen Eröffnung wird das
Konto direkt mit dem Server verbunden.
- Nun hat jede Position ein Ticket - eine individuelle Nummer. In
der Regel entspricht sie dem Ticket der Order, mit der die Position
eröffnet wurde, außer den Fällen, wenn das Ticket infolge Operationen
auf dem Server geändert wurde. Z.B. Anrechnung von Swaps durch eine
erneute Eröffnung einer Position. Allen früher eröffneten Positionen
werden Tickets nach der Aktualisierung der Terminalversion automatisch
zugewiesen.
- Es wurden Fehler beim Setzens von Stop Loss und Take Profit
Levels behoben, wenn eine Marktorder platziert wird, die zum
Richtungswechsel der Position führt. Früher konnten solche Grenzen für
eine neue Position nicht gesetzt werden.
- Die Darstellung von Preisen mit vier und mehr Zeichen nach dem
Komma wurde auf den Steuerelementen des Ein-Klick-Handel-Panels
verbessert.
- Die Anzeige von Nachrichten wurde im Vorschaufenster vor dem Ausdrucken korrigiert.
- Es wurden Fehler der Anzeige von Tickcharts behoben.
- Es wurde ein Fehler beim Öffnen der Markttiefe nach dem Absturz des Terminals behoben.
- Es wurden Prüfungen hinzugefügt, ob Marktorders bei Anzeige von Steuerelementen des Ein-Klick-Handel-Panels erlaubt sind.
- Die Berechnung des Profits und der Margin wurde bei einer großen Anzahl offener Orders und Positionen optimiert.
- Es wurde eine Übersetzung der Benutzeroberfläche ins Malaiische hinzugefügt.
- Das Benutzerhandbuch wurde komplett aktualisiert. Neues Design,
interaktive Screenshots und integrierte Videos — alles, damit man den
Handel mithilfe vom MetaTrader 5 möglichst einfach erlernen könnte:
MQL5
- Nun werden abstrakte Klassen und rein virtuelle Funktionen unterstützt.
Die abstrakten Klassen sind für die Erstellung generalisierter
Entitäten bestimmt, aufgrund deren später konkretere abgeleitete Klassen
erstellt werden. Als abstrakte wird die Klasse bezeichnet, die nur als
Basisklasse für eine andere Klasse genutzt werden kann. Aus diesem Grund
ist es unmöglich, ein Objekt vom Typ abstrakter Klasse zu erstellen.
Eine Klasse, die mindestens eine rein virtuelle Funktion enthält, gilt
als abstrakt. Deswegen müssen Klassen, die von einer abstrakten Klasse
abgeleitet wurden, alle ihre rein virtuellen Funktionen umsetzen, sonst
werden sie auch zu abstrakten Klassen.
Eine virtuelle Funktion
wird als "rein" mit der Syntax des Reinheit-Spezifikators deklariert.
Schauen wir uns die CAnimal-Klasse an, die nur für die Gewährleistung
allgemeiner Funktionen erstellt wird - Objekte vom Typ CAnimal sind für
eine praktische Anwendung zu allgemein. Auf diese Weise ist die
CAnimal-Klasse ein guter Kandidat für eine abstrakte Klasse:
class CAnimal
{
public:
CAnimal();
virtual void Sound() = 0;
private:
double m_legs_count;
};
Die Sound() Funktion ist hier rein virtuell, weil diese mit dem
Spezifikator der rein virtuellen PURE-Funktion (=0) deklariert wurde.
Als rein virtuell werden nur die virtuellen Funktionen bezeichnet, für
welche der PURE-Spezifikator angegeben wurde, und zwar: (=NULL) oder
(=0). Beispiel der Deklaration und Anwendung einer abstrakter Klassen:
class CAnimal
{
public:
virtual void Sound()=NULL;
};
class CCat : public CAnimal
{
public:
virtual void Sound() { Print("Myau"); }
};
new CAnimal;
CAnimal some_animal;
new CCat;
Begrenzungen bei der Anwendung abstrakter Klassen
Wenn
der Konstruktor einer abstrakten Klasse eine rein virtuelle Funktion
(direkt oder indirekt) aufruft, wird das Ergebnis undefiniert sein.
class CAnimal
{
public:
virtual void Sound(void)=NULL;
void CallSound(void) { Sound(); }
CAnimal()
{
Sound();
CallSound();
}
};
Jedoch können Konstruktoren und Destruktoren abstrakter Klassen andere Memberfunktionen aufrufen.
- Für eine Vereinfachung der Gestaltung von Ereignis-Modellen wurde eine Unterstützung für Pointer auf Funktionen hinzugefügt.
Um den Pointer auf Funktion zu deklarieren, definieren Sie den Typ "Pointer auf Funktion", zum Beispiel:
typedef int (*TFunc)(int,int);
Jetzt ist TFunc ein Typ, man kann die Pointer-Variable auf Funktion deklarieren:
TFunc func_ptr;
In der Variablen func_ptr kann man die Funktionsadresse speichern, um diese später aufzurufen:
int sub(int x,int y) { return(x-y); }
int add(int x,int y) { return(x+y); }
int neg(int x) { return(~x); }
func_ptr=sub;
Print(func_ptr(10,5));
func_ptr=add;
Print(func_ptr(10,5));
func_ptr=neg;
Print(func_ptr(10));
Pointers auf Funktionen können als Parameter gespeichert und
übergeben werden. Man kann keinen Pointer auf eine nicht statische
Methode der Klasse erhalten.
- Der Struktur von MqlTradeRequest wurden zwei neue Felder hinzugefügt:
- position — Ticket der Position. Das Feld ist im Hedging-System
bei der Änderung und Schließung einer Position für ihre eindeutige
Identifikation auszufüllen. Beim Trading mit Netting ist die Ausfüllung
des Feldes irrelevant, denn die Identifikation einer Position erfolgt
nach Symbolnamen.
- position_by — das Ticket der Gegenposition Das Ticket wird
beim Schließen einer Position zur Gegenposition verwendet, die auf
demselben Symbol, aber in einer entgegengesetzten Richtung eröffnet
wurde. Das Ticket wird nur beim Hedging verwendet.
- Der Aufzählen von Typen der Handelsoperationen
ENUM_TRADE_REQUEST_ACTIONS wurde der Wert TRADE_ACTION_CLOSE_BY
hinzugefügt — das Schließen einer Position zur Gegenposition. Das Ticket
wird nur beim Hedging verwendet.
- Den Aufzählungen der Eigenschaften von Orders, Trades und
Positionen wurden Tickets der entsprechenden Handelsoperationen
hinzugefügt:
- Dem ENUM_ORDER_PROPERTY_INTEGER wurde die Eigenschaft
ORDER_TICKET — Ticket der Order hinzugefügt. Das ist eine einmalige
Nummer, die jeder Order zugewiesen wird.
- Dem ENUM_DEAL_PROPERTY_INTEGER wurde die Eigenschaft
DEAL_TICKET — Ticket des Trades hinzugefügt. Das ist eine einmalige
Nummer, die jedem Trade zugewiesen wird.
- Dem ENUM_POSITION_PROPERTY_INTEGER wurde die Eigenschaft
POSITION_TICKET — Ticket der Position hinzugefügt. Das ist eine
einmalige Nummer, die jeder neu eröffneten Position zugewiesen wird. In
der Regel entspricht sie dem Ticket der Order, mit der die Position
eröffnet wurde, außer den Fällen, wenn das Ticket infolge Operationen
auf dem Server geändert wurde. Z.B. Anrechnung von Swaps durch eine
erneute Eröffnung einer Position. Um die Order zu finden, mit der die
Position eröffnet wurde, ist die Eigenschaft POSITION_IDENTIFIER zu
verwenden. Der Wert von POSITION_TICKET entspricht
MqlTradeRequest::position.
- Der Aufzählung von Ordertypen ENUM_ORDER_TYPE wurde
ORDER_TYPE_CLOSE_BY hinzugefügt — Schließen einer Position zur
Gegenposition.
- Der Aufzählung ENUM_ORDER_PROPERTY_INTEGER wurde
ORDER_POSITION_BY_ID hinzugefügt — ID der Gegenposition für die Orders
vom Typ ORDER_TYPE_CLOSE_BY.
- Der Aufzählung der Richtungen des Trades ENUM_DEAL_ENTRY wurde der
Wert DEAL_ENTRY_OUT_BY hinzugefügt — der Trade ist infolge des
Schließens einer Position zur Gegenposition ausgeführt.
- Der Struktur MqlTradeTransaction wurden zwei ähnliche Felder hinzugefügt:
- position — Ticket der Position, auf die sich die Transaktion
ausgewirkt hat. Das Feld wird für die Transaktionen ausgefüllt, die mit
Marktorders (TRADE_TRANSACTION_ORDER_* außer
TRADE_TRANSACTION_ORDER_ADD, in der das Ticket der Position noch nicht
zugewiesen wurde) und der Historie der Orders
(TRADE_TRANSACTION_HISTORY_*) verbunden sind.
- position_by — das Ticket der Gegenposition Das Ticket wird
beim Schließen einer Position zur Gegenposition verwendet, die auf
demselben Symbol, aber in einer entgegengesetzten Richtung eröffnet
wurde. Das Feld wird nur für die Orders ausgefüllt, die eine Position
zur Gegenposition (close by) schließen, sowie für die Trades, die eine
Position zur Gegenposition (out by) schließen.
- Es wurde die Funktion PositionGetTicket hinzugefügt, die das
Ticket der Position nach dem Index in der Liste der offenen Positionen
liefert und diese Position automatisch für die weitere Arbeit mithilfe
der Funktionen PositionGetDouble, PositionGetInteger und
PositionGetString auswählt.
ulong PositionGetTicket(
int index
);
- Es wurde die Funktion PositionSelectByTicket hinzugefügt, die eine
offene Position für die weitere Arbeit nach diesem Ticket auswählt.
bool PositionSelectByTicket(
ulong ticket
);
- Der Aufzählung der Eigenschaften von Symbolen
ENUM_SYMBOL_INFO_DOUBLE wurde der Wert SYMBOL_MARGIN_HEDGED hinzugefügt —
die Größe des Kontrakts oder der Margin für einen Lot gehedgter
Positionen (gegenläufige Positionen auf einem Symbol).
- Wenn die AnfangsMargin (SYMBOL_MARGIN_INITIAL) für das Symbol
festgelegt ist, wird die abgesicherte Margin als absoluter Wert (in
Geld) angegeben.
- Wenn die AnfangsMargin nicht festgelegt wurde (= 0), dann wird
in SYMBOL_MARGIN_HEDGED die Größe des Kontrakts angegeben, die bei der
Berechnung der Margin nach einer Formel je nach Symbol
(SYMBOL_TRADE_CALC_MODE) verwendet wird.
Die Besonderheiten der Berechnung der Margin für gehedgte Positionen sind im Benutzerhandbuch für die MetaTrader 5 Handelsplattform beschrieben.
- Der Aufzählung von Kontoeigenschaften ENUM_ACCOUNT_INFO_INTEGER
wurde der Wert ACCOUNT_MARGIN_MODE hinzugefügt — Berechnungsmodus der
Margin für das aktuelle Handelskonto:
- ACCOUNT_MARGIN_MODE_RETAIL_NETTING wird für den
außerbörslichen Handel mit Netting-System zur Positionsberechnung
verwendet (eine Position pro Symbol). Die Margin wird anhand des
Symboltyps (SYMBOL_TRADE_CALC_MODE) berechnet.
- ACCOUNT_MARGIN_MODE_EXCHANGE wird für den Börsenmarkt
verwendet. Die Margin wird anhand Diskonte berechnet, die in den
Einstellungen des Symbols angegeben werden. Die Diskonte werden vom
Broker gesetzt, können aber nicht niedriger als die von der Börse
gesetzten Werte sein.
- ACCOUNT_MARGIN_MODE_RETAIL_HEDGING wird für den
außerbörslichen Markt bei einer unabhängigen Positionsberechnung
("Hedging", mehrere Positionen können pro Symbol vorhanden sein)
verwendet. Die Berechnung der Margin wird anhand des Symboltyps
(SYMBOL_TRADE_CALC_MODE) und unter Berücksichtigung des Wertes der
abgesicherten Margin (SYMBOL_MARGIN_HEDGED) durchgeführt.
- Der Aufzählung der Eigenschaften des Kundenterminals
ENUM_TERMINAL_INFO_INTEGER wurde der Wert TERMINAL_SCREEN_DPI
hinzugefügt — die Auflösung der Informationsanzeige auf dem Bildschirm
wird in Punkten pro Zoll (DPI) angegeben. Wenn der Wert dieses
Parameters bekannt ist, kann man die Größe grafischer Objekte so
einstellen, dass diese auf Bildschirmen mit unterschiedlicher Auflösung
gleich aussehen.
- Der Aufzählung von Eigenschaften des Kundenterminals
ENUM_TERMINAL_INFO_INTEGER wurde der TERMINAL_PING_LAST hinzugefügt —
der letzte bekannte Wert der Ping-Zeit bis zum Handelsserver in
Mikrosekunden. Eine Sekunde besteht aus einer Million Mikrosekunden.
- Das Ergebnis des Ausrufs der SendFTP Funktion wird nun richtig ausgegeben. Früher wurde statt TRUE FALSE ausgegeben.
- Es wurde ein Fehler in der StringConcatenate Funktion behoben, der
in einigen Fällen zum Ausführungsfehler "Access violation" führte.
- Es wurde eine Reihe von Fehlern bei der Verwendung von Template-Funktionen behoben.
- Jetzt können die Funktionen Print, Alert und Comment Zeilen ausgeben, die länger als 4000 Zeichen sind.
- Es wurde ein Fehler in der ArrayCompare Funktion behoben, der beim
Vergleichen eines Arrays mit sich selbst, aber mit verschiedener
Verschiebung der Ausgangsposition vom Beginn auftrat.
- Der Standardbibliothek wurde die Unterstützung für Hedging hinzugefügt:
CPosition
Es wurden folgende Methoden hinzugefügt:
- SelectByMagic — wählt eine Position nach ihrer magischen Nummer für eine weitere Arbeit aus.
- SelectByTicket — wählt eine Position nach ihrer Ticketnummer für eine weitere Arbeit aus.
CTrade
Es wurden folgende Methoden hinzugefügt:
- RequestPosition — erhält das Ticket der Position.
- RequestPositionBy — erhält das Ticket der Gegenposition.
- PositionCloseBy — schließt die Position mit dem angegebenen Ticket zur Gegenposition.
- SetMarginMode — setzt den Berechnungsmodus der Margin in Übereinstimmung mit den Einstellungen des laufenden Kontos.
Es wurde das Überladen von Methoden hinzugefügt:
- PositionClose — schließt Position nach Ticket.
- PositionModify — modifiziert Position nach Ticket.
CAccountInfo
Es wurden folgende Methoden geändert:
- MarginMode — erhält jetzt den Berechnungsmodus der Margin. Hat früher ähnlich wie die neue Methode StopoutMode funktioniert.
- MarginDescription — erhält jetzt den Berechnungsmodus der
Margin als Zeile. Hat früher wie die neue Methode StopoutModeDescription
funktioniert.
Es wurden folgende Methoden hinzugefügt:
- StopoutMode — Modus der Setzung der minimalen Margin.
- StopoutModeDescription — erhält die minimale Margin als Zeile.
CExpert
Es wurden folgende Methoden hinzugefügt:
- SelectPosition — ählt eine Position für die weitere Arbeit aus.
- Fehlerbehebungen in der MQL5 Standardbibliothek.
Signale
- Es wurde eine Reihe von Fehlern bei der Anzeige des Schaufensters von Handelssignalen behoben.
Tester
- Es wurde ein Fehler behoben, bei dem für einige Symboltypen Komission nicht berechnet wurde.
- Die Ausfüllung des Expert-Feldes wurde bei den Orders, die bei der
Auslösung von SL/TP entstanden sind, in Übereinstimmung mit dem Wert
des Expert-Feldes der entsprechenden Position korrigiert. Früher wurde
das Feld nicht ausgefüllt.
- Das Umschalten auf die Tabs von Ergebnissen der normalen und Forward-Optimierung wurde korrigiert.
- Die Berechnung und Anzeige des Envelopes-Indikators wurden korrigiert.
- Die Ausführung des visuellen Testens wurde optimiert.
- Die Berechnung des Profits und der Margin wurde bei einer großen Anzahl offener Orders und Positionen optimiert.
- Die Ausführung von Handelsoperationen im Hochfrequenzhandel wurde optimiert.
- Ab jetzt wird die Historie nicht beim Abruf der Eigenschaften
eines Nebensymbols (der aktuelle Kurse nicht verlangt) synchronisiert.
Zum Beispiel, SYMBOL_SELECT, SYMBOL_DIGITS, SYMBOL_SPREAD_FLOAT,
SYMBOL_TRADE_CALC_MODE, SYMBOL_TRADE_MODE, SYMBOL_TRADE_STOPS_LEVEL,
SYMBOL_TRADE_FREEZE_LEVEL, SYMBOL_TRADE_EXEMODE usw. Früher wurde die
Historie des Nebensymbols bei jedem Abruf seiner Eigenschaften
synchronisiert.
MetaEditor
- Die Suche nach einem Wort in Dateien wurde im Modus "Nur das ganze Wort" korrigiert.
- Es wurde die Option hinzugefügt, eine Datei mit einem Doppelklick
auf der Zeile, die das Ergebnis der Kompilierung für die entsprechende
Datei beinhaltet, zu öffnen.
- Die Anzeige einiger Steuerelemente in Windows XP wurde verbessert.
Die Dokumentation wurde aktualisiert.
Lesen Sie die vorige Nachricht: