English 日本語
preview
MetaTrader trifft auf Google Sheets mit Pythonanywhere: Ein Leitfaden für einen sicheren Datenfluss

MetaTrader trifft auf Google Sheets mit Pythonanywhere: Ein Leitfaden für einen sicheren Datenfluss

MetaTrader 5Integration |
74 2
Ramesh Maharjan
Ramesh Maharjan

Einführung

Der Zugriff auf und die Analyse von Handelsdaten ist für Händler von MetaTrader sehr wichtig, um Fehler zu vermeiden und in Zukunft besser entscheiden zu können. Es gibt integrierte Tools und Funktionen für den Export von Daten, aber sie können nicht in Cloud-Dienste exportieren. Der automatische Export von Charts, Verlaufs- und Protokolldaten in Cloud-Dienste kann ein wichtiger Ansatz für die Entscheidungsfindung von Händlern sein.

Es gibt verschiedene Möglichkeiten und Tools, um Daten von MetaTrader in Cloud-Lösungen wie Google Sheets zu übertragen. Einige sind kostenlos, aber weniger sicher, andere sind sicher, aber nicht kostenlos oder mit eingeschränktem Zugang. Die Suche nach einem geeigneten Weg für Cloud-Exporte, der weniger kostet, kann Händlern, die sich darauf konzentrieren, durch die Analyse ihrer gehandelten Daten in ihren zukünftigen Geschäften zu profitieren, Kopfzerbrechen bereiten.

Händler verlieren oft wichtige Handelsgeschäfte und andere nützliche Informationen, da MetaTrader kein automatisches Backup-System für Cloud-Dienste hat. Händler tun sich schwer damit, Datenvisualisierungs- und Analysetools zu nutzen, die in der Cloud leicht verfügbar sind. Dieser Artikel soll zeigen, wie der Datentransfer von MetaTrader zu Google Sheets ohne zusätzliche Kosten und mit hoher Sicherheit automatisiert werden kann und wie man die leicht verfügbaren Lösungen nutzen kann, um in Zukunft profitabel zu handeln.

Dieser Artikel ist eine Hilfestellung für solche Händler und Entwickler, die nach Möglichkeiten suchen, ihre Daten in bestimmte Cloud-Lösungen oder -Speicher zu übertragen. In diesem Artikel erkläre ich, wie wir frei verfügbare und sichere Tools wie Google Service Account Keys und einen Proxy-Server nutzen können, der auf einer webbasierten, sicheren und kostenlosen Cloud-Plattform namens pythonanywhere gehostet wird.



Warum Google Sheet und Dienstkonten?

Google Sheet ist die wertvollste Lösung, da es cloudbasiert ist und die dort gespeicherten Daten jederzeit und von überall abgerufen werden können. So können Händler jederzeit und von jedem Ort aus auf die in Google Sheet exportierten Handels- und zugehörigen Daten zugreifen und weitere Analysen für den zukünftigen Handel durchführen. Wir können die Datenanalysetools von Google Sheets nutzen und sie sogar mit anderen Tools wie Google Data Studio oder TradingView integrieren. Und andere Händler und Helfer können an den Tabellen mitarbeiten, um ihre Analysen und Standpunkte zu erhalten.

Ich habe eine Info Exporter MT5 Utility-Anwendung im mql5 Markt veröffentlicht, die kostenlos heruntergeladen und genutzt werden kann und die Google Apps Script-Funktion für die Übertragung von Daten von MetaTrader zu Google Sheet nutzt.

Das App-Skript ist zwar kostenlos und einfach zu verwenden, aber es ist nicht sicher genug, da die bereitgestellte URL öffentlich zugänglich ist, sodass jeder mit der URL das Skript lesen und schreiben kann, um auf die Daten der Blätter zuzugreifen. Es gibt zahlreiche andere Ansätze wie Workload Identity Federation und Google Sheets Api, die entweder komplex in der Anwendung oder nicht oder nur begrenzt kostenlos sind.

Der Schlüssel für Dienstkonten ist sicherer, kostenlos und erfordert weniger Kenntnisse bei der Einrichtung. 

Sehen Sie sich das Video an, wie Sie auf Google Sheets über den Schlüssel des Dienstkontos im Proxy-Server zugreifen und für weitere Details zum Einrichten des Google-Kontoservice-Schlüssels und dessen Verwendung in Ihrer Anwendung.



Warum Proxy-Server in pythonanywhere.com?

Dem MetaTrader fehlt die direkte Integration mit Google Sheets und seinen Apis. Daher ist ein Proxyserver die beste Option für die Übertragung von Daten an Google Sheets. Der Einsatz einer cloudbasierten Lösung wie pythonanywhere bietet uns Verfügbarkeit, Skalierbarkeit, Sicherheit und Zuverlässigkeit. Verfügbarkeit, da sie auch dann verfügbar ist, wenn unsere Maschinen offline sind. Skalierbarkeit, da jeder, der den Link hat, ihn nutzen kann, solange er eine gültige Tabellenkalkulations-ID angibt. Sicherheit, da es gut getestet und von talentierten Ingenieuren verwaltet wird. Zuverlässigkeit, da wir uns immer auf seine Dienste verlassen können (auch bei der kostenlosen Version).

Pythonanywhere.com bietet den Nutzern ein gerechtfertigtes kostenloses Paket an, um einen einfachen Proxy-Server für Anwendungen dieser Art zu erstellen. Die kostenlose Version der Proxy-Server-Url ist für drei Monate gültig, kann aber kontinuierlich erweitert werden, wenn sie vor Ablauf der drei Monate verlängert wird.  

Verfallsdatumserweiterung in pythonanywhere.com

Als kostenloser Dienst erhalten wir eine zugängliche URL, die als API-Dienst im Proxy-Server verwendet wird, der für den Zugriff auf Google Sheets und andere notwendige Dinge wie das Lesen der Tabellen, die Anzeige von statischen Seiten für Informationen und vieles mehr verwendet wird. Wir erhalten Zugang zu Konsolen für die Anwendung von Terminalbefehlen, die hauptsächlich für die Installation der erforderlichen Bibliotheken und andere dateibezogene, netzwerkbezogene Arbeiten wie die Bearbeitung von Fehlerdateien usw. verwendet werden.

Wir erhalten auch Zugang zu einer Mysql-Datenbank, die mit unserem API-Dienst zum Speichern von Informationen oder zum Zwischenspeichern von Informationen verwendet werden kann. Wir erhalten auch Funktionen zur Planung von Aufgaben, mit denen wir Cron-Jobs erstellen können, die sich zu einer bestimmten Tageszeit wiederholen, sodass wir sie nicht manuell ausführen müssen. Wir erhalten Zugriff auf Werkzeuge zum Erstellen, Bearbeiten und Löschen von Dateien, eine Webschnittstelle zum Anzeigen von Fehlerprotokollen, zum Sichern der Website, zum Erstellen von Virtualenvs und viele weitere Werkzeuge.

Ich habe versucht, in diesem Video alle notwendigen Informationen zum Erstellen, Bearbeiten und Hosten eines Proxyservers auf pythonanywhere.com zu erfassen, in dem ich einen identischen Proxyserver in diesem Artikel verwendet habe.



Datenflussdiagramm 

Das Konzept des Datenflusses in diesem Übertragungsprozess ist einfach genug zu verstehen. MetraTrader fungiert als Datenquelle, in der die Daten, die für eine sorgfältige Analyse notwendig sind, um gewinnbringende Handelsentscheidungen zu treffen, auf einen Proxy-Server übertragen werden, der auf der Cloud-basierten pythonanywhere.com-Plattform gehostet wird. Der Proxy-Server schreibt die empfangenen Daten unter Verwendung der Google-Authentifizierungspakete und der aus dem Schlüssel für das Google-Dienstkonto erstellten Anmeldeinformationen in das autorisierte Google Sheet. Das folgende Diagramm verdeutlicht diesen Prozess.

Datenfluss von Metatrader zu Proxy und zu Google Sheets

Dies ist eine der kostenlosen und sicheren Methoden zur Übertragung von Daten aus MetaTrader in Google Sheets. Nur auf die autorisierten Blätter wird von einem Proxy-Server zugegriffen, der entweder lokal oder auf einer geprüften und sicheren Cloud-Plattform wie pythonanywhere gehostet wird. 



Prozess zur Erstellung von Dienstkontenschlüssel 

Die Google Cloud Console verfügt über zahlreiche, kostenlose und sehr nützliche Funktionen. Googles Dienstkonto ist eines davon. Die Dienstkonten befindet sich im Abschnitt IAM & Admin wie unten gezeigt:

IAM & ADMIN Dienstkonten

Bevor Sie zur Verwaltung der Dienstkonten gehen, müssen Sie ein Projekt erstellen oder eines der bestehenden Projekte auswählen. Die Seite mit den Dienstkonten sieht wie folgt aus: Die Schaltfläche Dienstkonto erstellen befindet sich in der oberen Zeile.

Dienstkontoseite mit Schaltfläche zum Erstellen

Füllen Sie die erforderlichen Schritte im Abschnitt „Dienstkonto erstellen“ aus, und schon haben Sie eine E-Mail für ein Dienstkonto erstellt, die im folgenden Schritt als E-Mail für die Freigabeblätter verwendet wird. Das Feld für die Schlüssel-ID ist leer und kann auf der unten abgebildeten Detailseite für das erstellte Dienstkonto erstellt werden:

Erstellung von Schlüssel-IDs für Dienstkonten

Die Schaltfläche Schlüssel hinzufügen bietet Ihnen die Möglichkeit, einen Schlüssel zu erstellen und die Anmeldeinformationen im json oder p12-Format herunterzuladen. Wählen Sie das json-Format und die Datei wird automatisch heruntergeladen, die im Proxy-Server für die Authentifizierung verwendet wird.

Der nächste Schritt besteht darin, die Tabellen-Api für das Projekt zu aktivieren, die sich unter APIs & Services befindet (siehe unten), wo wir die Google Sheets-Api suchen und aktivieren müssen.

Tabellen-Api aktivieren

Google Sheets API aktivieren Seite auswählen

Der letzte Schritt besteht darin, die oben erstellte Dienstkonten-E-Mail in die gemeinsame Liste der Tabellen aufzunehmen, das im Proxy-Server für die Datenübertragung verwendet werden soll. 

Ich habe ein ausführliches Video zu diesem Vorgang im Abschnitt „Warum Google Sheet und Dienstkonten?“ oben verlinkt.



Proxy-Server-Programm 

Wenn Sie sich die Videos angesehen haben, die ich im obigen Abschnitt warum Proxy-Server in pythonanywhere.com geteilt habe, dann sollten Sie ein besseres Verständnis für die Codes haben, die ich im Folgenden erklären werde. Wir werden eine einfache Flask-Anwendung schreiben, die das Google-Sheet mit Hilfe von Google-Auth-Paketfunktionen und Service-Account-Schlüssel-Zugangsdaten aktualisieren wird.

Zunächst werden wir die notwendigen Bibliotheksfunktionen in unser Programm importieren

from flask import Flask, request, jsonify
from google.oauth2 import service_account
from googleapiclient.discovery import build

Die oben genannten Bibliotheken müssen mit pip installiert werden, wenn sie sich nicht in Ihrem System oder in Ihrer virtuellen Umgebung befinden. Ich habe sie auch in meinen Videos erklärt.

Als Nächstes müssen wir das Flask-Framework realisieren, damit wir später in unseren Programmen Api-Endpunkte (GET, POST, PUT, DELETE), Router und vieles mehr erstellen können. Dies geschieht in der folgenden Zeile.

app = Flask(__name__)

Im nächsten Schritt geben Sie den Speicherort der Datei credentials json an, die bei der Erstellung des Schlüssels für das Dienstkonto heruntergeladen wurde. Wir können den Umfang auch so definieren, dass er nur auf bestimmte Elemente, z. B. Blätter, beschränkt ist. Dann mit den Anmeldeinformationen und Umfang Anmeldeinformationen Objekt erstellt wird, die verwendet werden, wenn die Einleitung google api Client.

SERVICE_ACCOUNT_FILE = 'service_account.json'
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES
)

Der nächste Schritt ist die Definition einer POST-Api namens „update-sheet“.

@app.route('/update-sheet', methods=['POST'])
def update_sheet():

Normalerweise verwenden wir post api, um Daten an den Server zu senden. Außerdem übergeben wir Kopfzeilen, die Informationen über die Daten enthalten, damit der Server die Daten leicht extrahieren kann.

data = request.json
sheet_id = data['sheet_id']
data_range = data['range']
values = data['values'] 

Im obigen Code ist request ein Flask-Objekt, das Informationen enthält, die vom Client in seiner Post-Anfrage übergeben wurden, die auch json-Daten enthält. Der obige Code extrahiert die Spreadsheet-ID, den Tabellenbereich und die Werte, die in die Tabelle geschrieben werden sollen.

Als Nächstes werden wir ein Google-Client-Api-Paket initiieren und das oben erstellte Credentials-Objekt übergeben.

service = build('sheets', 'v4', credentials=credentials)

Dieses Serviceobjekt wird verwendet, um die Tabelle zu aktualisieren, die durch die oben extrahierte sheet_id identifiziert wurde.

result = service.spreadsheets().values().update(spreadsheetId=sheet_id, range=data_range, valueInputOption='RAW', body={'values': values}).execute()

Der obige Code weist den Google-Api-Clientdienst an, die Aktualisierung der Kalkulationstabelle mit den übergebenen Werten im übergebenen Bereich auszuführen. Vollständiger Code mit append api ist für die weitere Untersuchung beigefügt, wo Sie zusätzliche append api und Code zu finden, um für Tabellennamen zu überprüfen und wenn es nicht existiert dann erstellen. Sie können weitere Api-Endpunkte hinzufügen, wenn Sie dies wünschen, wie z. B. Löschen und mehr.


MetaTrader-Programm 

Das eigentliche mq5-Programm enthält den Export von Terminalinformationen, Kontoinformationen, historischen Deals und Aufträgen sowie einen Eingabebereich, in dem die Nutzer auswählen können, welche Informationen übertragen werden sollen. Ich werde die Codes nur für Kontoinformationen erklären. In der folgenden Funktion verwenden wir die Header-Datei AccountInfo.mqh, um Kontodaten zu extrahieren und die Daten in ein String-Array zu formatieren, das in der Funktion StringToCharArray verwendet wird, um ein Char-Array zu erstellen, wie es von der WebRequest-Netzwerkfunktion benötigt wird. 

#include <Trade\AccountInfo.mqh>
string GetAccountInfo() {
   CAccountInfo accountInfo;
   string account_info = "[\"symbol\", \"name\", \"currency\", \"company\", \"balance\", \"credit\", " +
      "\"profit\", \"equity\", \"margin\", \"login\", \"trade_mode\", \"leverage\", \"limit_orders\", \"margin_mode\"]";
   StringAdd(account_info, StringFormat(
      ", [\"%s\", \"%s\", \"%s\", \"%s\", \"%f\", \"%f\", \"%f\", \"%f\", \"%f\", \"%d\", \"%d\", \"%d\", \"%d\", \"%d\"]",
      Symbol(),
      accountInfo.Name(), accountInfo.Currency(), accountInfo.Company(),
      accountInfo.Balance(), accountInfo.Credit(), accountInfo.Profit(), accountInfo.Equity(), accountInfo.Margin(),
      accountInfo.Login(), accountInfo.TradeMode(), accountInfo.Leverage(), accountInfo.LimitOrders(),
      accountInfo.MarginMode()
   ));
   return account_info;
}

Die oben angegebene Funktion bereitet nur Daten für Kontoinformationen auf. Der beigefügte vollständige Code ProxyExport.mq5 enthält drei weitere Funktionen zur Aufbereitung von Terminalinformationen, historischen Geschäften und historischen Aufträgen. Nach der Vorbereitung der Daten senden wir sie an die folgende Funktion WriteToGoogleSheet, in der zusätzliche Zeichenkettenmanipulationen durchgeführt werden und SheetExporter aufgerufen wird.

void WriteToGoogleSheet(string terminalInfos, string historicalDeals, string historicalOrders, string accountInfos) {
   if(terminalInfos != NULL) {
      StringReplace(terminalInfos, "\\", "/");
      SheetExporter(terminalInfoName, terminalInfos);
   }
   if(historicalDeals != NULL) {
      SheetExporter(historyDealsName, historicalDeals);
   }
   if(historicalOrders != NULL) {
      SheetExporter(historyOrdersName, historicalOrders);
   }
   if(accountInfos != NULL) {
      SheetExporter(accountInfoName, accountInfos);
   } 
}

void SheetExporter(string sheetName, string data) {
   string headers = "Content-Type: application/json\r\n";
   char postData[], result[];
   string responseHeaders;
   string jsonDataWithSheetName = StringFormat("{\"spreadSheetId\": \"%s\", \"sheetName\": \"%s\", \"data\": [%s]}", spreadSheetId, sheetName, data);
  
   // Convert to char array
   StringToCharArray(jsonDataWithSheetName, postData, 0, StringLen(jsonDataWithSheetName), CP_UTF8);
   
   // Send POST request
   int res = WebRequest("POST", proxyServerUrl, headers, 5000, postData, result, responseHeaders);
   
   // Check response
   if(res != 200) {
     Alert("Account Infos not exported to Google Sheets returned error ", res, " and get last error is ", GetLastError());
   }
}

Die Funktion SheetExporter fügt spreadSheetId und sheetName zusätzlich zu den Daten in der json-Zeichenkette hinzu, die an den Proxy-Server gesendet wird. Zu beachten ist, dass wir die URL des Proxyservers in den Abschnitt „Webrequest für folgende URLs erlauben:“ eintragen müssen, der sich im Menü Tools -> Optionen befindet. Die gleiche Proxy-Server-URL muss in den folgenden Eingabebereich eingefügt werden.

Auswahl der Optionen bei der Ausführung des Skripts in MetaTrader

 

Demo des Datenflusses 

Folgen Sie dem Prozess, den ich oben im Abschnitt „Prozess zur Erstellung des Dienstkontenschlüssels“ erklärt habe, um Ihren Dienstkontenschlüssel zu erstellen und die json-Datei herunterzuladen, die für die Autorisierung des Proxy-Servers für das Tabellenblatt benötigt wird, in das die MetaTrader-Daten exportiert werden sollen. Dann können Sie entweder Ihren eigenen Proxy-Server betreiben oder pythonanywhere.com oder eine andere Plattform verwenden, mit der Sie vertraut sind, um den Code service_accounts_proxy.py auszuführen und die Aktualisierungs-Api gehostet zu bekommen. Denken Sie daran, dass Sie den Code nach Ihren Bedürfnissen ändern können.

Der letzte Schritt wäre die Kompilierung des Codes ProxyExport.mq5 und die Ausführung des ex5 in Ihrem Diagramm. Sie erhalten Optionen zur Auswahl der zu exportierenden Daten und Eingabeabschnitte für Ihre API- und Tabellenkalkulations-ID, ohne die der Export nicht funktionieren wird.

Ich habe versucht, alles zu erfassen, was mit dem Erstellen von Dienstkonten und Schlüsselzugangsdaten, der Aktivierung von Google Sheets für das Dienstkonto und der Freigabe von Google Sheets mit der E-Mail des Dienstkontos zu tun hat.

Konsolendienstkonten und Freigabe von Google Sheets

Ich habe versucht, alle notwendigen Dinge in pythonanywhere.com zu erfassen, die wir im folgenden Gif befolgen müssen.

pythonanywhere-Schritte zum Nachmachentitlealtpythonanywhere-Schritte zum Nachmachenalt

Und ich habe versucht, alle Schritte zu erfassen, die in MetaEditor und MetaTrader durchgeführt werden müssen, damit der Export funktioniert. Und ich habe die automatische Übertragung von MetaTrader-Informationen an Google Sheet live im folgenden Gif festgehalten.

Metatrader-Export zum Proxy und zum Sheet


Einblicke in den Handel mit Google Sheet

Ich habe die folgenden historischen Handelsdaten in Google Sheet exportiert. Ich habe nur 9 Zeilen aufgenommen.

Historische Dealtabelle

Der Pips-Wert wird berechnet als (Ausstiegskurs - Einstiegskurs) * Multiplikator, wobei der Multiplikator 100 für das JPY-Paar ist, sonst 10000, der Gewinnwert wird berechnet als Pips * Lotgröße * 10 und der kumulative Gewinn wird berechnet als (vorheriger kumulativer Gewinn + aktueller Gewinn)

Der Name der obigen Tabelle ist History_Deals, so wie ich es kodiert habe. Sie können je nach Bedarf wechseln. Dann können wir ein weiteres Tabellenblatt erstellen, es als Matrizen bezeichnen und Beschriftungen und Formeln wie unten beschrieben erstellen.

Label Formeln
Total Trades
=COUNTA(History_Deals!A2:A)
Winning Trades
=COUNTIF(History_Deals!K2:K,">0")
Handelsgeschäfte mit Verlust
=COUNTIF(History_Deals!K2:K,"<0")
Win Rate %
=FIXED(B2/A2 * 100, 2)
Loss Rate %
=FIXED(C2/A2 * 100, 2)
Average Win
=FIXED(AVERAGEIF(History_Deals!K2:K,">0"), 2)
Average Loss =FIXED(AVERAGEIF(History_Deals!K2:K,"<0"), 2)
Risk-Reward Ratio
=FIXED(F2/ABS(G2), 2)
Expectancy
=FIXED((D2/100*F2)-(E2/100*G2), 2)
Total Profit
=SUM(History_Deals!K2:K)
Profit Factor
=SUMIF(History_Deals!K2:K,">0")/ABS(SUMIF(History_Deals!K2:K,"<0"))
Maximaler Drawdown
=MIN(History_Deals!L2:L)-MAX(FILTER(History_Deals!L2:L,History_Deals!L2:L<MIN(History_Deals!L2:L)))

Lassen Sie mich die in der obigen Tabelle verwendeten Matrizen kurz erläutern.

  • Total Trades ist die Gesamtzahl der erfolgreich abgeschlossenen Handelsgeschäfte. Eine größere Gesamtzahl von Handelsgeschäfte bedeutet zuverlässige und genaue Statistiken.
  • Winning Trades ist die Anzahl der Handelsgeschäfte, die mit Gewinn abgeschlossen wurden. Diese Zahl gibt die Anzahl Ihrer richtigen Entscheidungen an.
  • Losing Trades ist die Anzahl der Handelsgeschäfte, die mit Verlust abgeschlossen wurden. Diese Zahl gibt die Anzahl Ihrer Fehlentscheidungen an.
  • Win Rate in % ist die Rentabilitätsrate und die Loss Rate in % ist die Rate, mit der Ihre Handelsgeschäfte mit Verlusten abgeschlossen wurden. Es ist wichtig zu wissen, dass eine höhere Win Rate nicht immer gleichbedeutend ist mit einer Profitabilität. Händler können selbst bei einer Gewinnquote von 30-40 % mit einem korrekten Risiko-Ertrags-Verhältnis profitabel sein.
  • Average Win und Average Loss sind die Zahlen, die zeigen, wie viel Sie gewinnen, wenn Sie richtig liegen, und wie viel Sie verlieren, wenn Sie falsch liegen. Wir haben eine Strategie entwickelt, mit der der durchschnittliche Verlust immer niedrig bleibt.
  • Risk-Reward Ratio ist das Verhältnis zwischen durchschnittlichem Gewinn und durchschnittlichem Verlust. Die Devise der Händler sollte sein, dass sie immer größer als 1 ist. Als goldene Regel gilt ein Verhältnis von 1,5 bis 2:1.
  • Die Erwartungshaltung ist der durchschnittliche Gewinn pro Handel. Wenn dieser Wert zum Beispiel 20 beträgt, verdienen Sie bei 100 Handelsgeschäften 2000.
  • Der Gesamtgewinn ist die Summe aller Gewinne und Verluste. 
  • Der Gewinnfaktor ist die Zahl, die die Gesamtrentabilität angibt. Händler sollten immer versuchen, einen Wert von über 1,5 zu erreichen.
  • Max Drawdown der größte Rückgang des kumulierten Gewinns vom Höchststand aus, den Händler immer so gering wie möglich halten sollten.

Nach Anwendung aller Formeln erhalten wir die folgende Tabelle.

Total Trades Winning Trades Handelsgeschäfte mit Verlust Win Rate % Loss Rate % Average Win Average Loss Risk-Reward Ratio Expectancy Total Profit Profit Factor Maximaler Drawdown
9 7 2 77.78 22.22 285.71 -400.00 0.71 311.11 1200 2.5 200

Wir können die Gesundheit und Beständigkeit unseres Handels erkennen, indem wir den kumulierten Gewinn in einem Liniendiagramm darstellen, indem wir auf Einfügen → Chart → Linienchart gehen und den kumulierten Gewinn auf der vertikalen Achse und das Abschlussdatum auf der horizontalen Achse wählen.

Kapitaltabelle

Wir können auch in einem Tortendiagramm (siehe unten) Gewinn- und Verlustgeschäfte vergleichen.

Kuchendiagramm von Gewinn- und Verlustgeschäften

Wir können die Leistung der einzelnen Paare auch anhand des nachstehenden Säulendiagramms sehen.

Paar-Performance im Säulendiagramm

Wir können eine Menge solcher Dinge in Google Sheets tun.


Schlussfolgerung

Händler können diese Lösung nutzen, um ihre MetaTrader-Daten mühelos und sicher in Google Sheet zu transportieren und von den Google Sheets-Visualisierungstools zu profitieren. Dies ist eine Lösung, um unsere MetaTrader-Daten für die Journalführung oder weitere Analysen in Google Sheets zu exportieren, indem wir frei verfügbare Lösungen nutzen. Dieser Artikel hat gezeigt, wie man einen eigenen Proxyserver oder eine Cloud-basierte Lösung wie pythonanywhere.com nutzen kann. Cloud-basierte Lösungen sind immer sicher und skalierbar. Es wurde versucht, das MetaTrader-Programm zu modularisieren, um die Flexibilität bei der Auswahl zu erhöhen und sogar neue Funktionen wie Log-Daten für den Strategietester für weitere Analysen und vieles mehr hinzuzufügen.

Zusammenfassend lässt sich sagen, dass dieser Artikel ein weiteres Tool ist, das Händler und Entwickler nutzen können, um ihre MetaTrader-Daten zur weiteren Analyse zu übertragen und so bessere Handelsentscheidungen zu treffen.

Ich habe den Quellcode für den Proxy-Server und das MetaTrader-Skript beigefügt.

Dateiname Beschreibung
service_accounts_proxy.py Dies ist eine einfache Flask-Anwendung mit Update- und Append-Api.
ProxyExport.mq5 Dies ist eine MetaTrader-Anwendung mit Auswahlmöglichkeiten für die zu exportierenden Daten.

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/19175

Beigefügte Dateien |
ProxyExport.mq5 (9.99 KB)
Letzte Kommentare | Zur Diskussion im Händlerforum (2)
Chioma Obunadike
Chioma Obunadike | 28 Aug. 2025 in 09:30
Sie können dieselben Funktionen mit MQL ausführen, warum also Python verwenden?
Ramesh Maharjan
Ramesh Maharjan | 29 Aug. 2025 in 05:05
Chioma Obunadike #:
Kann die gleichen Funktionen mit MQL durchführen, warum Python verwenden?

können wir Google-Bibliotheken verwenden, wie ich in Python-Server in MQL verwendet? Wenn es möglich ist, dann teilen Sie bitte den Link auf, wie es in MQL getan werden kann. Ich würde dankbar sein, den neuen Weg.

Entwicklung eines individuellen Indikators für die Marktstimmung Entwicklung eines individuellen Indikators für die Marktstimmung
In diesem Artikel entwickeln wir einen nutzerdefinierten Indikator für die Marktstimmung, um die Bedingungen in aufwärts, abwärts, mehr und weniger Risiko oder neutral zu klassifizieren. Durch die Verwendung von mehreren Zeitrahmen kann der Indikator Händlern eine klarere Perspektive der allgemeinen Markttendenz und der kurzfristigen Bestätigungen bieten.
Chart-Synchronisation für eine einfachere technische Analyse Chart-Synchronisation für eine einfachere technische Analyse
Die Chart-Synchronisierung für eine einfachere technische Analyse ist ein Tool, das sicherstellt, dass alle Chart-Zeitrahmen für ein einzelnes Symbol konsistente grafische Objekte wie Trendlinien, Rechtecke oder Indikatoren über verschiedene Zeitrahmen hinweg anzeigen. Aktionen wie Schwenken, Zoomen oder Symbolwechsel werden in allen synchronisierten Charts gespiegelt, sodass Händler nahtlos denselben Preisaktionskontext in mehreren Zeitrahmen anzeigen und vergleichen können.
Vom Neuling zum Experten: Detaillierte Handelsberichte mit Reporting EA beherrschen Vom Neuling zum Experten: Detaillierte Handelsberichte mit Reporting EA beherrschen
In diesem Artikel befassen wir uns mit der Verbesserung der Details von Handelsberichten und der Übermittlung des endgültigen Dokuments per E-Mail im PDF-Format. Dies stellt eine Weiterentwicklung unserer bisherigen Arbeit dar, da wir weiterhin erforschen, wie wir die Leistungsfähigkeit von MQL5 und Python nutzen können, um Handelsberichte in den bequemsten und professionellsten Formaten zu erstellen und zu planen. Nehmen Sie an dieser Diskussion teil und erfahren Sie mehr über die Optimierung der Erstellung von Handelsberichten innerhalb des MQL5-Ökosystems.
Automatisieren von Handelsstrategien in MQL5 (Teil 29): Erstellung eines Preisaktionssystems mit dem harmonischen Muster von Gartley Automatisieren von Handelsstrategien in MQL5 (Teil 29): Erstellung eines Preisaktionssystems mit dem harmonischen Muster von Gartley
In diesem Artikel entwickeln wir ein System des Gartley-Musters in MQL5, das harmonische Auf- und Abwärtsmuster von Gartley mit Hilfe von Umkehrpunkten und Fibonacci-Verhältnissen identifiziert und Handelsgeschäfte mit präzisen Einstiegs-, Stop-Loss- und Take-Profit-Levels ausführt. Wir verbessern den Einblick des Händlers mit visuellem Feedback durch Chart-Objekte wie Dreiecke, Trendlinien und Beschriftungen, um die XABCD-Musterstruktur klar darzustellen.