Am 27. November 2019 werden wir einen Build mit neuen Grafikfähigkeiten zur Erstellung komplexer 3D-Visualisierungen veröffentlichen.
Wir bieten an, eine Demonstration zu sehen:
Ein Beispiel in Form einer ex5-Datei kann mit der aktuellen Beta-Version 2224 ausgeführt werden, die über den Befehl Hilfe -> Nach Updates suchen verfügbar ist.
Dies ist die neue CCanvas3D-Klasse, die die Fähigkeiten von CCanvas erweitert.
Wir haben eine Menge nativer DirectX 11-Methoden in MQL5 hinzugefügt, damit Sie komplexe Modelle in 3D-Projektionen visualisieren können.
In der neuen Version wird höchstwahrscheinlich auch die native Arbeit mit SQLite in MQL5 verfügbar sein, wenn wir die Zeit dazu haben. Dies wird die Arbeit mit großen Datenmengen erheblich vereinfachen und schnelle Selektionen ermöglichen.
Es gibt keinen Grund, sich über die Größe des Terminals Sorgen zu machen - es ist sehr kompakt und im Rahmen seiner Möglichkeiten integriert.
Wir haben DirectX hinzugefügt, um die Erstellung einer neuen Klasse von Programmen zu ermöglichen. Leistungsstark und professioneller durch eine hochwertige Visualisierung.
SQLite wird die Arbeit mit massiven und heterogenen Daten drastisch vereinfachen. Sie müssen sich nicht mehr mit primitiven Dateibindungen herumschlagen, sondern speichern einfach in der Datenbank.
Wir gehen weiter:
Wir fügen Clang / LLVM-Unterstützung für C / C ++ in den Editor ein, um DLL / EXE-Projekte lokal zu kompilieren
Noch wichtiger ist, eröffnen wir eine neue Klasse von Programmen in Form von Modulen in C / C ++ geschrieben und sicher zu EX5 konvertiert
Es wird möglich sein, bestehende Bibliotheken in EX5 mit kleinen Korrekturen zu kompilieren. Alle potentiell gefährlichen API-Aufrufe werden durch MQL5-kontrollierende Wrapper ersetzt.
Wir fügen Python-Unterstützung hinzu, um es einfach zu machen, Python-Skripte aus dem Editor heraus auszuführen, um Daten für MQL5 zu generieren/zu verarbeiten
Wir erweitern die detaillierten Einstellungen von Provisionen und Belegen des Testers zusätzlich zu den bereits in der Beta-Version neu definierten Symboleinstellungen
Wir reduzieren die Ressourcenkosten und das Schema der Lieferung historischer Daten an lokale Agenten
Einiges wird in der Version am 27. November verfügbar sein, der Rest in den nächsten Betas und Releases.
Die Beta-Version der aktualisierten MetaTrader 5-Plattform wird am 29. November 2019 veröffentlicht. Wir laden alle Händler ein, sich an den Tests der neuen Plattform zu beteiligen, um alle ihre Funktionen zu bewerten und den Entwicklern bei der Fehlerbehebung zu helfen.
Um die MetaTrader 5-Plattform auf den Build 2245 zu aktualisieren, navigieren Sie zu Hilfe \ Desktop-Updates prüfen \ Neueste Beta-Version:
Die endgültige Version des neuen MetaTrader 5-Plattform-Builds wird nach den öffentlichen Beta-Tests veröffentlicht.
Die neue Version enthält die folgenden Änderungen:
Terminal: In Market Watch sind jetzt mehr Spalten verfügbar. Der Hauptbereich enthält jetzt 40 zusätzliche Symbolparameter, die zuvor nur auf der Registerkarte Details verfügbar waren.
Terminal: Im Navigator werden nun das aktuell verbundene Konto und der aktuelle Server hervorgehoben. Die Funktion ist nützlich, wenn Sie mehrere Konten bei verschiedenen Brokern haben.
Terminal: Aktualisiertes Rahmendesign für Charts. Die Rahmen sind kleiner geworden, so dass mehr Platz für nützliche Informationen zur Verfügung steht.
Terminal: Geänderter Algorithmus zur Berechnung der Handelssummen bei der Anzeige der Handelshistorie als Positionen. Die Werte werden jetzt auf der Grundlage der tatsächlichen Datensätze berechnet.
Um die Handelshistorie als Positionen anzuzeigen, verwendet das Terminal Informationen über Geschäfte, die während des angeforderten Zeitraums ausgeführt wurden. Nur die Positionen, die innerhalb dieses Zeitraums geschlossen wurden, werden in der Historie angezeigt. Wenn die Position noch offen ist oder ihr Schließungszeitpunkt nicht in das ausgewählte Intervall fällt, wird sie nicht in der Historie angezeigt. Daher können sich der Gesamtgewinn und die Provision im Modus "Positionen" von denen im Modus "Aufträge/Geschäfte" unterscheiden.
Ein Beispiel: Sie sehen sich die Historie der letzten Woche an. In diesem Zeitraum wurden 100 Geschäfte ausgeführt, von denen 98 eröffnet und 20 Positionen geschlossen wurden. Bei den letzten beiden Geschäften wurden neue Positionen eröffnet, die bis heute nicht geschlossen wurden. In diesem Fall enthält die Historie der Geschäfte 100 Datensätze und entsprechende Gesamtwerte, die auf der Grundlage dieser Geschäfte berechnet wurden. Wenn Sie die Historie als Positionen betrachten, sehen Sie 20 Datensätze, die auf der Grundlage von 98 Geschäften gesammelt wurden. Nur diese Daten werden bei der Berechnung der Gesamtwerte berücksichtigt. Wenn der Makler Gebühren für Einstiegsgeschäfte erhebt, unterscheidet sich der endgültige Provisionswert in der Geschäftshistorie von den in der Positionshistorie angezeigten Provisionen, da im letzteren Fall die beiden letzten Geschäfte ignoriert werden.
Terminal: Schnelleres Starten von MQL5-Programmen wurde implementiert.
Terminal: Es wurde ein neuer /beta-Schlüssel für die Terminal-Installationsdatei hinzugefügt, der das Herunterladen der Beta-Version ermöglicht. Im normalen Modus sollte zuerst die Release-Version installiert werden, die dann bis zu einer Beta-Version aktualisiert werden kann. Wenn Sie diesen Schritt überspringen, können Sie Zeit und Datenverkehr sparen. Beispiel für den Start der Installation:
C:\mt5setup.exe /beta
Terminal: Die Anzeige der Margin-Anforderungen für Instrumente mit dem Typ "Exchange Stocks" wurde korrigiert.
Terminal: Beschleunigter Betrieb aller Plattformkomponenten durch den Einsatz des Clang/LLVM-Compilers. In einigen Fällen ist die Kompilierung 20% schneller.
MQL5: Neue DirectX 11-Funktionen und Shader für 3D-Visualisierung hinzugefügt. Jetzt können leistungsstarke dreidimensionale Grafiken direkt in MQL5 erstellt werden.
Die neue Klasse CCanvas3D ist eine Erweiterung der benutzerdefinierten Grafikklasse CCanvas. Sie ist im Verzeichnis \MQL5\Include\Canvas\ verfügbar. Die Klasse bietet Funktionen zum Rendern dreidimensionaler Objekte über DirectX API.
Erstellen - erstellt eine Szene.
Anhängen - bindet eine Szene an einen Chart.
Zerstören - vernichtet eine Szene.
ObjectAdd - fügt der Szene ein von der Basisklasse CDXObject geerbtes Objekt hinzu.
Render - die vollständige Renderschleife mit Pufferleerung und Rendering aller CDXObjects, die über die ObjectAdd-Methode hinzugefügt wurden.
RenderBegin - startet das Rendering der Szene, füllt den Renderpuffer mit der angegebenen Farbe (wenn das DX_CLEAR_COLOR-Flag gesetzt ist) und die Tiefenpuffer (bei Verwendung von DX_CLEAR_DEPTH) und setzt den DXInputScene-Szenenpuffer für Standard-Shader.
RenderEnd - schließt das Rendern der Szene ab und empfängt ein Ergebnis in einem internen Puffer. Wenn redraw==true, wird das Bild auf der Karte angezeigt, auf der es läuft.
ViewMatrixGet - empfängt eine Ansichtsmatrix.
ViewMatrixSet - setzt eine Ansichtsmatrix. Die Matrix ist nicht kompatibel mit den Methoden ViewPositionSet, ViewRotationSet, ViewTargetSet und ViewUpDirectionsSet.
ViewPositionSet - legt die Kameraposition fest.
ViewRotationSet - legt die Matrix für die Kameradrehung fest.
ViewTargetSet - legt den Punkt fest, auf den die Kamera gerichtet ist. Zusammen mit ViewUpDirectionsSet ist es eine Alternative zu ViewRotationSet.
ViewUpDirectionsSet - legt die vertikale Position der Kamera fest. Zusammen mit ViewTargetSet ist es eine Alternative zu ViewRotationSet.
ProjectionMatrixGet - empfängt die Projektionsmatrix.
ProjectionMatrixSet - setzt die Projektionsmatrix.
Eine ausführliche Dokumentation für die neue Bibliothek wird in Kürze veröffentlicht.
Neue Beispiele für die Verwendung der Funktionen sind unter \MQL5\Experts\Examples\ verfügbar:
KorrelationMatrix3D
DemoMorphMath3D
Kompilieren Sie diese und führen Sie sie in einem Diagramm aus, um die 3D-Visualisierungsmöglichkeiten in MQL5 zu sehen.
MQL5: Es wurde Unterstützung für Operationen mit SQLite-Datenbanken direkt aus MQL5 hinzugefügt. Die Verbindung zu Datenbanken und die Ausführung von SQL-Abfragen können jetzt mit den MQL5-Funktionen implementiert werden. Der interne Betrieb wird durch die neue Standardbibliothekserweiterung implementiert.
Die folgenden Funktionen sind verfügbar:
//--- opening and closing the databaseint DatabaseOpen(string filename,UINT flags);
void DatabaseClose(int database);
//--- working with tablesbool DatabaseTableExists(int database,string table_name);
//--- preparing an SQL queryint DatabasePrepare(int database,string sql,...);
void DatabaseFinalize(int request);
//--- reading a query result without/with binding to MQL5 structureint DatabaseRead(int request);
int DatabaseReadBind(int request,struct or var);
//--- extracting data from query results to different data typesint DatabaseGetColumnCount(int request);
int DatabaseGetColumnSize(int request,int column);
int DatabaseGetColumnType(int request,int column);
int DatabaseGetColumnText(int request,int column,string &value);
int DatabaseGetColumnInteger(int request,int column,int &value);
int DatabaseGetColumnLong(int request,int column,long &value);
int DatabaseGetColumnDouble(int request,int column,double &value);
int DatabaseGetColumnBlob(int request,int column,void &data[]);
//--- working with transactionsint DatabaseExecute(int db_id,string request);
int DatabaseBeginTransaction(int db_id);
int DatabaseCommitTransaction(int db_id);
int DatabaseRollbackTransaction(int db_id);
MQL5: Neue Eigenschaft von MQL5-Programmen hinzugefügt, die die Auswahl einer Standard-Visualisierungsmethode ermöglicht.
#property optimization_chart_mode "3d,InpX,InpY"
Die Eigenschaft ermöglicht die Einstellung des Typs des Diagramms, das am Ende der Optimierung geöffnet wird, sowie der Programmparameter für die X- und Y-Achse.
Die Eigenschaft legt nur die Standard-Diagrammansicht fest. Sie kann jederzeit manuell über das Kontextmenü geändert werden.
MQL5: Neue MathArctan2-Funktion. Gibt den Bogenmaßwert des Winkels zurück, dessen Tangens gleich dem Verhältnis der beiden angegebenen Zahlen ist.
double MathArctan2(
double y // the y coordinate of the pointdouble x // the x coordinate of the point
);
MQL5: Wir haben die allgemeine Optimierung von Programmen durchgeführt, um die Leistung zu verbessern und den Ressourcenverbrauch zu reduzieren.
MQL5: Es wurden Beispiele für mathematische Berechnungen hinzugefügt, die im Strategietester durchgeführt werden können. Sie sind unter dem Verzeichnis \MQL5\Experts\Examples\Math 3D\ verfügbar.
MQL5: Einführung einer strengeren Kontrolle von Namensräumen.
MQL5: Hinzufügen des Ladens von verknüpften Bibliotheken bei der Verwendung von .NET-Bibliotheken in MQL5-Programmen. Wenn die verwendete .NET-Bibliothek andere Bibliotheken für den Betrieb benötigt, wird der Compiler versuchen, die erforderlichen Bibliotheken automatisch aus \MQL5\Libraries herunterzuladen.
MQL5: Feste Zeitoperationen im MetaTrader-Modul für die Python-Integration. Jetzt verwenden alle Ausgabedaten die Zeit des Handelsservers, mit dem das Terminal verbunden ist.
Tester: Eine Fülle von neuen Funktionen und Verbesserungen:
Benutzerdefinierte Einstellungen für Finanzinstrumente Jetzt können Sie die Einstellungen des Haupthandelsinstruments ändern, mit dem die Tests/Optimierungen durchgeführt werden. Fast alle Spezifikationsparameter können überschrieben werden: Volumina, Handelsmodi, Margin-Anforderungen, Ausführungsmodus und andere Einstellungen. Wenn Sie also einen Expert Advisor unter anderen Bedingungen testen möchten, müssen Sie kein separates benutzerdefiniertes Symbol erstellen und dessen Verlauf herunterladen. Dies kann durch Änderung der Standardsymboleinstellungen erfolgen.
Wenn die Symbolspezifikation angepasst ist, sind das Zahnradsymbol und das Symbolsymbol mit einem Sternchen gekennzeichnet. Dies zeigt an, dass benutzerdefinierte Parameter für den aktuellen Test verwendet werden.
Letzte Einstellungen/Expert Advisors/Diagramme Verwenden Sie die neuen Befehle des Kontextmenüs für schnelle Tests oder Optimierungseinstellungen. Wählen Sie die zuletzt verwendeten Testereinstellungen, aktuellen Diagramme oder Anwendungen:
MetaEditor: Es wurde die Möglichkeit hinzugefügt, C/C++- und Python-Projekte direkt aus MetaEditor zu kompilieren. Jetzt können mehrsprachige Projekte mit dem integrierten Editor verwaltet werden.
Wenn entsprechende Compiler auf Ihrem PC installiert sind, erkennt MetaEditor diese und fügt sie zu den Einstellungen hinzu. Optional können Sie auf der Registerkarte Compiler die Pfade zu den erforderlichen Komponenten angeben. Auf der gleichen Registerkarte können Sie die Komponenten herunterladen, indem Sie neben dem entsprechenden Feld auf Installieren klicken.
Danach können Sie C/C++- und Python-Projekte ähnlich wie MQL5-Programme kompilieren.
MetaEditor: Unterstützung für Unterprojekte innerhalb des Verzeichnisses Shared Projects für die gemeinsame Projektentwicklung über MQL5 Storage hinzugefügt. Zuvor konnten nur einzelne Projekte auf der obersten Ebene erstellt werden.
MetaEditor: Eingebaute Debugger-Updates.
MetaEditor: Das Hinzufügen einer Funktionsüberschrift bei Verwendung eines Code Styler wurde korrigiert.
MetaEditor: Die Befehle 'Zur vorherigen/nächsten Cursorposition springen' sind jetzt nicht nur im Menü Ansicht, sondern auch in der Symbolleiste verfügbar.
MetaEditor: Leerzeichen können jetzt in Projektnamen verwendet werden.
Android: Es wurde die Möglichkeit hinzugefügt, schnell zu Einzahlungs-/Abhebungsseiten auf der Broker-Website zu wechseln.
Die Suche nach den entsprechenden Funktionen in einem Händlerraum auf der Broker-Website entfällt. Schnelle Navigationsbefehle sind direkt in den Terminals verfügbar: Benutzer können von den Bereichen Konten und Handel zu den Einzahlungs- und Auszahlungsseiten wechseln:
Einzahlungs- und Abhebungsoperationen sind nur verfügbar, wenn die entsprechenden Funktionen für das Handelskonto auf der Brokerseite aktiviert sind.
Das Handelsterminal führt keine Einzahlungs-/Auszahlungsoperationen durch. Die integrierten Funktionen leiten den Benutzer auf die entsprechenden Seiten der Broker-Website weiter.
Android: Die Positionen in der Historie werden jetzt nach dem Schlussdatum sortiert.
Android: Markierung von Positionen, die durch Stop Loss oder Take Profit geschlossen wurden, mit roten und grünen vertikalen Linien in der Historie hinzugefügt.
Kategorie - die Eigenschaft wird zur zusätzlichen Kennzeichnung von Finanzinstrumenten verwendet. Dies kann zum Beispiel der Marktsektor sein, zu dem das Symbol gehört: Landwirtschaft, Öl und Gas und andere. Die Kategorie wird nur angezeigt, wenn der Broker die entsprechenden Informationen zur Verfügung stellt.
Börse - der Name der Börse, an der das Wertpapier gehandelt wird. Die Kategorie wird nur angezeigt, wenn die entsprechenden Informationen vom Makler bereitgestellt werden.
Android: Anzeige des Margin Call Status im Handelsbereich hinzugefügt. Wenn dieser Zustand eintritt, werden die Parameter Margin, Free Margin und Margin Level in rot angezeigt.
Android: Die Anzeige der Schaltfläche zum Öffnen des OTP-Bereichs auf Tablets wurde korrigiert.
Android: Weitere Korrekturen und Verbesserungen.
iPhone/iPad: Es wurde die Möglichkeit hinzugefügt, schnell zu den Einzahlungs-/Abhebungsseiten auf der Broker-Website zu wechseln. Weitere Details finden Sie in der Liste der Neuerungen von MetaTrader 5 für Android.
iPhone/iPad: Unterstützung des dunklen Modus für iOS/iPadOS hinzugefügt.
iPhone/iPad: Der Bereich für Einmalpasswörter ist nun auch in der iPad-Version verfügbar.
iPhone/iPad: Die durch Stop Loss oder Take Profit geschlossenen Positionen werden mit roten und grünen vertikalen Linien in der Historie markiert.
iPhone/iPad: Die Positionen in der Historie sind jetzt nach dem Schließungsdatum sortiert. Wenn die Position noch nicht geschlossen wurde, wird ihr Eröffnungsdatum für die Sortierung verwendet.
iPhone/iPad: Weitere Korrekturen und Verbesserungen.
Korrekturen aufgrund von Absturzprotokollen.
Das Update wird über das Live-Update-System verfügbar sein.
Basen können sowohl auf der Festplatte als auch nur im Speicher mit dem DATABASE_OPEN_MEMORY Flag gespeichert werden . Massive Einfügungen/Änderungen in eine DatabaseTransactionBegin/Commit/Rollback-Transaktion zu verpacken, beschleunigt die Operationen um das Hundertfache.
Da wir uns so weit wie möglich auf die Leistung konzentrieren, sind hier die Ergebnisse der LLVM 9.0.0 vs MQL5 Tests. Zeit in Millisekunden, je weniger, desto besser:
Windows 10 x64, Intel Xeon E5-2690 v3 @ 2.60GHz
LLVM MQL5
---------------------------------------------------------------------------------
Test 1: 1000 INSERTs: 11572 8488
Test 2: 25000 INSERTs in a transaction: 59 60
Test 3: 25000 INSERTs into an indexed table: 102 105
Test 4: 100 SELECTs without an index: 142 150
Test 5: 100 SELECTs on a string comparison: 391 390
Test 6: Creating an index: 43 33
Test 7: 5000 SELECTs with an index: 385 307
Test 8: 1000 UPDATEs without an index: 58 54
Test 9: 25000 UPDATEs with an index: 161 165
Test 10: 25000 text UPDATEs with an index: 124 120
Test 11: INSERTs from a SELECT: 84 84
Test 12: DELETE without an index: 25 74
Test 13: DELETE with an index: 70 72
Test 14: A big INSERT after a big DELETE: 62 66
Test 15: A big DELETE followed by many small INSERTs: 33 33
Test 16: DROP TABLE: finished. 42 40
Die Geschwindigkeit in MQL5 ist absolut die gleiche wie in nativem C ++ mit einem der besten Compiler. Ein Benchmark-Paket zum Abspielen ist beigefügt.
Wir haben auch die einzigartige DatabaseReadBind-Funktion implementiert, mit der Sie Datensätze direkt in die Struktur lesen können, was Massenoperationen vereinfacht und beschleunigt.
Hier ist ein einfaches Beispiel:
struct Person
{
int id;
string name;
int age;
string address;
double salary;
};
//+------------------------------------------------------------------+//| Test |//+------------------------------------------------------------------+bool TestDB( string filename, int flags)
{
int db;
//--- open
db=DatabaseOpen(filename,flags);
if (db== INVALID_HANDLE )
{
Print ( "DB: " ,filename, " open failed with code " , GetLastError ());
return ( false );
}
//--- create a tableif (!DatabaseTableExists(db, "COMPANY" ))
if (!DatabaseExecute(db, "CREATE TABLE COMPANY(""ID INT PRIMARY KEY NOT NULL,""NAME TEXT NOT NULL,""AGE INT NOT NULL,""ADDRESS CHAR(50),""SALARY REAL );" ))
{
Print ( "DB: " ,filename, " create table failed with code " , GetLastError ());
DatabaseClose(db);
return ( false );
}
//--- insert dataif (!DatabaseExecute(db, "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); ""INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); ""INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );""INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );" ))
{
Print ( "DB: " ,filename, " insert failed with code " , GetLastError ());
DatabaseClose(db);
return ( false );
}
//--- prepare the requestint request=DatabasePrepare(db, "SELECT * FROM COMPANY WHERE SALARY>15000" );
if (request== INVALID_HANDLE )
{
Print ( "DB: " ,filename, " request failed with code " , GetLastError ());
DatabaseClose(db);
return ( false );
}
//--- выводим записи
Person person;
for ( int i= 0 ; DatabaseReadBind(request,person); i++)
Print (i, ": " ,person.id, " " , person.name, " " ,person.age, " " ,person.address, " " ,person.salary);
Print ( "" );
//--- close all
DatabaseFinalize(request);
DatabaseClose(db);
return ( true );
}
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart ()
{
TestDB( "test.sqlite" ,DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);
}
Output:
0 : 1 Paul 32 California 20000.01 : 3 Teddy 23 Norway 20000.02 : 4 Mark 25 Rich-Mond 65000.0
Das MetaTrader 5 Plattform-Update wird am Freitag, den 13. Dezember 2019, veröffentlicht. Das Update enthält wichtige Ergänzungen und Korrekturen, die auf dem Feedback basieren, das wir nach dem vorherigen MetaTrader 5 Build 2265 Major Update erhalten haben:
Terminal: Es wurde ein Fehler behoben, der dazu führte, dass ein Expert Advisor aus einem Chart ohne Daten nicht gelöscht werden konnte.
Terminal: Die Anzeige des Chart-Headers unter Wine wurde korrigiert.
MQL5: Die Lade- und Kompiliergeschwindigkeit von MQL5-Programmen wurde verbessert.
MQL5: Ein Doppelklick auf einen Chart wird jetzt als Einzelklick-Ereignis an ein MQL5-Programm weitergegeben. Zuvor wurden solche Ereignisse nicht behandelt.
Tester: Es wurde ein Fehler behoben, der dazu führte, dass das Testsymbol in den Einstellungen leer war. Der Fehler konnte beim Umschalten zwischen Handelskonten mit unterschiedlichen Sets von Handelsinstrumenten auftreten. Das neue Verhalten: Wenn das zuvor ausgewählte Symbol nicht im aktuell verbundenen Handelskonto gefunden wird, wird stattdessen automatisch das erste verfügbare Symbol in Market Watch ausgewählt.
MetaEditor: Das Laden des Anwendungssymbols beim erneuten Öffnen der Projekteigenschaften wurde korrigiert.
Im ersten Teil der Artikelserie haben wir Merrill-Patterns analysiert und auf verschiedene Datenfelder angewandt, wie z.B. die preis- und preisbasierten Oszillatoren ATR, CCI und WPR, um nur einige zu nennen. Ziel des Artikels war es, die Aussichten für die Verwendung der genannten Muster auf Devisen- und anderen Märkten zu untersuchen und zu bewerten. Der zweite Teil war der Erstellung eines Strategy Builders gewidmet, mit dem sich einfache Strategien unter Verwendung der zuvor besprochenen Muster zusammenstellen lassen. Im dritten Teil werden wir die Funktionalität der Strategieerstellung und -prüfung erweitern. Wir werden die Möglichkeit hinzufügen, zusätzlich zu den Punkten auch mit Lots zu arbeiten, sowie die Funktionalität zur Anzeige der Testergebnisse.
In the first part of the article series, we analyzed Merrill patterns and applied them to different data arrays, such as the price and price-based oscillators ATR, CCI and WPR, among others. The purpose of the article was to explore and evaluate the prospects of using the specified patterns on forex and other markets. The second part was...
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Neue Version der Plattform MetaTrader 5 build 2190
MetaQuotes Software Corp., 2019.11.12 15:28
Freigegebene Beta 2208:
Sie können über das Menü Hilfe -> Nach Updates suchen aktualisieren.
Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien
Neue Grafikfähigkeiten in MQL5 mit direktem Zugang zu DirectX 11
MetaQuotes Software Corp., 2019.11.22 11:30
Am 27. November 2019 werden wir einen Build mit neuen Grafikfähigkeiten zur Erstellung komplexer 3D-Visualisierungen veröffentlichen.
Wir bieten an, eine Demonstration zu sehen:
Ein Beispiel in Form einer ex5-Datei kann mit der aktuellen Beta-Version 2224 ausgeführt werden, die über den Befehl Hilfe -> Nach Updates suchen verfügbar ist.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Neue Grafikfähigkeiten in MQL5 mit direktem Zugriff auf DirectX 11
Renat Fatkhullin, 2019.11.22 12:12
Dies ist die neue CCanvas3D-Klasse, die die Fähigkeiten von CCanvas erweitert.
Wir haben eine Menge nativer DirectX 11-Methoden in MQL5 hinzugefügt, damit Sie komplexe Modelle in 3D-Projektionen visualisieren können.
In der neuen Version wird höchstwahrscheinlich auch die native Arbeit mit SQLite in MQL5 verfügbar sein, wenn wir die Zeit dazu haben. Dies wird die Arbeit mit großen Datenmengen erheblich vereinfachen und schnelle Selektionen ermöglichen.
Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien
Neue Grafikfähigkeiten in MQL5 mit direktem Zugriff auf DirectX 11
Renat Fatkhullin, 2019.11.24 20:10
Es gibt keinen Grund, sich über die Größe des Terminals Sorgen zu machen - es ist sehr kompakt und im Rahmen seiner Möglichkeiten integriert.
Wir haben DirectX hinzugefügt, um die Erstellung einer neuen Klasse von Programmen zu ermöglichen. Leistungsstark und professioneller durch eine hochwertige Visualisierung.
SQLite wird die Arbeit mit massiven und heterogenen Daten drastisch vereinfachen. Sie müssen sich nicht mehr mit primitiven Dateibindungen herumschlagen, sondern speichern einfach in der Datenbank.
Wir gehen weiter:
Es wird möglich sein, bestehende Bibliotheken in EX5 mit kleinen Korrekturen zu kompilieren. Alle potentiell gefährlichen API-Aufrufe werden durch MQL5-kontrollierende Wrapper ersetzt.
Einiges wird in der Version am 27. November verfügbar sein, der Rest in den nächsten Betas und Releases.
Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien
Neue Grafikfähigkeiten in MQL5 mit direktem Zugriff auf DirectX 11
Renat Fatkhullin, 2019.11.25 20:13
Build 2228 verfügbar:
Jetzt können solche Visualisierungen einfach direkt in MQL5 mit der Standardbibliothek CCanvas3D durchgeführt werden.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Neue MetaTrader 5 Plattform Beta-Build 2245: DirectX-Funktionen für 3D-Visualisierung in MQL5 und Symboleinstellungen in Strategy Tester
MetaQuotes Software Corp., 2019.11.29 13:41
Die Beta-Version der aktualisierten MetaTrader 5-Plattform wird am 29. November 2019 veröffentlicht. Wir laden alle Händler ein, sich an den Tests der neuen Plattform zu beteiligen, um alle ihre Funktionen zu bewerten und den Entwicklern bei der Fehlerbehebung zu helfen.
Um die MetaTrader 5-Plattform auf den Build 2245 zu aktualisieren, navigieren Sie zu Hilfe \ Desktop-Updates prüfen \ Neueste Beta-Version:
Die endgültige Version des neuen MetaTrader 5-Plattform-Builds wird nach den öffentlichen Beta-Tests veröffentlicht.
Die neue Version enthält die folgenden Änderungen:
Um die Handelshistorie als Positionen anzuzeigen, verwendet das Terminal Informationen über Geschäfte, die während des angeforderten Zeitraums ausgeführt wurden. Nur die Positionen, die innerhalb dieses Zeitraums geschlossen wurden, werden in der Historie angezeigt. Wenn die Position noch offen ist oder ihr Schließungszeitpunkt nicht in das ausgewählte Intervall fällt, wird sie nicht in der Historie angezeigt. Daher können sich der Gesamtgewinn und die Provision im Modus "Positionen" von denen im Modus "Aufträge/Geschäfte" unterscheiden.
Ein Beispiel: Sie sehen sich die Historie der letzten Woche an. In diesem Zeitraum wurden 100 Geschäfte ausgeführt, von denen 98 eröffnet und 20 Positionen geschlossen wurden. Bei den letzten beiden Geschäften wurden neue Positionen eröffnet, die bis heute nicht geschlossen wurden. In diesem Fall enthält die Historie der Geschäfte 100 Datensätze und entsprechende Gesamtwerte, die auf der Grundlage dieser Geschäfte berechnet wurden. Wenn Sie die Historie als Positionen betrachten, sehen Sie 20 Datensätze, die auf der Grundlage von 98 Geschäften gesammelt wurden. Nur diese Daten werden bei der Berechnung der Gesamtwerte berücksichtigt. Wenn der Makler Gebühren für Einstiegsgeschäfte erhebt, unterscheidet sich der endgültige Provisionswert in der Geschäftshistorie von den in der Positionshistorie angezeigten Provisionen, da im letzteren Fall die beiden letzten Geschäfte ignoriert werden.
Die neue Klasse CCanvas3D ist eine Erweiterung der benutzerdefinierten Grafikklasse CCanvas. Sie ist im Verzeichnis \MQL5\Include\Canvas\ verfügbar. Die Klasse bietet Funktionen zum Rendern dreidimensionaler Objekte über DirectX API.
Eine ausführliche Dokumentation für die neue Bibliothek wird in Kürze veröffentlicht.
Neue Beispiele für die Verwendung der Funktionen sind unter \MQL5\Experts\Examples\ verfügbar:
Kompilieren Sie diese und führen Sie sie in einem Diagramm aus, um die 3D-Visualisierungsmöglichkeiten in MQL5 zu sehen.
Die folgenden Funktionen sind verfügbar:
Die Eigenschaft ermöglicht die Einstellung des Typs des Diagramms, das am Ende der Optimierung geöffnet wird, sowie der Programmparameter für die X- und Y-Achse.
Die Eigenschaft legt nur die Standard-Diagrammansicht fest. Sie kann jederzeit manuell über das Kontextmenü geändert werden.
Benutzerdefinierte Einstellungen für Finanzinstrumente
Jetzt können Sie die Einstellungen des Haupthandelsinstruments ändern, mit dem die Tests/Optimierungen durchgeführt werden. Fast alle Spezifikationsparameter können überschrieben werden: Volumina, Handelsmodi, Margin-Anforderungen, Ausführungsmodus und andere Einstellungen. Wenn Sie also einen Expert Advisor unter anderen Bedingungen testen möchten, müssen Sie kein separates benutzerdefiniertes Symbol erstellen und dessen Verlauf herunterladen. Dies kann durch Änderung der Standardsymboleinstellungen erfolgen.

Wenn die Symbolspezifikation angepasst ist, sind das Zahnradsymbol und das Symbolsymbol mit einem Sternchen gekennzeichnet. Dies zeigt an, dass benutzerdefinierte Parameter für den aktuellen Test verwendet werden.Letzte Einstellungen/Expert Advisors/Diagramme
Verwenden Sie die neuen Befehle des Kontextmenüs für schnelle Tests oder Optimierungseinstellungen. Wählen Sie die zuletzt verwendeten Testereinstellungen, aktuellen Diagramme oder Anwendungen:
Wenn entsprechende Compiler auf Ihrem PC installiert sind, erkennt MetaEditor diese und fügt sie zu den Einstellungen hinzu. Optional können Sie auf der Registerkarte Compiler die Pfade zu den erforderlichen Komponenten angeben. Auf der gleichen Registerkarte können Sie die Komponenten herunterladen, indem Sie neben dem entsprechenden Feld auf Installieren klicken.

Danach können Sie C/C++- und Python-Projekte ähnlich wie MQL5-Programme kompilieren.Die Suche nach den entsprechenden Funktionen in einem Händlerraum auf der Broker-Website entfällt. Schnelle Navigationsbefehle sind direkt in den Terminals verfügbar: Benutzer können von den Bereichen Konten und Handel zu den Einzahlungs- und Auszahlungsseiten wechseln:
Das Update wird über das Live-Update-System verfügbar sein.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
SQLite in MQL5: Neue Funktionen und Leistungstests
Renat Fatkhullin, 2019.12.07 09:24
In Build 2265 haben wir reguläre Funktionen für die Arbeit mit Datenbanken auf Basis von SQLite 3.30.1 implementiert:
Da wir uns so weit wie möglich auf die Leistung konzentrieren, sind hier die Ergebnisse der LLVM 9.0.0 vs MQL5 Tests. Zeit in Millisekunden, je weniger, desto besser:Basen können sowohl auf der Festplatte als auch nur im Speicher mit dem DATABASE_OPEN_MEMORY Flag gespeichert werden . Massive Einfügungen/Änderungen in eine DatabaseTransactionBegin/Commit/Rollback-Transaktion zu verpacken, beschleunigt die Operationen um das Hundertfache.
Windows 10 x64, Intel Xeon E5-2690 v3 @ 2.60GHz LLVM MQL5 --------------------------------------------------------------------------------- Test 1: 1000 INSERTs: 11572 8488 Test 2: 25000 INSERTs in a transaction: 59 60 Test 3: 25000 INSERTs into an indexed table: 102 105 Test 4: 100 SELECTs without an index: 142 150 Test 5: 100 SELECTs on a string comparison: 391 390 Test 6: Creating an index: 43 33 Test 7: 5000 SELECTs with an index: 385 307 Test 8: 1000 UPDATEs without an index: 58 54 Test 9: 25000 UPDATEs with an index: 161 165 Test 10: 25000 text UPDATEs with an index: 124 120 Test 11: INSERTs from a SELECT: 84 84 Test 12: DELETE without an index: 25 74 Test 13: DELETE with an index: 70 72 Test 14: A big INSERT after a big DELETE: 62 66 Test 15: A big DELETE followed by many small INSERTs: 33 33 Test 16: DROP TABLE: finished. 42 40Die Geschwindigkeit in MQL5 ist absolut die gleiche wie in nativem C ++ mit einem der besten Compiler. Ein Benchmark-Paket zum Abspielen ist beigefügt.
Wir haben auch die einzigartige DatabaseReadBind-Funktion implementiert, mit der Sie Datensätze direkt in die Struktur lesen können, was Massenoperationen vereinfacht und beschleunigt.
Hier ist ein einfaches Beispiel:
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Neue Version der MetaTrader 5 Plattform Build 2265: DirectX-Funktionen für 3D-Visualisierung in MQL5 und Einrichten von Tools im Strategietester
Renat Fatkhullin, 2019.12.07 08:28
Sehen Sie sich die neuen Funktionen der 3D-Grafik mit Beispielen in der Version 2265 an:
Und eine Reihe von Funktionen für die Arbeit mit SQLite-Datenbanken.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Einige Tools funktionieren nicht mit dem neuen 2265 Build von MT5 - wie kann man das beheben?
Aytugan Khafizov, 2019.12.09 17:30
Wir haben eine Beta-Version des MT5-Terminals veröffentlicht, in der die Probleme mit Ticksize und StringTrim behoben sind.
Bitte eröffnen Sie ein Demo-Konto auf dem MetaQuotes-Demo-Server, um das Update herunterzuladen.
Und teilen Sie uns Ihr Feedback mit.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Neue MetaTrader 5 Plattform Build 2280
MetaQuotes Software Corp., 2019.12.12 15:54
Das MetaTrader 5 Plattform-Update wird am Freitag, den 13. Dezember 2019, veröffentlicht. Das Update enthält wichtige Ergänzungen und Korrekturen, die auf dem Feedback basieren, das wir nach dem vorherigen MetaTrader 5 Build 2265 Major Update erhalten haben:
Das Update wird über das Live-Update-System verfügbar sein.
OpenCL
Das Forum
CodeBase
Die Artikel
Die Blogs
Die Dokumentation
Der Markt
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
SQLite in MQL5: Neue Funktionen und Leistungstests
Rashid Umarov, 2019.12.17.17: 01
Beispiele für die Arbeit mit Funktionen hinzugefügt - ich gebe in der Reihenfolge der Komplexität:
Erweiterung der Strategy Builder-Funktionalität - der Artikel
- Einführung
- Überblick über die Erweiterungen
- Phasen der Implementierung der neuen Funktion
- Test und Demonstration des Strategy Builders
- Fazit
EinführungIm ersten Teil der Artikelserie haben wir Merrill-Patterns analysiert und auf verschiedene Datenfelder angewandt, wie z.B. die preis- und preisbasierten Oszillatoren ATR, CCI und WPR, um nur einige zu nennen. Ziel des Artikels war es, die Aussichten für die Verwendung der genannten Muster auf Devisen- und anderen Märkten zu untersuchen und zu bewerten. Der zweite Teil war der Erstellung eines Strategy Builders gewidmet, mit dem sich einfache Strategien unter Verwendung der zuvor besprochenen Muster zusammenstellen lassen. Im dritten Teil werden wir die Funktionalität der Strategieerstellung und -prüfung erweitern. Wir werden die Möglichkeit hinzufügen, zusätzlich zu den Punkten auch mit Lots zu arbeiten, sowie die Funktionalität zur Anzeige der Testergebnisse.