MetaEditor Hilfe → Projekte und MQL5 Algo Forge → Arbeiten mit dem Storage

Arbeiten mit MQL5 Algo Forge

MQL5 Algo Forge ist das in MetaEditor integrierte, auf Git basierende Versionskontroll- und Speichersystem. Es arbeitet in erster Linie mit dem MQL5-Ordner (der alle Algorithmen enthält) und dem speziellen Shared Projects-Verzeichnis (in dem alle öffentlichen Projekte gespeichert sind).

Git ist ein Versionskontrollsystem, das festhält, wie Ihre Dateien zu verschiedenen Zeitpunkten aussahen. Es hilft, den Verlust wichtiger Änderungen zu verhindern, erleichtert das Zurücksetzen, unterstützt die Erstellung von Zweigen (branches) für Experimente und ermöglicht es mehreren Entwicklern, gemeinsam an einem Projekt zu arbeiten. Es kann hilfreich sein, sich anhand der offiziellen Dokumentation mit den Git-Grundlagen vertraut zu machen.

Ein Commit stellt den Zustand von Dateien zu einem bestimmten Zeitpunkt dar. Jeder Commit hat eine eindeutige Kennung und eine Meldung, die die Änderungen beschreibt. Die Projektgeschichte wird über Commits, Zweige und die Beziehungen zwischen ihnen nachverfolgt.

Sie können sich anschauen, wann Änderungen vorgenommen wurden, wer sie vorgenommen hat, welche Dateien geändert wurden und was in den einzelnen Commits enthalten war. Außerdem können Sie Dateiversionen vergleichen, frühere Dateizustände wiederherstellen, zwischen Zweigen wechseln und ausgewählte Änderungen bei Bedarf rückgängig machen.

Wenn Sie in einem gemeinsamen Projekt oder einem kollaborativen Arbeitsbereich arbeiten, wird dringend empfohlen, Änderungen regelmäßig abzurufen. Dadurch wird sichergestellt, dass Git nicht miteinander in Konflikt stehende Änderungen vom Remote-Repository automatisch mit der lokalen Kopie zusammenführt. Wenn jedoch zwei Benutzer dieselbe Codezeile ändern oder konkurrierende Änderungen vornehmen, kann es zu einem Konflikt kommen. Sie müssen die Konflikte lösen, bevor Sie neue Änderungen festschreiben oder an den Remote-Server übertragen.

Grundlegender Arbeitsablauf:

  1. Rufen Sie zunächst die Änderungen vom Remote-Server ab. Wenn Sie beginnen, sollte Ihre lokale Arbeitskopie mit der Remote-Version in MQL5 Algo Forge übereinstimmen.
  2. Dateien bearbeiten oder Änderungen vornehmen. Code bearbeiten, neue Dateien hinzufügen, Fehler beheben oder Funktionen implementieren. Der MetaEditor erkennt die Änderungen automatisch.
  3. Änderungen lokal festschreiben. Der Einfachheit halber überträgt der MetaEditor den hinzugefügten Commit automatisch an den Remote-Server.

Erste Schritte #

Stellen Sie sicher, dass Sie mit Ihrem MQL5.community-Konto im MetaEditor angemeldet sind. Führen Sie einen der folgenden Schritte aus, um die Arbeit in einem Verzeichnis mit aktiviertem Git zu beginnen:

Git ist ein Befehlszeilenprogramm, aber MetaEditor bietet eine komfortable Benutzeroberfläche, um per Mausklick damit zu arbeiten. Sie können von verschiedenen Stellen aus auf Git-Befehle zugreifen:

1. Klicken Sie mit der rechten Maustaste auf eine Datei/einen Ordner unter „Navigator“.

Kontextmenü für Datei/Ordner

2. Klicken Sie mit der rechten Maustaste auf eine Registerkarte.

Kontextmenü der Registerkarte

3. Klicken Sie mit der rechten Maustaste auf einen beliebigen Text oder eine leere Stelle im Code-Editor.

Kontextmenü des Code-Editors

4. Klicken Sie im oberen Menü auf „Git“.

Optionen im oberen Menü für Git

Diese Befehle führen Git-Operationen durch und interagieren mit MQL5 Algo Forge:

  • Updates von Git laden — die neueste Version abrufen oder Änderungen vom Remote-Server holen. Git lädt die neuesten Commits vom Server herunter und führt sie in Ihr lokales Projekt ein.
  • Änderungen an Git übertragen — lokale Änderungen an den Remote-Server senden. MetaEditor führt „Änderungen an Git übertragen“ nach jedem Git-Commit automatisch aus. Sie können den Vorgang jedoch auch manuell starten, falls der automatische Push fehlschlägt.
  • Änderungen im Git festschreiben — speichert den aktuellen Zustand Ihres Projekts im Versionsverlauf, wobei MetaEditor die Änderungen automatisch an den Remote-Server überträgt. Ein Commit fungiert als Kontrollpunkt, sodass Sie bei Bedarf später zu dieser Version zurückkehren können.
  • Git-Datei/Ordner hinzufügen — fügt einen ganzen Ordner oder eine bestimmte Datei als bereitgestellt (staging) hinzu, wobei MetaEditor die Änderungen automatisch an den Remote-Server überträgt.
  • Differenzen zu Git — überprüft geänderte Dateien im Staging vor einem Festschreiben (commit). Das Vergleichsfenster zeigt hinzugefügte, gelöschte oder geänderte Zeilen an.
  • Änderungen im Git zurücknehmen — löscht im Staging befindliche Änderungen, die noch nicht festgeschrieben wurden.
  • Git-Log anzeigen — zeigt alle Commits mit Datum, Autor und Commit-Meldung an. So können Sie nachverfolgen, wer was wann geändert hat.
  • Git-Zweig — ruft ein Menü auf, um einen neuen Zweig zu erstellen und zwischen Zweigen zu wechseln. Jeder Zweig ist ein separater Entwicklungszweig, den Sie für Tests nutzen und später verwerfen oder in den Hauptzweig zusammenführen können.

Dateien hinzufügen #

Um einen lokalen Ordner oder eine Datei zum MQL5-Repository hinzuzufügen, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Git Add File/Folder“. Es erscheint ein Dialogfeld mit einer Liste der hinzuzufügenden Dateien.

  • Der MetaEditor wählt automatisch für Git geeignete Dateien aus und schließt Elemente wie Binärdateien aus.
  • Git kontrolliert Dateien, keine Ordner. Wenn Sie einen Ordner zu einem Repository hinzufügen, fügt Git die darin enthaltenen Dateien hinzu.
  • Ein leerer Ordner kann nicht hinzugefügt werden, da er keine zu kontrollieren Dateien enthält.

Hinzufügen eines Ordners zum Storage

Stellen Sie sicher, dass die Dateien, die Sie hinzufügen möchten, ausgewählt sind, und klicken Sie dann auf „OK“. MetaEditor fügt die Dateien über einen Commit hinzu und überträgt den Commit sofort an den Remote-Server.

Hinzugefügte (kontrollierte) Dateien sind mitKeine Änderungengekennzeichnet.

Dateien und Ordner hinzugefügt

Erstellen von Zweigen (branches) #

Ein Zweig fungiert als parallele Sandbox, in der Sie sicher neue Funktionen oder Fehlerbehebungen entwickeln können, ohne die stabile Codebasis zu beeinträchtigen. Sobald Ihre Arbeit in einem neuen Zweig abgeschlossen und gründlich getestet ist, kann der Zweig zusammengeführt in das Hauptprojekt werden.

Klicken Sie mit der rechten Maustaste auf die Datei/den Ordner, wählen Sie „Git-Zweig“ und dann „Neu“. Geben Sie im angezeigten Dialogfeld einen Namen für den Zweig ein und klicken Sie anschließend auf „OK“.

Einen neuen Zweig erstellen

Anschließend können Sie zu dem neuen Zweig wechseln und dort mit der Arbeit beginnen.

Zwischen Zweigen wechseln #

Durch das Wechseln zwischen Zweigen können Sie sicher zwischen verschiedenen Sandboxen oder Zeitachsen in Ihrem Repository hin- und herspringen. Dadurch werden Ihre Arbeitsdateien sofort aktualisiert und entsprechen nun genau dem Zustand des ausgewählten Zweigs.

Klicken Sie mit der rechten Maustaste auf die Datei/den Ordner und wählen Sie „Git-Zweig“. Wählen Sie aus der Liste der Zweige den Zweig aus, zu dem Sie wechseln möchten.

Änderungen festschreiben #

Geänderte Dateien und Ordner sind mitGeändert.

Kennzeichnung geänderter Dateien

Bevor Sie die Änderungen festschreiben, können Sie diese in einer Datei überprüfen, indem Sie mit der rechten Maustaste auf die Datei klicken und „Differenzen zu Gut“ auswählen.

Änderungen in einer Datei

Sobald Sie bereit sind, die Änderungen zu übermitteln, klicken Sie mit der rechten Maustaste auf die Datei/den Ordner und wählen Sie dann „Änderungen im Git festschreiben“ aus.

Im Commit-Dialog können Sie die geänderten Dateien auswählen, die übermittelt werden sollen, und einen Kommentar hinzufügen. Detaillierte Kommentare erleichtern die spätere Analyse der Änderungen.

Übertragen in den Storage

Klicken Sie auf „OK“ und MetaEditor führt den Commit der Änderungen durch und überträgt sie zudem an das Remote-Repository.

Nach einem erfolgreichen Festschreiben im Git werden die entsprechenden Ordner und Dateien mitKeine Änderungengekennzeichnet.

Änderungen abrufen #

Bei der Zusammenarbeit kann es vorkommen, dass jemand anderes das Projekt vor Ihnen aktualisiert. Möglicherweise haben Sie auch Änderungen auf einem Computer festgeschrieben und arbeiten auf einem anderen weiter. Das Abrufen von Änderungen stellt sicher, dass Ihr lokales Projekt die neuesten Aktualisierungen aus dem Remote-Repository enthält, wodurch Konflikte vermieden werden.

Um alle Remote-Änderungen abzurufen, klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie „Git herunterladen“. Auf der Registerkarte „Journal“ werden automatisch relevante Protokolle angezeigt, einschließlich der spezifischen Änderungen aus dem Remote-Repository.

Registerkarte „Journal“ mit Protokollen zu Git-Vorgängen

Änderungen zurücknehmen #

Nachdem Sie bearbeiteten Code gespeichert oder Dateien gelöscht haben, können Sie das Projekt ganz einfach in den Zustand vor den Änderungen zurückversetzen.

Um Änderungen an einer Datei oder einem Ordner rückgängig zu machen, klicken Sie mit der rechten Maustaste auf die Datei bzw. den Ordner und wählen Sie „Änderungen im Git zurücknehmen“.

Das Rückgängigmachen von Änderungen in einem Projekt mit mehreren geänderten Dateien öffnet ein Dialogfenster. Dort können Sie die Dateien auswählen, deren Änderungen Sie rückgängig machen möchten, und auf „OK“ klicken.

Fenster „Dateiänderungen rückgängig machen“

Wenn Sie die Änderungen, die Sie rückgängig machen möchten, bereits festgeschrieben haben, machen Sie stattdessen den Commit rückgängig.

Commits zurücknehmen #

Wenn ein bestimmter Commit Ihr Programm unbrauchbar macht oder Sie dessen Änderungen nicht mehr wünschen, können Sie ihn schnell rückgängig machen.

Klicken Sie mit der rechten Maustaste auf die betroffene Datei/den betroffenen Ordner und wählen Sie dann „Git Log“, um das Dialogfeld mit dem Commit-Verlauf zu öffnen. Klicken Sie mit der rechten Maustaste auf den Commit, den Sie rückgängig machen möchten, und wählen Sie dann „Auf diese Revision zurücksetzen“.

Fenster „Commit rückgängig machen“

MetaEditor fügt einen neuen Commit hinzu, der die Änderungen des ausgewählten Commits rückgängig macht, wobei der Commit-Verlauf erhalten bleibt.

Dateien löschen #

Um eine Datei oder einen Ordner zu löschen, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Löschen“. Durch diese Aktion wird die Datei bzw. der Ordner lokal entfernt.

Um sicherzustellen, dass dieselbe Datei bzw. derselbe Ordner auch aus dem Remote-Speicher gelöscht wird: Aktualisieren Sie das Projekt und führen Sie anschließend einen Commit der Änderungen für die Löschung durch. Wie bei allen Commits überträgt MetaEditor den Lösch-Commit automatisch auf den Remote-Speicher.

Gemeinsame Projekte löschen #

Um ein Projekt aus den Gemeinsamen Projekten zu löschen, klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie „Gemeinsames Projekt löschen“.

Die lokale Kopie wird entfernt. Wenn Sie der ursprüngliche Ersteller des Projekts sind, wird auch die Remote-Kopie gelöscht.

Commit-Verlauf anzeigen #

Der Commit-Verlauf für eine bestimmte Datei/einen bestimmten Ordner zeigt Kommentare, Autoren und Datumsangaben an und hilft Ihnen dabei, die Änderungen an der Datei/dem Ordner im Laufe der Zeit nachzuvollziehen.

Klicken Sie mit der rechten Maustaste auf die Datei/den Ordner und wählen Sie dann „Git-Log anzeigen“.

Die Spalten oben umfassen:

  • Kommentar — die für den Commit hinzugefügte Beschreibung
  • Autor — der Name des Benutzers (Anmeldename für das MQL5.community-Konto), der den Commit vorgenommen hat
  • Datum — Datum und Uhrzeit, zu denen der Commit vorgenommen wurde.

Fenster „Commit-Verlauf“

Klicken Sie in der Liste auf ein Commit, und die geänderten, hinzugefügten oder gelöschten Dateien werden im darunterliegenden Bereich angezeigt.

Fenster „Spezifische Änderungen eines Commits“

Icons zeigen die Art der Änderungen an:

  • Hinzugefügt— Datei wurde hinzugefügt.
  • Geändert— Datei wurde geändert.
  • Gelöscht— Datei wurde gelöscht.

Ein Rechtsklick auf einen Commit zeigt folgende Optionen an:

  • Mit Arbeitskopie vergleichen — öffnet ein Fenster, in dem die Unterschiede zwischen dem aktuellen Zustand und dem Commit angezeigt werden.
  • Mit vorheriger Revision vergleichen — öffnet ein Fenster, in dem die Unterschiede zwischen der vorherigen und der ausgewählten Commit-Version angezeigt werden.
  • Auf diese Revision zurücksetzen — die Änderungen eines bestimmten Commits rückgängig machen.