Dein erstes Algoprojekt darf ein Signallog sein. Es kann eine Größe rechnen oder bestehende Belastung prüfen, ohne zu handeln. Wähle eine Aufgabe, deren Ergebnis du erklären kannst, und beschreibe Daten, Regel sowie Verhalten bei fehlender Information. Die Freigabe von Orders ist ein zusätzlicher Schritt. Automatisierung beweist keine rentable Strategie.

Vier unterschiedliche Aufgaben statt eines einzigen Bots

Trenne Signalwahl, Ausführung einer vorhandenen Entscheidung, Positionsbetreuung und Berichte. Ein Programm, das eine vorgegebene Order verteilt, verfolgt ein anderes Ziel als ein Roboter mit eigenen Einstiegssignalen. Der BIS-Bericht von 2020 behandelt institutionelle FX-Ausführungsalgorithmen und ihre Risiken. Seine Abkürzung EA bedeutet execution algorithm; in MetaTrader bezeichnet EA einen Expert Advisor. Der Bericht belegt keine Rentabilität eines Retailroboters.

Definiere Instrument, Datenquelle, Betriebszeiten, Entscheidungszeitpunkt, Ein- und Ausstieg, Größe, Gesamtgrenze und Verhalten bei bestehenden Positionen. Menschliche Festlegungen und Betreuung bleiben notwendig. Automatisierung kann einen manuellen Fehler verhindern und einen neuen erzeugen, etwa eine doppelte Anfrage nach Neustart. Prüfe korrektes Programmverhalten getrennt vom wirtschaftlichen Ergebnis seiner Regel.

Werkzeuge nach der Aufgabe auswählen

Ein einfacher Preisalarm kann für eine Benachrichtigung genügen. Native MT5-Alarme prüfen Preis-, letzte Ausführungsvolumen- oder Zeitvergleiche, keine beliebige Kombination aus gleitendem Mittel und ATR. Dafür kann ein Indikator oder EA erforderlich sein. MQL5 arbeitet im MT5-Umfeld; Python kann Daten untersuchen oder dokumentierte Schnittstellen verwenden.

Es gibt keine Pflichtleiter von Alarm über MQL5 und Python zu FIX. Wähle Umgebung passend zu Konto, Daten und Aufgabe. Unterstelle keinem Produkt pauschalen API-Zugang, feste Zeilenzahl, Bauzeit oder Latenz. Die EA-Grundlagen und der Python-Backtest behandeln unterschiedliche Arbeitsabläufe; dieselbe Idee zweimal umzusetzen bleibt optional.

Eine eigene Regel braucht genau drei abgeschlossene historische Schlusswerte: x, 100, 102, vom ältesten zum jüngsten. Sie fragt, ob der letzte Wert102 größer als das Dreiermittel ist. Der älteste Wert fehlt. Bei hypothetisch x = 98 wäre das Mittel 100 und die Bedingung wahr; bei x = 106 wäre das Mittel 308/3 ≈ 102,667 und die Bedingung falsch.

Der dritte historische Input darf nicht geschätzt werdenZwei alternative Ergänzungen derselben fehlenden älteren Bar. Die Wertekarten vergleichen die Dreiermittelwerte mit dem letzten bekannten Wert 102.RECHEN- UND LERNBEISPIELx = 98(98 + 100 + 102)/3 = 100x = 106308/3 ≈ 102,667x fehltAuswertung aussetzen
Der dritte historische Input darf nicht geschätzt werden. Zwei alternative Ergänzungen derselben fehlenden älteren Bar. Die Wertekarten vergleichen die Dreiermittelwerte mit dem letzten bekannten Wert 102.

Ohne x pausiert die Dreierregel; beide bekannten Werte ergeben keinen ersatzweisen Zweiertest.

x = 98
(98 + 100 + 102)/3 = 100 – 102 > 100: wahr
x = 106
308/3 ≈ 102,667 – 102 > 102,667: falsch
x fehlt
Auswertung aussetzen – Abgeschlossene ältere Historie, kein Zukunftswert

Nur 100 und 102 zu mitteln ergibt101 und verändert die Regel. Null einzusetzen erfindet eine Vergangenheit. Das Programm dokumentiert fehlende Daten und setzt die Auswertung aus, statt „kein Signal“ zu bescheinigen. Bei später erfolgreichem Abruf prüft es dieselben beabsichtigten Bars. CopyRates dokumentiert Rückgabewerte und teilweise verfügbare Historie; unser Gegenbeispiel betrifft Vollständigkeit, nicht Arrayrichtung.

Genug Wissen für die verwendeten Funktionen

Du brauchst Programmierung, Datenprüfung, Größenrechnung und statistische Beurteilung passend zum Projekt. Einen Parameter ohne Syntaxfehler zu ändern testet weder Orderzustand noch wirtschaftliche Annahmen. Eine kleine Equitykurve beschreibt ihre Stichprobe und garantiert keinen künftigen Vorteil.

Plane repräsentative Daten, getrennte Auswertung und Demoprüfungen der benötigten Operationen. Python kann innerhalb oder außerhalb einer dokumentierten MT5-Anbindung arbeiten. Gesamtlatenz hängt von Code, Computer, Netzwerk und Brokerablauf ab; sie ist nicht garantiert einstellig in Millisekunden. Kosten für Daten, Hosting, Lizenzen und Zeit gehören in die Projektliste, selbst bei lizenzkostenfreier Programmiersprache.

Von einer präzisen Regel zum erklärbaren Test

Für ein hypothetisches EUR/USD-H1-Crossover können EMA 21, SMA 55 und eine gewählte ATR-Distanz Teil der Spezifikation sein. Lege Berechnungsweise, abgeschlossene oder laufende Bars, Bewertungszeit, Stop, Ziel und bestehende Position genau fest. Logge zunächst statt zu senden. Teste Signal, kein Signal, Barwechsel, fehlende Historie und vorhandene Position. Fehlende Daten sind kein gültiges negatives Prüfergebnis.

Vergleiche manuelle und automatische Einzelentscheidungen zuerst für gleiche Daten und Zeiten. Fünf Jahre automatisierter Rückblick und sechs Monate manuelle Bewertung müssen wegen anderer Feeds oder Regime nicht gleich ausfallen. Kläre passende Abweichungen, modelliere Kosten und werte eingefrorene Regeln auf getrennten Daten aus. Nach Anpassung anhand dieser Ergebnisse ist der Zeitraum Entwicklungsdaten geworden.

Eigenes EUR-Größenmodell: Equity 10.000 EUR, gewählte 0,5 Prozent geplantes Kursverlustbudget, Stop 25 Pips. EUR/USD mit100.000 EUR je Lot und Pipgröße 0,0001 hat10 USD Pipwert je Lot. Bei ausdrücklich angenommenem 1,10 USD je EUR sind das 10/1,10 EUR je Pip. Budget 50 EUR geteilt durch 25 × (10/1,10) ergibt 0,22 Lot, also 22.000 EUR Nominal.

Diese Zahlen sind keine allgemeinen Risikoregeln. Nominal, Margin und geplanter Preisverlust sind verschieden. Berücksichtige Gebühren und Ausführung, bevor du auf den zulässigen Volumenschritt anpasst. Ein gewöhnlicher Stop kann in einer Lücke anders füllen; die 50 EUR sind kein unbedingter Maximalverlust.

Auch richtige Quotes können falsch kombiniert werden. t1 hat Bid/Ask 1,1000/1,1002, t2 hat1,1010/1,1012. Beide Spreads sind zwei Pips. t1-Ask mit t2-Bid ergibt (1,1002 − 1,1010)/0,0001 = −8 Pips. Ein Filter Spread<2,5 würde den konstruierten Wert akzeptieren. Das ist kein beobachteter negativer Marktspread.

SymbolInfoTick liefert Preisfelder und Updatezeit in einer MqlTick-Struktur. Prüfe Abrufserfolg und rechne aus derselben aufbewahrten Struktur. Teste absichtliches Mischen zweier veränderlicher Quotes. Zeitliche Kohärenz bestätigt Daten, keine Liquidität oder künftige Ausführung.

Code, Daten und Wirtschaftlichkeit getrennt bewerten

Fehlerquellen umfassen Regel, Daten, Programm, Ausführung und Betrieb. Es gibt keine hier belegte Rangliste aus nur zwei häufigen Ursachen. Nach unklarer Orderantwort prüfst du Orders, Deals und Positionen vor dem Wiederholen. OrderSend=true allein beweist keinen Fill. Resultcodes und Transaktionszustand gehören zum Protokoll neben Regelversion, Inputzeit und Grund für Handlung oder Aussetzung.

Bewahre misslungene Varianten und Änderungsgründe statt nur der besten Kurve. Trefferquote, Erwartungswert und Profit Factor beantworten verschiedene Fragen. Eigene feste R-Stichprobe: 40 Gewinne zu +2 R und 60 Verluste zu −1 R ergeben (80 − 60)/100 = +0,2 R Durchschnitt vor Kosten. Profit Factor 80/60 ≈ 1,33. Das sind gewählte Inputs, keine getestete Strategie oder Annahme für die nächste Stichprobe.

Prüfe Neustart, Ausfall und Wiederherstellung. Ein VPS entfernt weder Betreuung noch alle Fehler. Das Abschalten lokaler AutoTrading-Erlaubnis schließt Positionen nicht; Server-Schutz und programmgesteuerte Regeln unterscheiden sich. Prüfe ferne Instanzen gesondert.

Ein überprüfbares erstes Projekt abschließen

Ein brauchbares Signallog kann das vollständige Resultat sein. Ein Kalenderdatum oder funktionierender Demoversuch verpflichtet nicht zur Livefreigabe. Ein folgender Test sollte individuelle Entscheidungen, Fills und Kosten vergleichen, nicht nur ähnliche Endgewinne.

  1. Schreibe eine Operation mit Datenversion, Zeitpunkt, Regel, Ergebnis und Aussetzungsfällen auf und prüfe kleine erklärbare Beispiele. Verwende abgeschlossene Bars und zeitgleiche Bid/Ask-Quotes; dokumentiere im Modell zwei Pips je Quote und den falschen gemischten Wert von −8 Pips als Datenfehler.
  2. Ergänze benötigte Aufträge nur in einer eindeutig getrennten Demoumgebung und teste Ablehnung, Neustart sowie unklare Antwort. Prüfe danach aktuellen Kontozustand und Anweisungskennungen; das Ergebnis muss zeigen, ob die Operation bereits ausgeführt wurde, bevor ein erneutes Senden eine zusätzliche Position erzeugen könnte.
  3. Friere Regeln für eine separate Auswertung ein und dokumentiere Pause- sowie Updateverfahren. Vergleiche einzelne Entscheidungen, Fills und Kosten statt nur Endgewinne; ein vollständiges Signallog kann das ganze erste Projekt erfüllen und weder Kalenderdatum noch funktionierender Demoversuch verpflichtet zur Livefreigabe.