Integration externer Anwendungen mit MQL5 Community OAuth
Inhalt:
Einführung
Für jeden registrierten Nutzer der MQL5-Community gibt es zahlreiche Vorteile. Diese Plattform ist eine zentrale Anlaufstelle für algorithmische Händler, sowohl für Anfänger als auch für Experten, und ist für Millionen von Händlern weltweit zugänglich. Kürzlich entdeckte ich eine unglaubliche Funktion, die allen registrierten Nutzern zur Verfügung steht: Im Bereich „Apps“ Ihres MQL5-Profils können Sie OAuth (Open Authorization) für Ihre externen Anwendungen konfigurieren. Nachdem ich mich mit der Komplexität der Integration dieser Komponenten auseinandergesetzt hatte, beschloss ich, diesen Artikel als vereinfachte Anleitung zu verfassen. Neben der technischen Implementierung werden Sie eine Funktion entdecken, die Sie vielleicht übersehen haben, und wertvolle Einblicke in die Integration von Android-Anwendungen mit MQL5 gewinnen.

Abb. 1. Beziehungsdiagramm für externe App-Eigentümer und MQL5-Nutzer
Warum MQL5-Autorisierung bevorzugen?
Gezielter Zugang zu Ihrem idealen Zielpublikum
Als MQL5-Entwickler ist Ihr primäres Zielpublikum die MQL5-Gemeinschaft selbst. Durch die Verwendung von MQL5 OAuth nutzen Sie eine Plattform, die speziell für Händler, Entwickler und Finanzanalysten entwickelt wurde. Dieser fokussierte Ansatz vermeidet die Ablenkungen durch allgemeine soziale Netzwerke.
Spezialisiertes Händler-Targeting vs. allgemeine soziale Netzwerke
Im Gegensatz zur Google- oder Facebook-Authentifizierung, die allgemeine Nutzerdaten liefern, liefert MQL5 OAuth spezielle Informationen über die Handelskompetenz eines Nutzers. Sie erhalten Zugang zu ihren:
- MQL5 Rang (Anfänger, Fortgeschrittener, Profi, Expert Advisor Entwickler)
- Reputationspunkte durch Beiträge zur Gemeinschaft
- Veröffentlichte Produkte auf dem MQL5-Markt
- Handelserfahrung und Spezialisierung
- Aktivität im Forum und Ansehen in der Gemeinschaft
Diese speziellen Daten ermöglichen es, deutlich individuellere Nutzererlebnisse zu schaffen, mit denen allgemeine Plattformen nicht mithalten können.
Unmittelbare Bewertung der Glaubwürdigkeit
Wenn sich ein Nutzer mit seinem MQL5-Konto authentifiziert, erhalten Sie sofort Einblick in seine Glaubwürdigkeit innerhalb der Handelsgemeinschaft. Ein Nutzer mit hohen Reputationspunkten und mehreren veröffentlichten Produkten stellt ein ernsthaftes, investiertes Community-Mitglied dar – eine wertvolle Information für Anwendungen, die Vertrauen und Fachwissen erfordern.
Aufbau des richtigen Kundenstamms
Durch die Implementierung von MQL5 OAuth filtern Sie Ihren Nutzerstamm natürlich auf diejenigen, die sich für Handel und Finanztechnologie interessieren. Dies führt zu:
- Höhere Qualität der Nutzerinteraktionen
- Mehr relevantes Feedback für Ihre Anwendung
- Erhöhtes Potenzial zur Monetarisierung
- Geringere Supportkosten (die Nutzer sind bereits mit den technischen Konzepten vertraut)
Diese speziellen Daten ermöglichen es, deutlich individuellere Nutzererlebnisse zu schaffen, mit denen allgemeine Plattformen nicht mithalten können.
Unmittelbare Bewertung der Glaubwürdigkeit
Wenn sich ein Nutzer mit seinem MQL5-Konto authentifiziert, erhalten Sie sofort Einblick in seine Glaubwürdigkeit innerhalb der Handelsgemeinschaft. Ein Nutzer mit hohen Reputationspunkten und mehreren veröffentlichten Produkten stellt ein ernsthaftes, investiertes Community-Mitglied dar – eine wertvolle Information für Anwendungen, die Vertrauen und Fachwissen erfordern.
Aufbau des richtigen Kundenstamms
Durch die Implementierung von MQL5 OAuth filtern Sie Ihren Nutzerstamm natürlich auf diejenigen, die sich für Handel und Finanztechnologie interessieren. Dies führt zu:- Höhere Qualität der Nutzerinteraktionen
- Mehr relevantes Feedback für Ihre Anwendung
- Erhöhtes Potenzial zur Monetarisierung
- Geringere Supportkosten (die Nutzer sind bereits mit den technischen Konzepten vertraut)
Einschränkungen und Grenzen
Das MQL5 OAuth-System ist zwar leistungsstark, hat aber auch seine Grenzen:
- Nischenpublikum: Nur Nutzer mit MQL5-Konten können sich authentifizieren
- Begrenzte Scope-Optionen: Im Vergleich zu den großen Plattformen ist der verfügbare Datenumfang stärker eingeschränkt.
- Community-zentriert: Am besten geeignet für Anwendungen im Bereich Handel/Fintech.
- Besonderheiten mobiler Anwendungen: Erfordert eine sorgfältige Implementierung für Android/iOS-Anwendungen.
- Lücken in der Dokumentation: Einige Details der Implementierung erfordern möglicherweise Experimente.
Verstehen von MQL5 Community OAuth
Wie es funktioniert: Der technische Ablauf
MQL5 implementiert das OAuth-2.0-Autorisierungsframework mit diesen Schlüsselendpunkten:- Autorisierungsendpunkt: https://www.mql5.com/en/oauth/login
- Token-Endpunkt: https://www.mql5.com/api/oauth/access_token
- Nutzer-Endpunkt: https://www.mql5.com/api/oauth/user_info
Der Ablauf folgt dem Standard-Autorisierungscode-Muster von OAuth 2.0:
- Der Nutzer klickt in Ihrer Anwendung auf „Mit MQL5 anmelden“.
- Weiterleitung auf die MQL5-Autorisierungsseite.
- Der Nutzer authentifiziert sich und erteilt Berechtigungen.
- MQL5 leitet den Nutzer mit dem Autorisierungscode zurück zu Ihrer Anwendung.
- Der Code wird gegen ein Access Token ausgetauscht.
- Mit dem Token werden anschließend Profildaten abgerufen.
Schlüsselkomponenten für Entwickler
- Client ID: Eindeutiger Identifikator für Ihre Anwendung
- Client Secret: Vertraulicher Schlüssel für den Token-Austausch (muss geschützt werden)
- Redirect URI: Wohin Nutzer nach der Autorisierung zurückkehren
- Scopes: Definieren Sie, auf welche Nutzerdaten Ihre Anwendung zugreifen kann
Überlegungen zur Sicherheit
- Verwenden Sie immer HTTPS für alle Endpunkte.
- Speichern Sie das Client-Secret sicher (niemals in clientseitigem Code).
- Implementieren Sie CSRF-Schutz mithilfe von State-Parametern.
- Alle Redirect-URIs validieren.
- Implementieren Sie geeignete Mechanismen zur Speicherung und Aktualisierung von Tokens.
Umsetzung
Schritt 1: Registrieren Sie Ihre Anwendung
1. Navigieren Sie zu Ihrem MQL5-Kontoprofil → Community → Apps

Abb. 2. Zugriff auf Apps in Ihrem MQL5.community-Profil
2. Klicken Sie auf „Add New Application“.
3. Geben Sie an:
- Application Name: Beschreibender Name für Ihre Anwendung
- Main Page URL: Die Website Ihrer Anwendung
- Redirect URI: Ihr OAuth-Callback-Endpunkt
4. Speichern Sie, um Ihre Client-ID und Ihr Client-Secret zu erhalten.
Bevor wir in den Code eintauchen, ist es wichtig zu verstehen, welche Teile des Android-Projekts für die Integration von MQL5 Community OAuth tatsächlich wichtig sind.
Einige Leser werden das angehängte Projekt direkt in Android Studio öffnen, während andere – die bereits mit Kotlin und Android vertraut sind – es vielleicht vorziehen, mit einem neuen Empty Activity Projekt zu beginnen und die Implementierung im Vergleich anzupassen. Beide Ansätze funktionieren.
Ziel ist es hier nicht, die Android-Entwicklung zu lehren, sondern zu zeigen, wie eine Android-Anwendung am MQL5-Community-Authentifizierungsfluss teilnimmt und erfolgreich eine OAuth-Anmeldung initiieren kann.
Für alle, die neu in der Android-Entwicklung sind: Machen Sie sich keine Sorgen, dass Sie jeden Aspekt beherrschen. Android Studio verfügt über eine ausgezeichnete Dokumentation, und es gibt zahlreiche kostenlose Online-Ressourcen. Der eigentliche Wert liegt hier im Verständnis des Authentifizierungsmusters – wie MQL5 OAuth funktioniert und wie es sich von Anmeldungen in allgemeinen sozialen Netzwerken unterscheidet. Die Konzepte, die Sie lernen, gelten für jede OAuth-Integration, jedoch mit dem einzigartigen Vorteil, dass Sie auf spezielle Händlerdaten zugreifen können.
Um die nachstehende Aufschlüsselung der Code-Implementierung leicht nachvollziehbar zu machen, bilden die folgenden Dateien den Kern des Projekts. Dies sind die Dateien, auf die Sie sich konzentrieren sollten, wenn Sie das Projekt starten und die folgenden Erläuterungen lesen.
| Quelldatei | Speicherort im Projekt | Beschreibung: |
|---|---|---|
| MainActivity.kt | app/src/main/java/ / | Haupteinstiegspunkt der App; startet die App und wendet das Design an. |
| OAuthConfig.kt | app/src/main/java/ /util/ | enthält MQL5 OAuth Endpunkte, Redirect URL und Client ID für die MQL5 Community Anmeldung. |
| LoginActivity.kt | app/src/main/java/ /ui/login/ | wickelt den Anmeldevorgang ab; öffnet die MQL5-Anmeldeseite, verarbeitet Umleitungen und erfasst den Autorisierungscode. |
| activity_login.xml | app/src/main/res/layout/ | definiert das Layout des Anmeldebildschirms mit einer Schaltfläche „Sign in with MQL5“, um den OAuth-Ablauf zu starten. |
| AndroidManifest.xml | app/src/main/ | kritische Konfigurationsdatei; deklariert die Internetberechtigung und das OAuth-Umleitungsschema (mql5profile://oauth). |
| Theme.kt | app/src/main/java/ /ui/theme/ | definiert app-weite Designeinstellungen für ein einheitliches visuelles Styling. |
| styles.xml | app/src/main/res/values/ | enthält Design- und Stildefinitionen, um ein einheitliches Erscheinungsbild auf allen Bildschirmen zu gewährleisten. |
1. Zentralisierte OAuth-Konfiguration (OAuthConfig.kt)
Betrachten Sie diese Konfigurationsdatei als das Regelwerk dafür, wie Ihre App mit dem OAuth-System von MQL5 kommuniziert. Hier definieren Sie alle Endpunkte und Bezeichner an einem organisierten Ort.
Diese Struktur ist wichtig, da professionelle OAuth-Anbieter (Google, GitHub usw.) dasselbe Muster verwenden. Indem wir unsere Konfiguration auf diese Weise organisieren, behandeln wir MQL5 Community OAuth als ein erstklassiges Authentifizierungssystem, was es für Handelsanwendungen auch wirklich ist.
Im Gegensatz zu Anmeldungen in sozialen Netzwerken, die Ihnen allgemeine Daten liefern, sind diese Endpunkte speziell für das MQL5-Ökosystem konzipiert. Die USER_URL liefert nicht nur grundlegende Profilinformationen, sondern auch Handelsreputation, Rang und berufliches Ansehen – Daten, die für Fintech-Anwendungen Gold wert sind.
Kotlin-Code:
package com.clemencebenjamin.mql5profileviewer.util object OAuthConfig { const val CLIENT_ID = "YOUR_MQL5_CLIENT_ID" const val REDIRECT_URI = "https://your-domain.com/callback.php" const val AUTH_URL = "https://www.mql5.com/en/oauth/login" const val TOKEN_URL = "https://www.mql5.com/api/oauth/access_token" const val USER_URL = "https://www.mql5.com/api/oauth/user_info" }
2. Layout des Anmeldebildschirms (activity_login.xml)
OAuth funktioniert am besten, wenn der Einstiegspunkt absichtlich und reibungslos ist. Dieses minimale Design sagt den MQL5-Nutzern: „Hier ist Ihre professionelle MQL5-Identität direkt nutzbar“
Wenn ein Händler „Sign in with MQL5“ anstelle von generischen sozialen Schaltflächen sieht, erkennt er, dass diese App seine Welt versteht. Das ist so, als würde man einem Piloten ein Cockpit statt eines Armaturenbretts zeigen – sofortiges Erkennen und Vertrauen.
Keine lokale Kontoerstellung bedeutet für MQL5-Nutzer keinerlei Reibungsverluste. Sie haben bereits in ihre MQL5-Identität investiert; warum sollten sie eine weitere schaffen?
XML-Code:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:padding="24dp"> <ImageView android:layout_width="120dp" android:layout_height="120dp" android:src="@mipmap/ic_launcher"/> <Button android:id="@+id/btnLogin" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Sign in with MQL5" android:layout_marginTop="24dp"/> </LinearLayout>
3. Android-Manifest (MainActivity.kt)
Das Manifest ist der Konfigurationsentwurf von Android. Hier teilen wir Android zwei entscheidende Dinge mit: „Diese App benötigt Internetzugang“ und „So gehen Sie mit OAuth-Callbacks um“.
xml-Code:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.MQL5ProfileViewer"> <activity android:name=".ui.login.LoginActivity" android:exported="true" android:launchMode="singleTop"> <!-- App Launcher --> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <!-- OAuth Redirect --> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="mql5profile" android:host="oauth"/> </intent-filter> </activity> </application> </manifest>
Dieser Intent-Filter mit mql5profile://oauth ist der private Handshake unserer App mit dem MQL5 OAuth-System. Nach der Nutzerauthentifizierung auf MQL5.com erfolgt die Weiterleitung an diese Adresse, und Android weiß, dass es die App aufwecken und den Autorisierungscode weitergeben muss.
Dieses Muster spiegelt wider, wie professionelle Fintech-Anwendungen die Authentifizierung handhaben – sicher, kontrolliert und nutzerfreundlich.
4. OAuth Flow Controller (LoginActivity.kt)
Diese Aktivität ist der Ort, an dem die Magie geschieht. Sie orchestriert den gesamten OAuth-Ablauf zwischen Ihrer Anwendung und den Servern von MQL5.
Kotlin-Code:
package com.clemencebenjamin.mql5profileviewer.ui.login import android.content.Intent import android.os.Bundle import android.widget.Button import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.browser.customtabs.CustomTabsIntent import androidx.core.net.toUri import com.clemencebenjamin.mql5profileviewer.R import com.clemencebenjamin.mql5profileviewer.util.OAuthConfig class LoginActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_login) findViewById<Button>(R.id.btnLogin).setOnClickListener { startOAuth() } } private fun startOAuth() { val uri = OAuthConfig.AUTH_URL.toUri().buildUpon() .appendQueryParameter("client_id", OAuthConfig.CLIENT_ID) .appendQueryParameter("redirect_uri", OAuthConfig.REDIRECT_URI) .appendQueryParameter("response_type", "code") .build() CustomTabsIntent.Builder() .build() .launchUrl(this, uri) } override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) val code = intent?.data?.getQueryParameter("code") if (code != null) { Toast.makeText(this, "MQL5 authentication successful", Toast.LENGTH_SHORT).show() // Next step: exchange code for access token on backend } } }
Den Fluss verstehen:
- Der Nutzer klickt → Die App konstruiert die MQL5-Autorisierungs-URL mit Ihrer CLIENT_ID.
- CustomTabs öffnet sich → Der Nutzer sieht die bekannte MQL5-Anmeldeseite (Vertrauen!).
- Der Nutzer authentifiziert sich → MQL5 fragt: „Allow this app to access your profile?“
- Umleitung zurück → MQL5 sendet einen Autorisierungscode an Ihre REDIRECT_URI
- App empfängt Code → Die Methode onNewIntent fängt ihn ein
Derzeit ist unsere App erfolgreich:
- Sie öffnet die MQL5-Anmeldeseite,
- akzeptiert echte MQL5-Anmeldeinformationen,
- verarbeitet die Nutzerzustimmung und
- erhält einen gültigen OAuth-Autorisierungscode.
Dabei geht es nicht nur um die Technik, sondern auch um den Vertrauensaufbau bei den Nutzern. Wir nutzen das Vertrauen, das MQL5 genießt, um die Nutzer sofort einzubinden.
5. Compatibility() für das Design
Authentifizierungsabläufe reagieren empfindlich auf Fehler in der Nutzeroberfläche. Ein stabiles Design stellt sicher, dass das OAuth-Erlebnis nahtlos bleibt, auch wenn Android mehrere Aktivitäten und Intents verwaltet.
XML-Code:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.MQL5ProfileViewer" parent="Theme.AppCompat.DayNight.NoActionBar"/> </resources>
Wenn sich Nutzer authentifizieren, befinden sie sich in einem sensiblen Zustand – sie geben Anmeldedaten ein und erteilen Berechtigungen. Ein Flackern, ein Absturz oder eine optische Störung kann das Vertrauen beeinträchtigen. Dieses Design bietet die visuelle Stabilität, die eine professionelle Authentifizierung erfordert.
Wenn wir dies durch Google- oder Facebook-OAuth ersetzen würden, erhielten Sie allgemeine Daten. Mit MQL5 erhalten wir eine Handelsidentität – Name, Ruf und Profilbild. Damit wird unsere App von einer „weiteren Anmeldung“ zu einem „professionellen Tool für Händler“.
Serverseitige Komponente: Fertigstellung des MQL5 OAuth-Ablaufs
Während die Android-Anwendung erfolgreich die Authentifizierung einleitet und die Zustimmung des Nutzers erhält, endet OAuth nicht auf der Client-Seite. Um den Vorgang sicher abzuschließen, ist eine serverseitige Komponente erforderlich.
In diesem Abschnitt wird erklärt, warum ein Server notwendig ist, wie er in unser System passt und wie ein einfaches PHP-Callback-Skript den vollständigen MQL5 Community OAuth-Ablauf ermöglicht.
Warum ein Server erforderlich ist
Die OAuth-Authentifizierung ist absichtlich in zwei Stufen unterteilt:
1. Autorisierung (Client-seitig)
Die Android-App leitet den Nutzer zu MQL5 weiter, wo er sich anmeldet und Berechtigungen erteilt.
2. Token-Austausch (Server-seitig)
Der von MQL5 zurückgegebene Autorisierungscode muss gegen ein Access Token ausgetauscht werden, unter Verwendung von:
- einem Client-Secret,
- einer sicheren POST-Anfrage.
Warum dies nicht direkt in Android möglich ist:
- Client-Secrets dürfen niemals in mobile Anwendungen eingebettet werden.
- Android-Anwendungen lassen sich leicht dekompilieren.
- OAuth-Anbieter (einschließlich MQL5) sind darauf ausgelegt, der Server-zu-Server-Kommunikation zu vertrauen.
Der Server fungiert also als vertrauenswürdiger Vermittler zwischen
- der Android-Anwendung und
- der MQL5 OAuth-Infrastruktur.
Wie sich der Server in unsere Architektur einfügt
Der gesamte Ablauf sieht nun wie folgt aus:
- Die Android-App leitet den Nutzer zur MQL5-Anmeldung weiter.
- Der Nutzer meldet sich an und erteilt die Berechtigung.
- MQL5 leitet auf unsere PHP-Callback-URL um.
- Der PHP-Server tauscht den Autorisierungscode gegen ein Access Token aus.
- Der PHP-Server leitet über einen Deep Link zurück zu Android.
- Die Android-App wird mit authentifiziertem Kontext fortgesetzt.
Dieses Design spiegelt wider, wie professionelle OAuth-Integrationen in Produktionssystemen implementiert werden.
Kostenlose PHP-Hosting-Optionen für OAuth-Prototypen
Zur Veranschaulichung des Konzepts haben wir kostenlose PHP-Hosting-Dienste untersucht, die sich für das Erlernen und die Erstellung von Prototypen eignen.
Gängige kostenlose Optionen:
- InfinityFree
- ByetHost
- AwardSpace
- Atwebpages (zu Demonstrationszwecken verwendet)
- Localhost + Ngrok (zum Testen)
Wichtiger Hinweis:
Einige kostenlose Hosting-Anbieter schränken ausgehende POST-Anfragen ein, was den Token-Austausch blockieren kann. Dies bedeutet nicht, dass die Implementierung ungültig ist, sondern verdeutlicht nur die Grenzen des Hostings.
Trotzdem sind kostenlose Hosts immer noch wertvoll für:
- Nachweis der Machbarkeit von OAuth
- Validierung der Weiterleitung und des Zustimmungsflusses
- Demonstration des Integrationspotenzials von MQL5 Community
PHP OAuth Callback-Skript (Server-Logik)
Das folgende PHP-Skript stellt den serverseitigen OAuth-Handler dar.
Sie ist absichtlich minimal und konzentriert sich auf eine einzige Aufgabe: das Abschließen des OAuth-Handshakes.
Hinweis zur Handhabung von Zugangsdaten
In der Praxis ersetzen Sie die in Anführungszeichen gesetzten Platzhalter durch Werte aus dem Dashboard Ihrer MQL5-Gemeinschaftsanwendung. Zugangsdaten sollten niemals in öffentlichen Repositories abgelegt werden.
1. Abschnitt Konfiguration
In diesem Abschnitt werden die für die Kommunikation mit MQL5 erforderlichen OAuth-Anmeldeinformationen und -Endpunkte definiert.
PHP-Code:
<?php // =============================== // CONFIGURATION // =============================== $CLIENT_ID = "YOUR_MQL5_CLIENT_ID"; $CLIENT_SECRET = "YOUR_MQL5_CLIENT_SECRET"; $REDIRECT_URI = "https://your-domain.com/callback.php"; $TOKEN_URL = "https://www.mql5.com/api/oauth/access_token";
Zweck:
- Identifiziert Ihre Anwendung mit MQL5
- Ermöglicht sicheren Token-Austausch
- Hält OAuth-Parameter zentralisiert
2. Empfang des Autorisierungscodes
Nachdem sich der Nutzer angemeldet und den Zugriff genehmigt hat, leitet MQL5 zu diesem Skript mit einem temporären Autorisierungscode zurück.
PHP-Code:
// =============================== // STEP 1: GET AUTH CODE // =============================== if (!isset($_GET['code'])) { die("Authorization code not found."); } $code = $_GET['code'];
Dies bestätigt:
- Der Nutzer hat sich erfolgreich authentifiziert
- Die Berechtigungen wurden erteilt
- Der OAuth-Prozess hat den Server sicher erreicht
3. Code gegen Zugangstoken austauschen
Dies ist der wichtigste Schritt bei OAuth.
Der Server sendet eine POST-Anfrage an MQL5 mit
- Client ID.
- Client secret.
- Berechtigungscode.
- Redirect URI.
// =============================== // STEP 2: EXCHANGE CODE FOR TOKEN // =============================== $postData = [ 'grant_type' => 'authorization_code', 'client_id' => $CLIENT_ID, 'client_secret' => $CLIENT_SECRET, 'code' => $code, 'redirect_uri' => $REDIRECT_URI ]; $ch = curl_init($TOKEN_URL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData)); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true); if (!isset($data['access_token'])) { die("Token exchange failed: " . htmlspecialchars($response)); } $accessToken = $data['access_token'];
Warum dies auf dem Server laufen muss:
- Sie verwendet vertrauliche Anmeldedaten.
- Es muss sich um eine vertrauenswürdige Server-zu-Server-Kommunikation handeln.
- Außerdem entspricht es dem OAuth-Sicherheitsdesign.
4. Umleitung zurück zu Android
Sobald das Token erhalten wurde, leitet der Server über einen Deep Link zurück zur Android-App.
PHP-Code:
// =============================== // STEP 3: REDIRECT BACK TO ANDROID // =============================== $androidRedirect = "mql5profile://oauth?token=" . urlencode($accessToken); header("Location: $androidRedirect"); exit;
Ergebnis:
- Android setzt die Ausführung fort.
- Die App läuft nun im authentifizierten Kontext.
- Die Profildaten können in weiteren Schritten abgeholt werden.
Beobachtungen und Einschränkungen beim Hosting
- Während der Umsetzung haben wir festgestellt, dass einige kostenlose Hosting-Dienste:
- erfolgreich Weiterleitungen und Autorisierung abwickeln,
- eingehende Anfragen von MQL5 annehmen und
- ausgehende POST-Anfragen blockieren, um den Austausch von Token zu verhindern.
Dies ist kein Versagen, sondern ein Beweis für die Stärke der Architektur:
Nach der Bereitstellung auf einem kompatiblen Hosting-Dienst schließt derselbe Code den OAuth-Zyklus ohne Änderungen ab.
Wichtigste Erkenntnisse
Die serverseitige Komponente ist in OAuth nicht optional – sie ist eine grundlegende Sicherheitsanforderung.
Selbst mit den Einschränkungen des kostenlosen Hostings haben wir erfolgreich validiert:
- MQL5 OAuth-Anmeldung
- Erteilung der Berechtigungen
- Zustellung des Autorisierungscodes
- End-to-End-Systementwurf
Dies bestätigt, dass externe Anwendungen Nutzer zuverlässig mit MQL5-Community-Identitäten authentifizieren können, wodurch sich leistungsstarke Möglichkeiten für handelsorientierte Plattformen ergeben.
Tests
Für die Bereitstellung der Anwendung musste das Projekt erstellt und auf einem virtuellen Gerät gestartet werden. Der Build wurde erfolgreich abgeschlossen, die App lief wie erwartet, und die Ergebnisse sind in den nebenstehenden Screenshots zu sehen.

Abb. 3. Test der Anmeldung über die MQL5-Community
Die folgenden drei Bilder zeigen Screenshots des Anwendungsablaufs. Das erste Bild zeigt die Hauptseite der App. Die zweite erscheint nach Auswahl der Schaltfläche „Mit MQL5 anmelden“, wo die MQL5-Authentifizierungsseite angezeigt wird. Nach Eingabe eines gültigen Nutzernamens und Kennworts ruft die App den echten Namen des registrierten Nutzers ab und zeigt ihn an – in diesem Fall meinen eigenen.
Die Auswahl von Weiter würde normalerweise den Backend-Token-Austauschprozess mit dem Server auslösen, der den PHP-Callback hostet. In dieser Demonstration sind wir jedoch nicht weiter vorgegangen, da die vorgeschlagene Serverumgebung die HTTPS-Anforderungen von MQL5 nicht vollständig erfüllte. Daraufhin hat der Authentifizierungsprozess eine Antwort zurückgegeben, die unmittelbar unter diesen Bildern erläutert wird.

Abb. 4. Die Startseite der Anwendung

Abb. 5. Die Anmeldeseite nach Auswahl von „Sign in with MQL5“

Abb. 6. Wählen Sie nach Eingabe der korrekten MQL5-Anmeldedaten „Weiter (gemäß Ihrem Benutzernamen)“, um zur Autorisierungsseite zu gelangen
Die folgenden Informationen erhalte ich, wenn ich die Schaltfläche „Weiter“ anklicke:
Token exchange failed:
405 Method Not Allowed Dieser Fehler trat nach einer erfolgreichen Anmeldung während des Backend-Schrittes auf, bei dem der PHP-Server versucht, den Autorisierungscode gegen ein Access Token unter Verwendung des Token-Endpunktes von MQL5 auszutauschen.
Was der Fehler bedeutet:
Eine 405-Fehlerantwort zeigt an, dass der Server die Anfrage zwar erhalten, aber abgelehnt hat, weil die verwendete HTTP-Methode für diesen Endpunkt nicht zulässig ist. In diesem Fall hat der Token-Endpunkt die Anfrage abgelehnt, bevor ein Token ausgegeben werden konnte.
Dies geschieht in der Regel aus einem oder mehreren der folgenden Gründe:
1. Falsche Anfragemethode
- Der MQL5-Token-Endpunkt erfordert unbedingt eine POST-Anfrage.
- Wenn die Hosting-Umgebung POST-Anfragen blockiert oder umschreibt, wird der Austausch fehlschlagen.
2. Einschränkungen beim Hosting
- Einige kostenlose Hosting-Provider beschränken ausgehende HTTPS-POST-Anfragen oder die Verwendung von cURL.
- Andere wiederum blockieren aus Sicherheitsgründen Anfragen an externe APIs.
3. Probleme mit der HTTPS-Konformität
- MQL5 OAuth erfordert einen gültigen HTTPS-Callback.
- Fehlt das Zertifikat, ist es schwach oder nicht vertrauenswürdig, kann die Anfrage serverseitig bzw. vorgelagert abgewiesen werden.
Schlussfolgerung
In diesem Projekt haben wir erfolgreich demonstriert, wie MQL5 Community OAuth in externe Anwendungen integriert werden kann. Diese Anwendungen können web- oder mobilbasiert sein – in unserem Fall haben wir Android nur zu Demonstrationszwecken verwendet. Ein sauberes und funktionsfähiges Quellprojekt ist beigefügt, das Sie frei erforschen, erweitern und einsetzen können.
Um das Projekt auszuführen, müssen Sie Android Studio auf Ihrem Computer installiert haben und ein aktives MQL5 Community-Konto besitzen. Navigieren Sie in Ihrem MQL5-Profil-Dashboard zu Apps (auf der linken Seite) und erstellen Sie eine neue Anwendung. Sie müssen dabei Folgendes angeben:
- Der Name der Anwendung.
- Die URL der Hauptseite, die auf den Ort verweisen muss, an dem Ihr PHP-Callback-Skript gehostet wird
Sie werden feststellen, dass dieser Artikel nicht auf die Android-spezifische Entwicklung eingeht. Dies ist beabsichtigt. Hier geht es in erster Linie darum, Vertrauen in das Konzept aufzubauen und zu zeigen, dass externe Anwendungen MQL5 Community OAuth zuverlässig nutzen können. Für tiefergehende Android-Kenntnisse gibt es eine Fülle von Dokumentationen und Lernmaterial im Internet.
Das beigefügte Projekt ist fehlerfrei und einsatzbereit, aber Sie müssen es noch anpassen. Dazu gehören:
- Ersetzen der Client-ID durch diejenige, die für Ihre eigene MQL5-Anwendung generiert wurde
- Konfigurieren der Server-URL, die Ihr OAuth-Callback-PHP-Skript hostet
- Sicherstellen, dass in der Android-App aus Sicherheitsgründen nur die Client-ID (niemals das Client-Secret) verwendet wird
Nach der Konfiguration erstellen Sie die Anwendung und führen sie aus, um den gesamten Ablauf von OAuth zu testen.
Bei den Backend-Servern müssen Sie eine Hosting-Lösung wählen, die nicht funktionsbeschränkt ist und HTTPS, ausgehende POST-Anfragen und OAuth-Workflows vollständig unterstützt. Für Anwendungen auf Produktionsebene wird dringend empfohlen, in ein sicheres und zuverlässiges Backend zu investieren.
Ich hoffe, dass diese kurze Grundlage als solider Ausgangspunkt für die Entwicklung von händlerzentrierten Anwendungen dient, die sich nahtlos in die MQL5-Community integrieren lassen. Solche Integrationen öffnen die Tür zur Erweiterung des Ökosystems und zur Stärkung des Entwicklernetzes für algorithmische Handelswerkzeuge.
Nachstehend finden Sie eine Tabelle mit den Anhängen. Prüfen Sie die Dateien sorgfältig und erkunden Sie sie in Ihrem eigenen Tempo.
Wenn Sie Fragen oder Anregungen haben, können Sie gerne eine Diskussion im Kommentarbereich unter diesem Artikel eröffnen, wo die Entwicklergemeinschaft immer bereit ist, zu helfen.
Bis zur nächsten Veröffentlichung, bleiben Sie sicher und bauen Sie weiter.
Anlagen
Die angehängten Dateien enthalten eine PHP-Callback-Quelle und das MQL5 Profile Viewer ZIP-Archiv. Entpacken Sie die ZIP-Datei, um auf das vollständige Android-Projekt zuzugreifen, die enthaltenen Dateien zu untersuchen und in der folgenden Tabelle eine kurze Beschreibung der einzelnen Komponenten zu finden.| Dateiname | Beschreibung |
|---|---|
| callback.php | Serverseitiges OAuth-Callback-Skript, das für den Empfang des Autorisierungscodes von der MQL5-Community, den sicheren Austausch gegen ein Access Token und die Weiterleitung des authentifizierten Ergebnisses zurück zur Android-Anwendung verantwortlich ist. Diese Datei muss auf einem HTTPS-fähigen Server gehostet werden. |
| MQL5ProfileViewer.zip | Vollständiger Quellcode des Android Studio-Projekts zur Demonstration der MQL5 Community OAuth-Integration. Das Projekt umfasst den Anmeldungsablauf, die Deep-Link-Behandlung und die Logik zur Nutzerauthentifizierung. Sie müssen die Client-ID und die Backend-Callback-URL personalisieren, bevor Sie die Anwendung erstellen und ausführen. |
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/20852
Warnung: Alle Rechte sind von MetaQuotes Ltd. vorbehalten. Kopieren oder Vervielfältigen untersagt.
Dieser Artikel wurde von einem Nutzer der Website verfasst und gibt dessen persönliche Meinung wieder. MetaQuotes Ltd übernimmt keine Verantwortung für die Richtigkeit der dargestellten Informationen oder für Folgen, die sich aus der Anwendung der beschriebenen Lösungen, Strategien oder Empfehlungen ergeben.
Die Übertragung der Trading-Signale in einem universalen Expert Advisor.
Larry Williams‘ Marktgeheimnisse (Teil 9): Mit Mustern zum Gewinn
Eine alternative Log-datei mit der Verwendung der HTML und CSS
MQL5-Handelswerkzeuge (Teil 14): Pixelgenaues, scrollbares Textpanel mit Anti-Aliasing und abgerundeter Scrollleiste
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.