Signale, die auf realen Konten basieren, sind nur durch ein bezahltes Abonnement verfügbar; Signale, die auf Demo-Konten basieren, können nur durch ein kostenloses Abonnement erhalten werden.
Signale, die auf Cent-Konten basieren, können nicht über ein bezahltes Abonnement bezogen werden. Solche Signale sind nur im MetaTrader-Terminal kostenlos verfügbar. Ein Cent-Konto wird automatisch definiert. Falls ein Signal falsch definiert ist, kann die Service-Administration diese Eigenschaft dem Signal manuell zuweisen.
In der Praxis hat sich die Verwendung von Kohonen-Netzen für den algorithmischen Handel jedoch auf einen einzigen Ansatz beschränkt, nämlich die gleiche visuelle Analyse von Topologiekarten, die für die EA-Optimierungsergebnisse erstellt wurden. In diesem Fall erweist sich das eigene Werturteil, oder besser gesagt, die eigene Vision und die Fähigkeit, vernünftige Schlüsse aus einem Bild zu ziehen, vielleicht als der entscheidende Faktor, der die Eigenschaften des Netzes in Bezug auf die Darstellung von Daten in Bezug auf Nüsse und Schrauben in den Hintergrund treten lässt.
Mit anderen Worten, die Eigenschaften der Algorithmen neuronaler Netze wurden nicht voll genutzt, d. h. sie wurden eingesetzt, ohne automatisch Wissen zu extrahieren oder die Entscheidungsfindung durch spezifische Empfehlungen zu unterstützen. In dieser Arbeit betrachten wir das Problem der Definition der optimalen Roboterparameter in einer stärker formalisierten Weise. Außerdem werden wir das Kohonen-Netz auf die Vorhersage von Wirtschaftsbereichen anwenden. Bevor wir uns jedoch mit diesen angewandten Problemen befassen, sollten wir die vorhandenen Quellcodes überarbeiten, etwas korrigieren und einige Verbesserungen vornehmen.
Es wird dringend empfohlen, zuerst die oben genannten Artikel zu lesen, wenn Sie mit den Begriffen wie "Netzwerk", "Schicht", "Neuron" ("Knoten"), "Verbindung", "Gewicht", "Lernrate", "Lernbereich" und anderen Begriffen im Zusammenhang mit Kohonen-Netzwerken nicht vertraut sind. Dann werden wir uns in diese Materie vertiefen müssen, so dass eine erneute Vermittlung der grundlegenden Begriffe diese Veröffentlichung erheblich verlängern würde.
Der Wirtschaftskalender ist unsere proprietäre Lösung. Darin finden Sie über 600 Finanznachrichten und Indikatoren zu den 13 größten Volkswirtschaften der Welt: USA, Europäische Union, Japan, Großbritannien, Kanada, Australien, China und andere. Relevante Daten werden in Echtzeit aus offenen Quellen gesammelt.
Die neue Version bietet aktualisierte Inhalte und erweiterte Ereignisfilter: nach Zeit, Priorität, Währungen und Ländern.
Auf die Kalenderdaten kann jetzt von MQL5-Programmen aus zugegriffen werden. Einzelheiten finden Sie weiter unten.
Terminal: Neue Art von MQL5-Anwendungen hinzugefügt — Dienste. Dieser neue Typ ermöglicht die Erstellung von benutzerdefinierten Preis-Feeds für das Terminal, dh die Implementierung von Preislieferungen von externen Systemen in Echtzeit, so wie es auf Handelsservern von Brokern implementiert ist.
Im Gegensatz zu Expert Advisors, Indikatoren und Skripten sind Dienste nicht mit einem bestimmten Chart verknüpft. Solche Anwendungen laufen im Hintergrund und werden automatisch gestartet, wenn das Terminal gestartet wird (es sei denn, eine solche App wurde zwangsweise beendet).
Dienste können über einen neuen Abschnitt im Navigatorfenster verwaltet werden:
So erstellen Sie Dienste Um eine Dienstvorlage zu erstellen, verwenden Sie die entsprechende Option des MQL5-Assistenten . Dienste haben einen OnStart- Einstiegspunkt, ähnlich wie Skripts. An diesem Punkt können Sie mithilfe von Netzwerkfunktionen einen endlosen Datenempfangs- und -verarbeitungszyklus implementieren.
So starten Sie Dienste Um mehrere Expert Advisor- oder Indikatorkopien mit unterschiedlichen Parametern auszuführen, sollten Sie sie auf unterschiedlichen Charts starten. Dabei werden verschiedene Programminstanzen erstellt, die dann eigenständig arbeiten. Dienste sind nicht mit Diagrammen verknüpft, daher wurde ein spezieller Mechanismus zum Erstellen von Dienstinstanzen implementiert.
Wählen Sie im Navigator einen Dienst aus und klicken Sie in dessen Kontextmenü auf "Dienst hinzufügen". Dies öffnet einen standardmäßigen MQL5-Programmdialog, in dem Sie den Handel aktivieren/deaktivieren und auf Signaleinstellungen zugreifen sowie verschiedene Parameter einstellen können.
Eine Dienstinstanz kann über das entsprechende Instanzmenü gestartet und gestoppt werden. Um alle Instanzen zu verwalten, verwenden Sie das Servicemenü.
Terminal: Ein Lernprogramm wurde hinzugefügt.
Die neue Funktion hilft Anfängern beim Erlernen der Interaktion mit der Plattform. Wir haben über 100 interaktive Tipps zu den wichtigsten Plattformfunktionen hinzugefügt.
Tipps werden nahtlos als Fortschrittsbalken in der Symbolleiste angezeigt und lenken den Benutzer somit nicht ab.
Tipps erscheinen nur für Aktionen, die Sie noch nie auf der Plattform durchgeführt haben.
Alle Tipps enthalten interaktive Links, über die Sie zu den relevanten Oberflächenelementen navigieren können. So kann beispielsweise direkt aus dem Tipp heraus ein Handelsdialog oder ein Menü mit dem gewünschten Programm gestartet werden.
Der gefüllte Bereich des Fortschrittsbalkens wird immer größer, wenn Sie entsprechende Aktionen ausführen und das Training fortsetzen.
Terminal: Der Verlauf des Handelskontos kann als Positionen dargestellt werden. Die Plattform sammelt Daten zu Geschäften im Zusammenhang mit der Position (Eröffnung, Volumenerhöhung, teilweiser oder vollständiger Abschluss) und gruppiert die Informationen in einem einzigen Datensatz. So können Sie auf Positionsdetails zugreifen: Öffnungs- und Schließzeit, Volumen, Preis und Ergebnis. Diese effiziente Präsentationsform ist jetzt in Verlaufsberichten verfügbar, die in Dateien exportiert werden.
Terminal: Neue API hinzugefügt, die die Abfrage von MetaTrader 5-Terminaldaten durch Anwendungen ermöglicht, die die R-Sprache verwenden .
Wir haben ein spezielles MetaTrader-Paket vorbereitet. Es enthält DLL für Interaktionen zwischen R und dem MetaTrader 5-Terminal, Dokumentation und zusätzliche r-Dateien. Wir schließen die Paketregistrierung im CRAN -Repository ab, danach steht es zum Download und zur Installation zur Verfügung.
Das Paket kann mit einem speziellen Befehl installiert werden:
R CMD INSTALL --build MetaTrader
Die folgenden Befehle für die Datenanforderung sind verfügbar:
MT5Initialize initialisiert und stellt eine Verbindung mit dem MetaTrader 5-Terminal her. Bei Bedarf wird das Terminal während der Befehlsausführung gestartet.
MT5Shutdown wird deinitialisiert und trennt sich von MetaTrader 5.
MT5Version erhält die Terminalversion von MetaTrader 5.
MT5TerminalInfo erhält den Status und die Parameter der Terminalverbindung zum Server eines Brokers (Kontonummer und Serveradresse).
MT5WaitTerminal wartet darauf, dass sich das MetaTrader 5-Terminal mit dem Server eines Brokers verbindet.
MT5CopyTicksFrom(symbol, from, count, flags) kopiert die angegebene Anzahl von Ticks ab dem angegebenen Datum. Das Datum wird in Millisekunden seit dem 01.01.1970 angegeben.
MT5CopyTicksRange(symbol, from, to, flags) kopiert Ticks innerhalb des angegebenen Zeitraums. Die Datumsangabe erfolgt in Millisekunden seit dem 01.01.1970.
MT5CopyRatesFrom(symbol, timeframe, from, count) kopiert die angegebene Anzahl von Ein-Minuten-Balken ab dem angegebenen Datum. Das Datum wird in Sekunden seit dem 01.01.1970 angegeben.
MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) kopiert Ein-Minuten-Balken von der angegebenen Position relativ zum letzten Balken.
MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) kopiert Balken innerhalb des angegebenen Zeitraums. Die Datumsangabe erfolgt in Sekunden seit dem 01.01.1970.
Die Liste der unterstützten Befehle wird weiter ausgebaut.
Terminal: Optimierter Close By -Dialog, der zum Schließen einer Position durch eine Gegenposition verwendet wird. Jetzt wird der Dialog auch bei einer großen Anzahl offener Positionen nicht verlangsamt.
Terminal: Fehler bei der Berechnung synthetischer Symbole behoben, durch die Daten gelegentlich übersprungen werden konnten.
Terminal: Wenn ein benutzerdefiniertes Symbol gelöscht wird, werden auch Dateien gelöscht, in denen sein Tick- und Balkenverlauf gespeichert ist. Dadurch wird vermieden, dass sich ungenutzte Daten auf der Festplatte ansammeln.
Terminal: Die Anzeige von Suchergebnissen auf High-DPI-Bildschirmen wurde korrigiert.
CalendarValueHistoryByEvent — Ruft das Array von Werten für den angegebenen Zeitraum nach Ereigniskennung ab.
bool CalendarValueHistoryByEvent(
ulong event_id, // event ID
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // period beginning datedatetime datetime_to= 0 // period end date
);
CalendarValueHistory — Ruft das Array von Werten für den angegebenen Zeitraum für alle Ereignisse ab, gefiltert nach Land und/oder Währung.
bool CalendarValueHistory(
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // beginning of perioddatetime datetime_to= 0 , // end of periodstring country_code=NULL, // country codestring currency=NULL // currency
);
CalendarValueLastByEvent — Ruft ein Array der letzten Ereigniswerte nach Kennung ab. Diese Funktion ermöglicht die Abfrage der seit der letzten Abfrage aufgetretenen Werte. Für diese Operation wird zusätzlich der Durchgangsparameter „change_id“ verwendet.
Jedes Mal, wenn sich die Kalenderdatenbank ändert, wird die Eigenschaft "change_id" (die Kennung der letzten Änderung) aktualisiert. Während der Datenanforderung geben Sie "change_id" an und das Terminal gibt Ereignisse zurück, die nach dieser Zeit aufgetreten sind, sowie den aktuellen "change_id"-Wert, der für die nächste Anforderung verwendet werden kann. Geben Sie beim ersten Funktionsaufruf die Null "change_id" an: Die Funktion gibt keine Ereignisse zurück, gibt aber bei weiteren Anfragen die aktuelle "change_id" zurück.
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[] // array of values
);
CalendarValueLast — Ruft das Array der letzten Werte für alle Ereignisse ab, gefiltert nach Land und/oder Währung. Diese Funktion ermöglicht die Abfrage der seit der letzten Abfrage aufgetretenen Werte. Ähnlich wie bei CalendarValueLastByEvent wird die Eigenschaft „change_id“ für die Anfrage verwendet.
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[], // array of valuesstring country_code=NULL, // country codestring currency=NULL // currency
);
Neue Strukturen
MqlCalendarCountry — Länderbeschreibung.
struct MqlCalendarCountry
{
ulong id; // country ID in ISO 3166-1string name; // text name of the countrystring code; // code name of the country in ISO 3166-1 alpha-2string currency; // country currency codestring currency_symbol; // country currency symbol/signstring url_name; // country name used in URL on mql5.com
};
MqlCalendarEvent — Ereignisbeschreibung.
struct MqlCalendarEvent
{
ulong id; // event ID
ENUM_CALENDAR_EVENT_TYPE type; // event type
ENUM_CALENDAR_EVENT_SECTOR sector; // sector to which the event belongs
ENUM_CALENDAR_EVENT_FREQUENCY frequency; // event release frequency
ENUM_CALENDAR_EVENT_TIMEMODE time_mode; // event release time modeulong country_id; // country ID
ENUM_CALENDAR_EVENT_UNIT unit; // unit for the event values
ENUM_CALENDAR_EVENT_IMPORTANCE importance; // event importance
ENUM_CALENDAR_EVENT_MULTIPLIER multiplier; // event importance multiplieruint digits; // number of decimal places in the event valuestring source_url; // source URLstring event_code; // event codestring name; // text name of the event in the terminal language
};
MqlCalendarValue — Beschreibung des Ereigniswerts.
struct MqlCalendarValue
{
ulong id; // value IDulong event_id; // event IDdatetime time; // event date and timedatetime period; // period, for which the event is publishedint revision; // published indicator revision in relation to the reported periodlong actual_value; // current event valuelong prev_value; // previous event valuelong revised_prev_value; // revised previous event valuelong forecast_value; // forecast event value
ENUM_CALENDAR_EVENT_IMPACRT impact_type; // potential impact on the currency rate
};
Neue Aufzählungen
enum ENUM_CALENDAR_EVENT_FREQUENCY
{
CALENDAR_FREQUENCY_NONE = 0 , // not used
CALENDAR_FREQUENCY_WEEK = 1 , // weekly
CALENDAR_FREQUENCY_MONTH = 2 , // monthly
CALENDAR_FREQUENCY_QUARTER = 3 , // quarterly
CALENDAR_FREQUENCY_YEAR = 4 , // yearly
CALENDAR_FREQUENCY_DAY = 5 , // daily
};
enum ENUM_CALENDAR_EVENT_TYPE
{
CALENDAR_TYPE_EVENT = 0 , // event (meeting, speech, etc.)
CALENDAR_TYPE_INDICATOR = 1 , // indicator
CALENDAR_TYPE_HOLIDAY = 2 , // holiday
};
enum ENUM_CALENDAR_EVENT_SECTOR
{
CALENDAR_SECTOR_NONE = 0 , // no
CALENDAR_SECTOR_MARKET = 1 , // market
CALENDAR_SECTOR_GDP = 2 , // GDP
CALENDAR_SECTOR_JOBS = 3 , // jobs
CALENDAR_SECTOR_PRICES = 4 , // prices
CALENDAR_SECTOR_MONEY = 5 , // money
CALENDAR_SECTOR_TRADE = 6 , // trade
CALENDAR_SECTOR_GOVERNMENT = 7 , // government
CALENDAR_SECTOR_BUSINESS = 8 , // business
CALENDAR_SECTOR_CONSUMER = 9 , // consumer
CALENDAR_SECTOR_HOUSING = 10 , // housing
CALENDAR_SECTOR_TAXES = 11 , // taxes
CALENDAR_SECTOR_HOLIDAYS = 12 , // holidays
};
enum ENUM_CALENDAR_EVENT_IMPORTANCE
{
CALENDAR_IMPORTANCE_LOW = 0 , // no
CALENDAR_IMPORTANCE_NONE = 1 , // low
CALENDAR_IMPORTANCE_MODERATE = 2 , // moderate
CALENDAR_IMPORTANCE_HIGH = 3 , // high
};
enum ENUM_CALENDAR_EVENT_UNIT
{
CALENDAR_UNIT_NONE = 0 , // no
CALENDAR_UNIT_PERCENT = 1 , // percent
CALENDAR_UNIT_CURRENCY = 2 , // national currency
CALENDAR_UNIT_HOUR = 3 , // number of hours
CALENDAR_UNIT_JOB = 4 , // number of jobs
CALENDAR_UNIT_RIG = 5 , // number of rigs
CALENDAR_UNIT_USD = 6 , // US dollar
CALENDAR_UNIT_PEOPLE = 7 , // number of people
CALENDAR_UNIT_MORTGAGE = 8 , // number of mortgages
CALENDAR_UNIT_VOTE = 9 , // number of votes
CALENDAR_UNIT_BARREL = 10 , // number of barrels
CALENDAR_UNIT_CUBICFEET = 11 , // volume in cubic feet
CALENDAR_UNIT_POSITION = 12 , // number of job positions
CALENDAR_UNIT_BUILDING = 13// number of buildings
};
enum ENUM_CALENDAR_EVENT_MULTIPLIER
{
CALENDAR_MULTIPLIER_NONE = 0 , // no
CALENDAR_MULTIPLIER_THOUSANDS = 1 , // thousands
CALENDAR_MULTIPLIER_MILLIONS = 2 , // millions
CALENDAR_MULTIPLIER_BILLIONS = 3 , // billions
CALENDAR_MULTIPLIER_TRILLIONS = 4 , // trillions
};
enum ENUM_CALENDAR_EVENT_IMPACRT
{
CALENDAR_IMPACT_NA = 0 , // not available
CALENDAR_IMPACT_POSITIVE = 1 , // positive
CALENDAR_IMPACT_NEGATIVE = 2 , // negative
};
enum ENUM_CALENDAR_EVENT_TIMEMODE
{
CALENDAR_TIMEMODE_DATETIME = 0 , // the source publishes the exact time
CALENDAR_TIMEMODE_DATE = 1 , // the event takes the whole day
CALENDAR_TIMEMODE_NOTIME = 2 , // the source does not publish the event time
CALENDAR_TIMEMODE_TENTATIVE = 3 , // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
};
Neue Fehlercodes
ERR_CALENDAR_MORE_DATA = 5400 , // the array is small for the whole result (values which fit in the array were passed)
ERR_CALENDAR_TIMEOUT = 5401 , // timed out waiting for a response to the calendar data request
ERR_CALENDAR_NO_DATA = 5402 , // data not found
MQL5: Korrekturen und Verbesserungen der Betriebsgeschwindigkeit im Zusammenhang mit der Tick- und Balkenhistorie.
MQL5: Korrekturen und signifikante Verbesserungen der Betriebsgeschwindigkeit im Zusammenhang mit Funktionen zur Änderung des Verlaufs von Ticks und Balken von benutzerdefinierten Handelssymbolen, CustomTicks* und CustomRates* .
MQL5: Netzwerkfunktionen zum Erstellen von TCP-Verbindungen zu entfernten Hosts über System-Sockets hinzugefügt:
SocketCreate erstellt einen Socket mit angegebenen Flags und gibt sein Handle zurück
SocketClose schließt den Socket
SocketConnect stellt eine Verbindung zum Server her, mit Timeout-Steuerung
SocketIsConnected prüft, ob der Socket aktuell verbunden ist
SocketIsReadable liefert die Anzahl der Bytes, die vom Socket gelesen werden können
SocketIsWritable prüft, ob das Schreiben von Daten in diesen Socket zum aktuellen Zeitpunkt möglich ist
SocketTimeouts legt Zeitüberschreitungen für das Empfangen und Senden von Daten für das System-Socket-Objekt fest
SocketRead liest Daten aus einem Socket
SocketSend schreibt Daten in einen Socket
SocketTlsHandshake initiiert mithilfe des TLS-Handshake-Protokolls eine sichere TLS-Verbindung (SSL) mit dem angegebenen Host
SocketTlsCertificate erhält Informationen über das Zertifikat, das für die sichere Netzwerkverbindung verwendet wird
SocketTlsRead liest Daten aus einer sicheren TLS-Verbindung
SocketTlsReadAvailable liest alle verfügbaren Daten aus einer sicheren TLS-Verbindung
SocketTlsSend sendet Daten über eine sichere TLS-Verbindung
Die Adresse des Hosts, zu dem eine Verbindung über Netzwerkfunktionen aufgebaut wird, muss explizit in die Liste der erlaubten Adressen in den Terminaleinstellungen aufgenommen werden.
Für Operationen mit Netzwerkfunktionen wurden neue Fehlercodes hinzugefügt:
ERR_NETSOCKET_INVALIDHANDLE (5270): Ungültiges Socket-Handle an die Funktion übergeben
ERR_NETSOCKET_TOO_MANY_OPENED (5271): zu viele Sockets offen (maximal 128)
ERR_NETSOCKET_CANNOT_CONNECT (5272): Fehler beim Verbinden mit dem Remote-Host
ERR_NETSOCKET_IO_ERROR (5273): Fehler beim Senden/Empfangen von Daten vom Socket
ERR_NETSOCKET_HANDSHAKE_FAILED (5274): Fehler beim sicheren Verbindungsaufbau (TLS Handshake)
ERR_NETSOCKET_NO_CERTIFICATE (5275) — keine Daten über das für die sichere Verbindung verwendete Zertifikat
ArrayRemove entfernt aus einem Array die angegebene Anzahl von Elementen beginnend mit dem angegebenen Index.
bool ArrayRemove(
void & array[], // array of any typeuint start, // the index to start removaluint count=WHOLE_ARRAY // number of elements
);
ArrayInsert fügt die angegebene Anzahl von Elementen aus dem Quellarray in ein Empfängerarray ein, beginnend mit dem angegebenen Index.
bool ArrayInsert(
void & dst_array[], // receiver arrayconstvoid & src_array[], // source arrayuint dst_start, // index in the receiver array where to insertuint src_start= 0 , // index in the source array to start copyinguint count=WHOLE_ARRAY // number of inserted elements
);
ArrayReverse kehrt in einem Array die angegebene Anzahl von Elementen ab dem angegebenen Index um.
bool ArrayReverse(
void & array[], // array of any typeuint start= 0 , // index to start reversinguint count=WHOLE_ARRAY // number of elements
);
MQL5: Der neue Parameter "uint count" wurde in den Funktionen CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd und CustomTicksReplace hinzugefügt . Es ermöglicht die Angabe der Anzahl der Elemente des übergebenen Arrays, die für diese Funktionen verwendet werden. Der Wert WHOLE_ARRAY wird standardmäßig für den Parameter verwendet. Dies bedeutet, dass das gesamte Array verwendet wird.
MQL5: CustomBookAdd- Funktion hinzugefügt, um den Status der Markttiefe für ein benutzerdefiniertes Symbol zu übergeben. Die Funktion ermöglicht die Übertragung der Markttiefe, als ob die Preise vom Server eines Brokers kommen.
int CustomBookAdd(
conststring symbol, // symbol nameconst MqlBookInfo& books[] // an array with the DOM elements descriptionsuint count=WHOLE_ARRAY // number of elements to be used
);
MQL5: Überladen der CustomSymbolCreate- Funktion hinzugefügt. Dies ermöglicht die Erstellung eines benutzerdefinierten Handelssymbols auf der Grundlage eines vorhandenen. Nach der Erstellung kann jede Symboleigenschaft mit entsprechenden Funktionen bearbeitet werden.
boolCustomSymbolCreate (
conststring symbol_name, // custom symbol nameconststring symbol_path= "" , // name of the group in which the symbol will be createdconststring symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
);
Der Name des Symbols, von dem die Eigenschaften für das benutzerdefinierte Symbol kopiert werden sollen, wird im Parameter "symbol_origin" angegeben.
Die StringToTime- Funktion, die den String mit Datum/Uhrzeit in einen datetime-Wert umwandelt, wurde aktualisiert. Jetzt unterstützt es die folgenden Datumsformate:
jjjj.mm.tt [hh:mi]
jjjj.mm.tt [hh:mi:ss]
jjjjmmtt [hh:mi:ss]
jjjjmmtt [hhmiss]
jjjj/mm/tt [hh:mi:ss]
jjjj-mm-tt [hh:mi:ss]
MQL5: Neue Eigenschaft TERMINAL_VPS in der Aufzählung ENUM_TERMINAL_INFO_INTEGER ; es zeigt, dass das Terminal auf dem MetaTrader Virtual Hosting Server (MetaTrader VPS) läuft. Wenn eine Anwendung auf einem Hosting-Server läuft, können Sie alle visuellen Funktionen deaktivieren, da der virtuelle Server keine grafische Benutzeroberfläche hat.
MQL5: Neue Eigenschaft SYMBOL_EXIST in der Aufzählung ENUM_SYMBOL_INFO_INTEGER , bedeutet, dass das Symbol unter diesem Namen existiert.
MQL5: Fehler bei der Verwendung von Vordeklarationen für Vorlagenfunktionen behoben.
MQL5: Neuinitialisierung von Indikatoren hinzugefügt, wenn ein Handelskonto geändert wird.
MQL5: Fehler in der Standardbibliotheksoperation behoben.
Tester: TesterStop- Funktion hinzugefügt – routinemäßiges vorzeitiges Herunterfahren eines Expert Advisors auf einem Testagenten. Jetzt können Sie das Testen zwangsweise beenden, nachdem Sie die angegebene Anzahl von Verlusttrades, ein voreingestelltes Drawdown-Level oder ein anderes Kriterium erreicht haben.
Ein mit dieser Funktion abgeschlossener Test gilt als erfolgreich. Nach dem Funktionsaufruf werden die beim Testen erhaltene Handelshistorie und alle Handelsstatistiken an das Terminal übergeben.
Tester: Deaktivierte Fähigkeit, Expert Advisors über das MQL5 Cloud Network im Real-Tick-Modus zu testen und zu optimieren. Dieser Modus kann nur auf lokalen Agenten und lokalen Netzwerkfarmen verwendet werden.
Tester: Verbesserte Arbeit mit Indikatoren beim visuellen Testen. Jetzt werden das Preisdiagramm und die Indikatorlinien synchron gezeichnet, selbst bei maximaler Visualisierungsgeschwindigkeit.
Tester: Optimiertes und deutlich beschleunigtes Testen und Optimieren.
Tester: Das Debuggen von Indikatoren für historische Daten wurde korrigiert. Jetzt können die Indikatorfunktionen OnInit und OnDeinit korrekt debuggt werden.
Tester: Schnellerer Zugriff auf historische Daten beim Testen von Expert Advisors mit mehreren Währungen implementiert.
Tester: Das gelegentliche Einfrieren des visuellen Testers während des Debuggens auf historischen Daten wurde behoben.
Tester: Schnellerer Start von Optimierungsdurchläufen bei der Bearbeitung eines Aufgabenpakets durch einen Agenten implementiert.
Tester: Geänderte Richtlinie zum Verteilen von Aufgabenpaketen an Testagenten. Die Paketgröße wurde erhöht und damit der Ressourcenverbrauch im Netzwerkbetrieb deutlich reduziert.
Tester: Geändertes Verhalten von Optionen, die die Verwendung von lokalen, Netzwerk- und Cloud-Agenten ermöglichen. Wenn Sie die Optionen jetzt ausschalten, beenden die Agenten die Bearbeitung empfangener Aufgaben, während ihnen keine neuen Aufgaben mehr zugeteilt werden. In früheren Versionen ähnelte das Verhalten dem Befehl „Deaktivieren“, der den Agentenbetrieb sofort stoppte.
MetaEditor: Unterstützung für Nicht-ANSI-Zeichen im Debugger hinzugefügt. Jetzt werden die Ausdrücke auch dann korrekt angezeigt, wenn der Variablenname in Kyrillisch angegeben ist.
MetaEditor: Die Anzeige von Suchergebnissen auf High-DPI-Bildschirmen wurde korrigiert.
Übersetzung der Benutzeroberfläche ins Kroatische hinzugefügt.
Dokumentation wurde aktualisiert.
Das Update wird über das LiveUpdate-System verfügbar sein.
Die erste Version der Integration - lesen Sie diesen Beitrag#1.
Wie man direkten Zugriff auf Daten in MetaTrader 5 von R aus erhält - lesen Sie den ersten Beitrag dieses Threads (dies ist der Hauptthread, der von MQ gestartet wurde), oder diese Übersetzung -#2.
Multi-Currency Expert Advisors in MT5 - Backtesting und Optimierung
Die Threads/Beiträge
Kaufen oder Verkaufen aller 7 Paare -der Thread mit der Erklärung.
Multi-Currency Expert Advisorsder Beitrag mit den Beispielen für Backtesting/Optimierung
Die Artikel
LifeHack für Trader: "Stille" Optimierung oder Plotten von Handelsverteilungen Interessante Ergebnisse lassen sich auch erzielen, wenn man einen Multi-Currency EA im Strategietester laufen lässt. Als Beispiel wurde der kostenloseMulticurrency Expert aus der CodeBase verwendet. Zusätzlich wurde die Datei "#include <DistributionOfProfits.mqh>" angegeben und die Variable "CDistributionOfProfits ExtDistribution" im Header des EA deklariert, sowie die Funktion "OnTester()" am Ende des Codes hinzugefügt. Nach einem einzigen Durchlauf wurden die folgenden Statistiken erhalten: "TestAnalysis.htm".
The multi-symbol adviser uses the MA Trend 2 adviser as the base advisor, while the advisor itself is rewritten as a class.
Dieser Berater ist in Form einer Klasse die erste Version, so dass für jetzt, die Symbole ("EURUSD", "USDCAD", "USDJPY") sind in den Code hart angegeben. Auch alle Eingabeparameter sind die gleichen für jedes der drei Symbole (Stop Loss, Take Profit, und so weiter ...).
Die Korrelation ist eine statistische Beziehung zwischen zwei oder mehreren Zufallsvariablen (oder Größen, die mit einem akzeptablen Grad an Genauigkeit als zufällig angesehen werden können). Veränderungen bei einer oder mehreren Variablen führen zu systematischen Veränderungen bei anderen damit verbundenen Variablen. Das mathematische Maß für die Korrelation von zwei Zufallsvariablen ist der Korrelationskoeffizient. Führt die Änderung einer Zufallsvariablen nicht zu einer regelmäßigen Änderung der anderen Zufallsvariablen, sondern zu einer Änderung eines anderen statistischen Merkmals dieser Zufallsvariablen, so wird eine solche Beziehung nicht als Korrelation betrachtet, obwohl sie statistisch ist.
Es gibt einen Thread im Forum - Möglichkeiten von Canvas. Es ist ein sehr nützlicher Thread. Und dies ist ein sehr interessantes Tool, das mit diesem Thema völlig zusammenhängt -
Demonstrieren Sie die Funktionsweise des Indikators in zwei Fenstern gleichzeitig: im Haupt- und im Nebenfenster. Dies wird durch die Verwendung der KlasseiCanvas erreicht.
Kompakte Lösung eines Systems linearer algebraischer Gleichungen durch Rekursion.
Demonstration und Beweis für einige Suchende, dass die Verwendung von SLAE im algorithmischen Handel das Potenzial der Preisvorhersage beinhaltet.
Hallo
ich bin ein Anfänger und möchte die Cut-and-Paste-Strategie anwenden. Wie fange ich an? Ich brauche einen schrittweisen Ansatz
bitte
Hallo
ich bin ein Anfänger und möchte die Cut-and-Paste-Strategie anwenden. Wie fange ich an? Ich brauche einen schrittweisen Ansatz
bitte
Wo soll ich anfangen?
https://www.mql5.com/en/forum/212020
----------------
Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien
Wie fange ich mit Metatrader 5 an?
Sergey Golubev, 2013.09.20 08:21
Zusammenfassungen:
====
Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien
Eine Frage zu Signalen
Sergey Golubev, 2016.12.30 20:14
Nur einige Informationen über den Signal Service:
Hier finden Sie Informationen darüber, wo Sie anfangen können.
------------
Aus denRegeln-
Das Thema der neuronalen Kohonen-Netze wurde in einigen Artikeln auf der mql5.com-Website behandelt, z. B. in den ArtikelnUsing Self-Organizing Feature Maps (Kohonen Maps) in MetaTrader 5 undSelf-Organizing Feature Maps (Kohonen Maps) - Revisiting the Subject. Sie führten die Leser in die allgemeinen Prinzipien des Aufbaus neuronaler Netze dieser Art und der visuellen Analyse der wirtschaftlichen Zahlen der Märkte mit Hilfe solcher Karten ein.
In der Praxis hat sich die Verwendung von Kohonen-Netzen für den algorithmischen Handel jedoch auf einen einzigen Ansatz beschränkt, nämlich die gleiche visuelle Analyse von Topologiekarten, die für die EA-Optimierungsergebnisse erstellt wurden. In diesem Fall erweist sich das eigene Werturteil, oder besser gesagt, die eigene Vision und die Fähigkeit, vernünftige Schlüsse aus einem Bild zu ziehen, vielleicht als der entscheidende Faktor, der die Eigenschaften des Netzes in Bezug auf die Darstellung von Daten in Bezug auf Nüsse und Schrauben in den Hintergrund treten lässt.
Mit anderen Worten, die Eigenschaften der Algorithmen neuronaler Netze wurden nicht voll genutzt, d. h. sie wurden eingesetzt, ohne automatisch Wissen zu extrahieren oder die Entscheidungsfindung durch spezifische Empfehlungen zu unterstützen. In dieser Arbeit betrachten wir das Problem der Definition der optimalen Roboterparameter in einer stärker formalisierten Weise. Außerdem werden wir das Kohonen-Netz auf die Vorhersage von Wirtschaftsbereichen anwenden. Bevor wir uns jedoch mit diesen angewandten Problemen befassen, sollten wir die vorhandenen Quellcodes überarbeiten, etwas korrigieren und einige Verbesserungen vornehmen.
Es wird dringend empfohlen, zuerst die oben genannten Artikel zu lesen, wenn Sie mit den Begriffen wie "Netzwerk", "Schicht", "Neuron" ("Knoten"), "Verbindung", "Gewicht", "Lernrate", "Lernbereich" und anderen Begriffen im Zusammenhang mit Kohonen-Netzwerken nicht vertraut sind. Dann werden wir uns in diese Materie vertiefen müssen, so dass eine erneute Vermittlung der grundlegenden Begriffe diese Veröffentlichung erheblich verlängern würde.
Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien
Neue MetaTrader 5-Plattform, Build 2005: Wirtschaftskalender, MQL5-Anwendungen als Dienste und R-Sprach-API
MetaQuotes Software Corp. , 2019.02.20 17:20
Das Update der MetaTrader 5-Plattform wird am 21. Februar 2019 veröffentlicht. Die neue Version enthält die folgenden Änderungen:
- Terminal: Vollständig überarbeiteter integrierter Wirtschaftskalender.

- Terminal: Neue Art von MQL5-Anwendungen hinzugefügt — Dienste. Dieser neue Typ ermöglicht die Erstellung von benutzerdefinierten Preis-Feeds für das Terminal, dh die Implementierung von Preislieferungen von externen Systemen in Echtzeit, so wie es auf Handelsservern von Brokern implementiert ist.

- Terminal: Ein Lernprogramm wurde hinzugefügt.

- Terminal: Der Verlauf des Handelskontos kann als Positionen dargestellt werden. Die Plattform sammelt Daten zu Geschäften im Zusammenhang mit der Position (Eröffnung, Volumenerhöhung, teilweiser oder vollständiger Abschluss) und gruppiert die Informationen in einem einzigen Datensatz. So können Sie auf Positionsdetails zugreifen: Öffnungs- und Schließzeit, Volumen, Preis und Ergebnis. Diese effiziente Präsentationsform ist jetzt in Verlaufsberichten verfügbar, die in Dateien exportiert werden.

- Terminal: Neue API hinzugefügt, die die Abfrage von MetaTrader 5-Terminaldaten durch Anwendungen ermöglicht, die die R-Sprache verwenden .

R CMD INSTALL --build MetaTrader
- MT5Initialize initialisiert und stellt eine Verbindung mit dem MetaTrader 5-Terminal her. Bei Bedarf wird das Terminal während der Befehlsausführung gestartet.
- MT5Shutdown wird deinitialisiert und trennt sich von MetaTrader 5.
- MT5Version erhält die Terminalversion von MetaTrader 5.
- MT5TerminalInfo erhält den Status und die Parameter der Terminalverbindung zum Server eines Brokers (Kontonummer und Serveradresse).
- MT5WaitTerminal wartet darauf, dass sich das MetaTrader 5-Terminal mit dem Server eines Brokers verbindet.
- MT5CopyTicksFrom(symbol, from, count, flags) kopiert die angegebene Anzahl von Ticks ab dem angegebenen Datum. Das Datum wird in Millisekunden seit dem 01.01.1970 angegeben.
- MT5CopyTicksRange(symbol, from, to, flags) kopiert Ticks innerhalb des angegebenen Zeitraums. Die Datumsangabe erfolgt in Millisekunden seit dem 01.01.1970.
- MT5CopyRatesFrom(symbol, timeframe, from, count) kopiert die angegebene Anzahl von Ein-Minuten-Balken ab dem angegebenen Datum. Das Datum wird in Sekunden seit dem 01.01.1970 angegeben.
- MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) kopiert Ein-Minuten-Balken von der angegebenen Position relativ zum letzten Balken.
- MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to) kopiert Balken innerhalb des angegebenen Zeitraums. Die Datumsangabe erfolgt in Sekunden seit dem 01.01.1970.
- Terminal: Optimierter Close By -Dialog, der zum Schließen einer Position durch eine Gegenposition verwendet wird. Jetzt wird der Dialog auch bei einer großen Anzahl offener Positionen nicht verlangsamt.
- Terminal: Fehler bei der Berechnung synthetischer Symbole behoben, durch die Daten gelegentlich übersprungen werden konnten.
- Terminal: Wenn ein benutzerdefiniertes Symbol gelöscht wird, werden auch Dateien gelöscht, in denen sein Tick- und Balkenverlauf gespeichert ist. Dadurch wird vermieden, dass sich ungenutzte Daten auf der Festplatte ansammeln.
- Terminal: Die Anzeige von Suchergebnissen auf High-DPI-Bildschirmen wurde korrigiert.
- MQL5: Zugriff auf Wirtschaftskalenderdaten aus MQL5-Programmen implementiert.
- MQL5: Korrekturen und Verbesserungen der Betriebsgeschwindigkeit im Zusammenhang mit der Tick- und Balkenhistorie.
- MQL5: Korrekturen und signifikante Verbesserungen der Betriebsgeschwindigkeit im Zusammenhang mit Funktionen zur Änderung des Verlaufs von Ticks und Balken von benutzerdefinierten Handelssymbolen, CustomTicks* und CustomRates* .
- MQL5: Neue Datenkonvertierungsfunktionen.
- MathSwap- Funktion zum Ändern der Byte-Reihenfolge in ushort-, uint- und ulong-Werten hinzugefügt.
- MQL5: Netzwerkfunktionen zum Erstellen von TCP-Verbindungen zu entfernten Hosts über System-Sockets hinzugefügt:
- SocketCreate erstellt einen Socket mit angegebenen Flags und gibt sein Handle zurück
- SocketClose schließt den Socket
- SocketConnect stellt eine Verbindung zum Server her, mit Timeout-Steuerung
- SocketIsConnected prüft, ob der Socket aktuell verbunden ist
- SocketIsReadable liefert die Anzahl der Bytes, die vom Socket gelesen werden können
- SocketIsWritable prüft, ob das Schreiben von Daten in diesen Socket zum aktuellen Zeitpunkt möglich ist
- SocketTimeouts legt Zeitüberschreitungen für das Empfangen und Senden von Daten für das System-Socket-Objekt fest
- SocketRead liest Daten aus einem Socket
- SocketSend schreibt Daten in einen Socket
- SocketTlsHandshake initiiert mithilfe des TLS-Handshake-Protokolls eine sichere TLS-Verbindung (SSL) mit dem angegebenen Host
- SocketTlsCertificate erhält Informationen über das Zertifikat, das für die sichere Netzwerkverbindung verwendet wird
- SocketTlsRead liest Daten aus einer sicheren TLS-Verbindung
- SocketTlsReadAvailable liest alle verfügbaren Daten aus einer sicheren TLS-Verbindung
- SocketTlsSend sendet Daten über eine sichere TLS-Verbindung
Die Adresse des Hosts, zu dem eine Verbindung über Netzwerkfunktionen aufgebaut wird, muss explizit in die Liste der erlaubten Adressen in den Terminaleinstellungen aufgenommen werden.
- ERR_NETSOCKET_INVALIDHANDLE (5270): Ungültiges Socket-Handle an die Funktion übergeben
- ERR_NETSOCKET_TOO_MANY_OPENED (5271): zu viele Sockets offen (maximal 128)
- ERR_NETSOCKET_CANNOT_CONNECT (5272): Fehler beim Verbinden mit dem Remote-Host
- ERR_NETSOCKET_IO_ERROR (5273): Fehler beim Senden/Empfangen von Daten vom Socket
- ERR_NETSOCKET_HANDSHAKE_FAILED (5274): Fehler beim sicheren Verbindungsaufbau (TLS Handshake)
- ERR_NETSOCKET_NO_CERTIFICATE (5275) — keine Daten über das für die sichere Verbindung verwendete Zertifikat
- MQL5: Neue Funktionen für String-Operationen hinzugefügt:
- MQL5: Neue Funktion für Array-Operationen hinzugefügt:
- MQL5: Der neue Parameter "uint count" wurde in den Funktionen CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd und CustomTicksReplace hinzugefügt . Es ermöglicht die Angabe der Anzahl der Elemente des übergebenen Arrays, die für diese Funktionen verwendet werden. Der Wert WHOLE_ARRAY wird standardmäßig für den Parameter verwendet. Dies bedeutet, dass das gesamte Array verwendet wird.
- MQL5: CustomBookAdd- Funktion hinzugefügt, um den Status der Markttiefe für ein benutzerdefiniertes Symbol zu übergeben. Die Funktion ermöglicht die Übertragung der Markttiefe, als ob die Preise vom Server eines Brokers kommen.
- MQL5: Überladen der CustomSymbolCreate- Funktion hinzugefügt. Dies ermöglicht die Erstellung eines benutzerdefinierten Handelssymbols auf der Grundlage eines vorhandenen. Nach der Erstellung kann jede Symboleigenschaft mit entsprechenden Funktionen bearbeitet werden.
- Die StringToTime- Funktion, die den String mit Datum/Uhrzeit in einen datetime-Wert umwandelt, wurde aktualisiert. Jetzt unterstützt es die folgenden Datumsformate:
- jjjj.mm.tt [hh:mi]
- jjjj.mm.tt [hh:mi:ss]
- jjjjmmtt [hh:mi:ss]
- jjjjmmtt [hhmiss]
- jjjj/mm/tt [hh:mi:ss]
- jjjj-mm-tt [hh:mi:ss]
- MQL5: Neue Eigenschaft TERMINAL_VPS in der Aufzählung ENUM_TERMINAL_INFO_INTEGER ; es zeigt, dass das Terminal auf dem MetaTrader Virtual Hosting Server (MetaTrader VPS) läuft. Wenn eine Anwendung auf einem Hosting-Server läuft, können Sie alle visuellen Funktionen deaktivieren, da der virtuelle Server keine grafische Benutzeroberfläche hat.
- MQL5: Neue Eigenschaft SYMBOL_EXIST in der Aufzählung ENUM_SYMBOL_INFO_INTEGER , bedeutet, dass das Symbol unter diesem Namen existiert.
- MQL5: Fehler bei der Verwendung von Vordeklarationen für Vorlagenfunktionen behoben.
- MQL5: Neuinitialisierung von Indikatoren hinzugefügt, wenn ein Handelskonto geändert wird.
- MQL5: Optimierte StringSplit- Funktion.
- MQL5: Fehler in der Standardbibliotheksoperation behoben.
- Tester: TesterStop- Funktion hinzugefügt – routinemäßiges vorzeitiges Herunterfahren eines Expert Advisors auf einem Testagenten. Jetzt können Sie das Testen zwangsweise beenden, nachdem Sie die angegebene Anzahl von Verlusttrades, ein voreingestelltes Drawdown-Level oder ein anderes Kriterium erreicht haben.
- Tester: Deaktivierte Fähigkeit, Expert Advisors über das MQL5 Cloud Network im Real-Tick-Modus zu testen und zu optimieren. Dieser Modus kann nur auf lokalen Agenten und lokalen Netzwerkfarmen verwendet werden.
- Tester: Verbesserte Arbeit mit Indikatoren beim visuellen Testen. Jetzt werden das Preisdiagramm und die Indikatorlinien synchron gezeichnet, selbst bei maximaler Visualisierungsgeschwindigkeit.
- Tester: Optimiertes und deutlich beschleunigtes Testen und Optimieren.
- Tester: Das Debuggen von Indikatoren für historische Daten wurde korrigiert. Jetzt können die Indikatorfunktionen OnInit und OnDeinit korrekt debuggt werden.
- Tester: Schnellerer Zugriff auf historische Daten beim Testen von Expert Advisors mit mehreren Währungen implementiert.
- Tester: Das gelegentliche Einfrieren des visuellen Testers während des Debuggens auf historischen Daten wurde behoben.
- Tester: Schnellerer Start von Optimierungsdurchläufen bei der Bearbeitung eines Aufgabenpakets durch einen Agenten implementiert.
- Tester: Geänderte Richtlinie zum Verteilen von Aufgabenpaketen an Testagenten. Die Paketgröße wurde erhöht und damit der Ressourcenverbrauch im Netzwerkbetrieb deutlich reduziert.
- Tester: Geändertes Verhalten von Optionen, die die Verwendung von lokalen, Netzwerk- und Cloud-Agenten ermöglichen. Wenn Sie die Optionen jetzt ausschalten, beenden die Agenten die Bearbeitung empfangener Aufgaben, während ihnen keine neuen Aufgaben mehr zugeteilt werden. In früheren Versionen ähnelte das Verhalten dem Befehl „Deaktivieren“, der den Agentenbetrieb sofort stoppte.

- MetaEditor: Unterstützung für Nicht-ANSI-Zeichen im Debugger hinzugefügt. Jetzt werden die Ausdrücke auch dann korrekt angezeigt, wenn der Variablenname in Kyrillisch angegeben ist.
- MetaEditor: Die Anzeige von Suchergebnissen auf High-DPI-Bildschirmen wurde korrigiert.
- Übersetzung der Benutzeroberfläche ins Kroatische hinzugefügt.
- Dokumentation wurde aktualisiert.
Das Update wird über das LiveUpdate-System verfügbar sein.Der Wirtschaftskalender ist unsere proprietäre Lösung. Darin finden Sie über 600 Finanznachrichten und Indikatoren zu den 13 größten Volkswirtschaften der Welt: USA, Europäische Union, Japan, Großbritannien, Kanada, Australien, China und andere. Relevante Daten werden in Echtzeit aus offenen Quellen gesammelt.
Die neue Version bietet aktualisierte Inhalte und erweiterte Ereignisfilter: nach Zeit, Priorität, Währungen und Ländern.
Auf die Kalenderdaten kann jetzt von MQL5-Programmen aus zugegriffen werden. Einzelheiten finden Sie weiter unten.
Im Gegensatz zu Expert Advisors, Indikatoren und Skripten sind Dienste nicht mit einem bestimmten Chart verknüpft. Solche Anwendungen laufen im Hintergrund und werden automatisch gestartet, wenn das Terminal gestartet wird (es sei denn, eine solche App wurde zwangsweise beendet).
Dienste können über einen neuen Abschnitt im Navigatorfenster verwaltet werden:
So erstellen Sie Dienste
Um eine Dienstvorlage zu erstellen, verwenden Sie die entsprechende Option des MQL5-Assistenten . Dienste haben einen OnStart- Einstiegspunkt, ähnlich wie Skripts. An diesem Punkt können Sie mithilfe von Netzwerkfunktionen einen endlosen Datenempfangs- und -verarbeitungszyklus implementieren.
So starten Sie Dienste
Um mehrere Expert Advisor- oder Indikatorkopien mit unterschiedlichen Parametern auszuführen, sollten Sie sie auf unterschiedlichen Charts starten. Dabei werden verschiedene Programminstanzen erstellt, die dann eigenständig arbeiten. Dienste sind nicht mit Diagrammen verknüpft, daher wurde ein spezieller Mechanismus zum Erstellen von Dienstinstanzen implementiert.
Wählen Sie im Navigator einen Dienst aus und klicken Sie in dessen Kontextmenü auf "Dienst hinzufügen". Dies öffnet einen standardmäßigen MQL5-Programmdialog, in dem Sie den Handel aktivieren/deaktivieren und auf Signaleinstellungen zugreifen sowie verschiedene Parameter einstellen können.

Eine Dienstinstanz kann über das entsprechende Instanzmenü gestartet und gestoppt werden. Um alle Instanzen zu verwalten, verwenden Sie das Servicemenü.Die neue Funktion hilft Anfängern beim Erlernen der Interaktion mit der Plattform. Wir haben über 100 interaktive Tipps zu den wichtigsten Plattformfunktionen hinzugefügt.
- Tipps werden nahtlos als Fortschrittsbalken in der Symbolleiste angezeigt und lenken den Benutzer somit nicht ab.
- Tipps erscheinen nur für Aktionen, die Sie noch nie auf der Plattform durchgeführt haben.
- Alle Tipps enthalten interaktive Links, über die Sie zu den relevanten Oberflächenelementen navigieren können. So kann beispielsweise direkt aus dem Tipp heraus ein Handelsdialog oder ein Menü mit dem gewünschten Programm gestartet werden.
Der gefüllte Bereich des Fortschrittsbalkens wird immer größer, wenn Sie entsprechende Aktionen ausführen und das Training fortsetzen.Wir haben ein spezielles MetaTrader-Paket vorbereitet. Es enthält DLL für Interaktionen zwischen R und dem MetaTrader 5-Terminal, Dokumentation und zusätzliche r-Dateien. Wir schließen die Paketregistrierung im CRAN -Repository ab, danach steht es zum Download und zur Installation zur Verfügung.
Das Paket kann mit einem speziellen Befehl installiert werden:
Die folgenden Befehle für die Datenanforderung sind verfügbar:
Die Liste der unterstützten Befehle wird weiter ausgebaut.
Neue Funktionen
CalendarCountryById — Ruft die Länderbeschreibung nach Kennung ab.
CalendarEventById — Ruft Ereignisbeschreibung nach Kennung ab.
CalendarValueById — Ruft die Beschreibung des Ereigniswerts nach Kennung ab.
CalendarEventByCountry — Ruft das Array der verfügbaren Ereignisse für das Land ab.
CalendarEventByCurrency — Ruft das Array verfügbarer Ereignisse für die betroffene Währung ab.
CalendarValueHistoryByEvent — Ruft das Array von Werten für den angegebenen Zeitraum nach Ereigniskennung ab.
CalendarValueHistory — Ruft das Array von Werten für den angegebenen Zeitraum für alle Ereignisse ab, gefiltert nach Land und/oder Währung.
CalendarValueLastByEvent — Ruft ein Array der letzten Ereigniswerte nach Kennung ab. Diese Funktion ermöglicht die Abfrage der seit der letzten Abfrage aufgetretenen Werte. Für diese Operation wird zusätzlich der Durchgangsparameter „change_id“ verwendet.
Jedes Mal, wenn sich die Kalenderdatenbank ändert, wird die Eigenschaft "change_id" (die Kennung der letzten Änderung) aktualisiert. Während der Datenanforderung geben Sie "change_id" an und das Terminal gibt Ereignisse zurück, die nach dieser Zeit aufgetreten sind, sowie den aktuellen "change_id"-Wert, der für die nächste Anforderung verwendet werden kann. Geben Sie beim ersten Funktionsaufruf die Null "change_id" an: Die Funktion gibt keine Ereignisse zurück, gibt aber bei weiteren Anfragen die aktuelle "change_id" zurück.
CalendarValueLast — Ruft das Array der letzten Werte für alle Ereignisse ab, gefiltert nach Land und/oder Währung. Diese Funktion ermöglicht die Abfrage der seit der letzten Abfrage aufgetretenen Werte. Ähnlich wie bei CalendarValueLastByEvent wird die Eigenschaft „change_id“ für die Anfrage verwendet.
Neue Strukturen
MqlCalendarCountry — Länderbeschreibung.
MqlCalendarEvent — Ereignisbeschreibung.
MqlCalendarValue — Beschreibung des Ereigniswerts.
Neue Aufzählungen
Neue Fehlercodes
CharArrayToStruct kopiert ein uchar-Array in eine POD-Struktur.
StructToCharArray kopiert eine POD-Struktur in ein uchar-Array.
Für Operationen mit Netzwerkfunktionen wurden neue Fehlercodes hinzugefügt:
StringReserve reserviert für einen String den Speicherpuffer der angegebenen Größe.
StringSetLength setzt die angegebene Zeichenfolgenlänge in Zeichen.
ArrayRemove entfernt aus einem Array die angegebene Anzahl von Elementen beginnend mit dem angegebenen Index.
ArrayInsert fügt die angegebene Anzahl von Elementen aus dem Quellarray in ein Empfängerarray ein, beginnend mit dem angegebenen Index.
ArrayReverse kehrt in einem Array die angegebene Anzahl von Elementen ab dem angegebenen Index um.
Der Name des Symbols, von dem die Eigenschaften für das benutzerdefinierte Symbol kopiert werden sollen, wird im Parameter "symbol_origin" angegeben.
Ein mit dieser Funktion abgeschlossener Test gilt als erfolgreich. Nach dem Funktionsaufruf werden die beim Testen erhaltene Handelshistorie und alle Handelsstatistiken an das Terminal übergeben.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
MetaTrader R-Paket - die Zusammenfassung
Sergey Golubev, 2019.02.22 06:47
Die Hauptstudie
Die Artikel
Das Forum
----------------
mehr zu folgen ..
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Nützliche Links/Threads/Tools
Sergey Golubev, 2017.10.05 12:33
Multi-Currency Expert Advisors in MT5 - Backtesting und Optimierung
Die Threads/Beiträge
Die Artikel
Interessante Ergebnisse lassen sich auch erzielen, wenn man einen Multi-Currency EA im Strategietester laufen lässt. Als Beispiel wurde der kostenloseMulticurrency Expert aus der CodeBase verwendet. Zusätzlich wurde die Datei "#include <DistributionOfProfits.mqh>" angegeben und die Variable "CDistributionOfProfits ExtDistribution" im Header des EA deklariert, sowie die Funktion "OnTester()" am Ende des Codes hinzugefügt. Nach einem einzigen Durchlauf wurden die folgenden Statistiken erhalten: "TestAnalysis.htm".
optimieren Sie ihn überalle in Market Watch ausgewählten Symbole
Dokumentation
...und dies ist das Beispiel des Codes von CodeBase -
----------------
Mehrwährungs iMA Trend- Experte für MetaTrader 5
The multi-symbol adviser uses the MA Trend 2 adviser as the base advisor, while the advisor itself is rewritten as a class.
Dieser Berater ist in Form einer Klasse die erste Version, so dass für jetzt, die Symbole ("EURUSD", "USDCAD", "USDJPY") sind in den Code hart angegeben. Auch alle Eingabeparameter sind die gleichen für jedes der drei Symbole (Stop Loss, Take Profit, und so weiter ...).
Guter Artikel wurde veröffentlicht -
----------------
Praktische Anwendung von Korrelationen im Handel
Die Korrelation ist eine statistische Beziehung zwischen zwei oder mehreren Zufallsvariablen (oder Größen, die mit einem akzeptablen Grad an Genauigkeit als zufällig angesehen werden können). Veränderungen bei einer oder mehreren Variablen führen zu systematischen Veränderungen bei anderen damit verbundenen Variablen. Das mathematische Maß für die Korrelation von zwei Zufallsvariablen ist der Korrelationskoeffizient. Führt die Änderung einer Zufallsvariablen nicht zu einer regelmäßigen Änderung der anderen Zufallsvariablen, sondern zu einer Änderung eines anderen statistischen Merkmals dieser Zufallsvariablen, so wird eine solche Beziehung nicht als Korrelation betrachtet, obwohl sie statistisch ist.
Inhaltsübersicht
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wo soll ich anfangen?
Sergey Golubev, 2018.09.20 15:43
Tipps verwenden - die Anleitung zum HowTo
=========
----------------
----------------
----------------
Es gibt einen Thread im Forum -
Möglichkeiten von Canvas.
Es ist ein sehr nützlicher Thread.
Und dies ist ein sehr interessantes Tool, das mit diesem Thema völlig zusammenhängt -
----------------
System der linearen algebraischen Gleichungen auf jedem Balken- Indikator für MetaTrader 5
This work has 3 goals: