Startseite > Blog > MT5 „Not enough money“ (134/10019): 7 Ursachen und Lösungen

MT5MQL5FehlerProblemlösungEAMargin

MT5 „Not enough money“ (134/10019): 7 Ursachen und Lösungen

Veröffentlicht: 2026-06-12Lesezeit: ca. 6 Min
This article reflects information as of its publish date. EA performance figures (PF, DD, annual return) change with live trading and re-validation — check the latest on the EA pages. See the latest EA results

ERR_NO_MONEY (MT5/MQL5) vollständig gelöst

Wenn während des Betriebs eines EA im Expert-Tab oder Journal ERR_NO_MONEY bzw. not enough money erscheint, denkt man sofort: „Ist mir schon das Kapital ausgegangen?" Tatsächlich tritt dieser Fehler aber auch dann auf, wenn der Kontostand noch reichlich Spielraum bietet. Die Ursache ist nicht nur „Kapital gleich null", sondern kann auch an Lotberechnung, Hebel oder durch bestehende Positionen gebundener Margin liegen.

Dieser Artikel richtet sich sowohl an MT5-Anwender, die einen EA einsetzen, als auch an Entwickler, die EAs in MQL5 programmieren. Er fasst die eigentliche Bedeutung von ERR_NO_MONEY, die 6 Ursachen, sofort umsetzbare Gegenmaßnahmen, Broker-spezifische Hinweise und dauerhafte Absicherung im Code in einem Beitrag zusammen. Eine Gesamtübersicht aller Fehlercodes findest du im umfassenden Leitfaden zu MQL5/MT5-Fehlercodes.

Dieser Artikel bezieht sich auf den Stand von MT5 (Build 4xxx-Serie) im Juni 2026. Zahlen und Bildschirmnamen können je nach Broker und Build leicht abweichen.


Was ist ERR_NO_MONEY (Unterschied zwischen 134 und 10019)

In MQL5 gibt es für „unzureichendes Kapital" zwei unterschiedliche Werte, abhängig davon, wo sie abgerufen werden. Wer das verwechselt, verliert bei der Ursachensuche unnötig Zeit.

① ERR_NO_MONEY = 134 (Laufzeitfehler von GetLastError())

Dies ist der Laufzeitfehlercode, den GetLastError() zurückgibt. Der Wert 134 wird gesetzt, wenn Berechnungsfunktionen wie OrderCalcMargin() oder OrderCalcProfit() – oder älterer Code – feststellen, dass die benötigte Margin die freie Margin übersteigt.

Bedeutung: Für die Handelsoperation fehlt das nötige Kapital (not enough money)
Konstante: ERR_NO_MONEY
Wert     : 134

② TRADE_RETCODE_NO_MONEY = 10019 (Rückgabecode von OrderSend())

Das Ergebnis einer tatsächlichen Orderausführung über OrderSend() in MQL5 wird in MqlTradeResult.retcode abgelegt. Wenn eine Order vom Server abgelehnt wird, weil das Kapital nicht ausreicht, lautet der Code nicht 134, sondern 10019 (TRADE_RETCODE_NO_MONEY). Das ist kein Fehler von MT5 selbst, sondern eine Ablehnungsmeldung des Broker-Servers.

Bedeutung: Für die Orderausführung reicht das Kapital nicht (There is not enough money to complete the request)
Konstante: TRADE_RETCODE_NO_MONEY
Wert     : 10019
// Typische Ausgabe, die im Log zu sehen ist
2026.06.12 09:15:32.441 EA_NAME XAUUSD,H1: OrderSend error 10019

Praktische Unterscheidung:

QuelleWertTritt auf bei
GetLastError()134 (ERR_NO_MONEY)Berechnungen wie OrderCalcMargin, interne Prüfungen
MqlTradeResult.retcode10019 (TRADE_RETCODE_NO_MONEY)OrderSend wurde vom Server abgelehnt
CTrade.ResultRetcode()10019Ablehnung einer Order über CTrade

Erscheint im Log „134", befindet man sich in der Berechnungs-/internen Prüfphase; erscheint „10019" oder im Expert-Tab not enough money, liegt eine Ablehnung durch den Server vor. Die eigentliche Ursache ist in beiden Fällen dieselbe (benötigte Margin > verfügbare Margin), daher sind auch die Gegenmaßnahmen identisch.


Erste Einordnung in 30 Sekunden

Schau im MT5 im Tab „Toolbox → Handel" auf folgende drei Werte:

Kontostand (Balance)           : Bargeld auf dem Konto
Eigenkapital (Equity)          : Kontostand ± unrealisierter Gewinn/Verlust
Freie Margin (Free Margin)     : aktuell für neue Positionen verfügbare Margin ← das ist entscheidend
Margin-Level (%)               : Equity / Margin × 100
  • Ist die freie Margin (Free Margin) kleiner als die für die nächste Position benötigte Margin, kommt es zu 100 % zu ERR_NO_MONEY.
  • Tritt der Fehler trotz ausreichendem Kontostand auf, liegt es an einem der später beschriebenen Punkte: „② zu große Lotgröße", „④ Margin durch bestehende Positionen gebunden" oder „⑥ falscher Kontotyp".

Die für eine Position benötigte Margin lässt sich in MT5 über „Kurse → Rechtsklick auf Symbol → Eigenschaften" (Margin für 1 Lot) einsehen. Grob gilt folgende Formel:

benötigte Margin ≈ (Lots × Kontraktgröße × Kurs) / Hebel

Ursachen und Gegenmaßnahmen (6 Muster)

① Das Kapital reicht schlicht nicht aus

Symptom: Der unrealisierte Verlust ist angewachsen, und die Free Margin liegt unter dem für eine neue Position nötigen Betrag. Tritt häufig nach Verlustserien oder bei tiefen Nampin-Stufen (Grid-Nachkauf) auf.

Gegenmaßnahme:

  1. Kapital nachschießen, oder
  2. einen Teil der bestehenden Positionen manuell schließen, um Margin freizugeben
  3. den RiskPercent im EA senken, um künftige Lotgrößen zu verkleinern

Tritt dieses Muster bei einem EA wiederholt auf, ist die Lotgröße grundsätzlich zu groß für das eingesetzte Kapital. Siehe dazu Punkt ②.


② Die Lotgröße ist zu groß (im Verhältnis zum Kontostand)

Symptom: Obwohl Guthaben vorhanden ist, tritt ERR_NO_MONEY schon bei der allerersten Order auf. Häufig bei fester Lotgröße.

Ursache: FixedLot passt nicht zum Kontostand bzw. Hebel. Versucht man beispielsweise mit einem Konto von 100.000 Yen (≈ $670) eine Position von 0,1 Lot in XAUUSD zu öffnen, kann die benötigte Margin je nach Hebel den Kontostand übersteigen.

Gegenmaßnahme:

  1. Die feste Lotgröße auf das Minimum (0,01) senken und prüfen, ob die Order zustande kommt
  2. Auf automatische Risiko-%-Berechnung umstellen (UseFixedLot=false / RiskPercent)
  3. Lässt sich selbst 0,01 Lot nicht öffnen, fehlt es an Hebel oder Kapital des Kontos → siehe ③ bzw. ⑥

Richtwert: Ein Design, das ab 100.000 Yen (≈ $670) auf einem Standardkonto mit einer Mindestlotgröße von 0,01 startbar ist, gilt als vertretbarer Maßstab. Wer über weniger Kapital verfügt oder noch sicherer mit kleineren Beträgen handeln möchte, sollte ein „Cent-(Mikro-)Konto" (siehe nächster Abschnitt) in Betracht ziehen.


③ Der Hebel ist niedrig / wurde am Wochenende oder bei Events eingeschränkt

Symptom: Derselbe EA mit derselben Lotgröße funktioniert auf einem anderen Konto, aber genau auf diesem Konto tritt ERR_NO_MONEY auf. Oder der Fehler tritt gehäuft von Freitagabend bis Montagmorgen auf.

Ursache: Ist der Hebel des Kontos niedrig (z. B. 1:30 bei einem EU-regulierten Konto gegenüber 1:1000 bei einem Offshore-Konto), kann sich die benötigte Margin um das Dutzendfache unterscheiden. Zudem senken manche Broker den Hebel am Wochenende oder rund um wichtige Wirtschaftsdaten (XM begrenzt den Hebel am Wochenende beispielsweise auf 200:1), wodurch die benötigte Margin während einer laufenden Position plötzlich ansteigen und der Fehler auftreten kann. Bei Gold oder Krypto ist zudem oft eine separate, symbolspezifische Hebelobergrenze festgelegt.

Gegenmaßnahme:

  1. Den Hebel des Kontos prüfen (über das Broker-Kundenportal oder die MT5-Kontoinformationen)
  2. Die „Margin-Rate" in den Symboleigenschaften prüfen (kann je nach Instrument niedriger ausfallen)
  3. Eine Einstellung nutzen, die Positionen vor dem Wochenende schließt (z. B. CloseAllBeforeWeekend=true), oder zu einem Broker ohne Wochenend-Hebelbeschränkung wechseln
  4. Zu einem Konto mit höherem Hebel wechseln oder die Lotgröße senken

④ Margin ist durch bestehende Positionen gebunden

Symptom: Die erste Position wird eröffnet, aber ab der zweiten oder bei zusätzlichen Nachkäufen (Nampin) tritt ERR_NO_MONEY auf.

Ursache: Bereits gehaltene Positionen binden Margin, sodass die Free Margin unter den für eine neue Position benötigten Betrag fällt. Das passiert häufig, wenn mehrere Währungspaare oder mehrere EAs auf einem einzigen Konto laufen.

Gegenmaßnahme:

  1. Im Tab „Handel" die genutzte Margin (Margin) und die Free Margin prüfen
  2. Prüfen, ob sich mehrere EAs auf demselben Konto gegenseitig die Margin streitig machen (bei Betrieb mehrerer EAs)
  3. Die maximale Anzahl gleichzeitiger Positionen über die EA-Parameter begrenzen
  4. Bei Nampin-/Grid-EAs verbraucht jede zusätzliche Stufe deutlich mehr Margin → Obergrenze der Stufen, Lot-Multiplikator und Notfall-Schließung überprüfen

⑤ Bonus/Kredit wird in die Margin einberechnet

Symptom: Rechnet man „Kontostand + Bonus" zusammen, sollte es eigentlich reichen – trotzdem erscheint ERR_NO_MONEY.

Ursache: Bei manchen Brokern wird ein Kredit (Bonus) nicht oder nur teilweise in die Margin-Berechnung einbezogen. Der angezeigte Kontostand und die vom Server tatsächlich genutzte Margin weichen dann voneinander ab.

Gegenmaßnahme: In den Bonusbedingungen des Brokers prüfen, ob der Kredit in die Margin einberechnet wird. Falls nicht, die Lotgröße so senken, dass die benötigte Margin allein durch die tatsächliche Einzahlung gedeckt ist.


⑥ Unterschiedliche Kontraktgröße je Kontotyp (Standard vs. Cent/Mikro)

Symptom: Bei identischer Lotgröße „0,01" tritt nach einem Kontowechsel plötzlich ERR_NO_MONEY auf – oder umgekehrt ist die Lotgröße plötzlich zu groß.

Ursache: Zwischen Cent-(Mikro-)Konten und Standardkonten unterscheidet sich die Kontraktgröße um etwa das 100-Fache. 0,01 Lot auf einem Cent-Konto entspricht real nur etwa 1/100 der Exposure. Nutzt ein EA eine feste Lotgröße, ohne den Kontotyp zu unterscheiden, kommt es auf einem der beiden Kontotypen zu Margin-Mangel.

Gegenmaßnahme:

  1. Für kleines Kapital und sicheren Handel ein Cent-/Mikrokonto nutzen, damit selbst die Mindestlotgröße kein übermäßiges Risiko darstellt
  2. Den EA so gestalten, dass er den Kontotyp nicht fest im Code verankert, sondern die Lotgröße anhand der über OrderCalcMargin() tatsächlich benötigten Margin bestimmt (siehe nächster Abschnitt)

Broker-spezifische Hinweise

BrokerMerkmaleHäufigkeit von ERR_NO_MONEY
XMHebelbeschränkung am Wochenende, Stop-Out bei 20 %Mittel (am Wochenende erhöht)
ExnessKonten mit unbegrenztem Hebel verfügbar, Stop-Out bei 0 %Niedrig
HFM / FXGT u. a.Konten mit hohem Hebel verfügbarNiedrig

Bei Kontten mit unbegrenztem Hebel von Exness (Pro-/Raw-Spread-Konten) gehen neue Orders oft auch dann durch, wenn die freie Margin praktisch bei null liegt – dieser Fehler tritt daher seltener auf. Das passt gut zu Nampin-Strategien, hat aber die Kehrseite, dass der Stop-Out kaum greift und sich Verluste dadurch leichter aufblähen können. Für den Broker-Vergleich siehe auch die Broker-Vergleichsseite.


Code in MQL5, der diesen Fehler verhindert (für EA-Entwickler)

Statt den Fehler nur zu „beheben", ist es die korrekte Vorgehensweise für einen EA, ERR_NO_MONEY von vornherein vor der Orderausführung abzufangen. Entscheidend ist: Vor dem Senden der Order die benötigte Margin berechnen und, falls sie nicht ausreicht, entweder keine Position eröffnen oder die Lotgröße verkleinern.

Vor der Orderausführung die benötigte Margin prüfen

// Gate vor der Orderausführung: benötigte Margin <= freie Margin prüfen, bevor OrderSend aufgerufen wird
bool HasEnoughMargin(ENUM_ORDER_TYPE type, double lots)
{
   double price = (type == ORDER_TYPE_BUY)
                  ? SymbolInfoDouble(_Symbol, SYMBOL_ASK)
                  : SymbolInfoDouble(_Symbol, SYMBOL_BID);

   double margin = 0.0;
   if(!OrderCalcMargin(type, _Symbol, lots, price, margin))
   {
      Print("OrderCalcMargin failed: ", GetLastError()); // z. B. 134
      return false;
   }
   double freeMargin = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
   if(margin > freeMargin)
   {
      PrintFormat("Skip: need %.2f > free %.2f (ERR_NO_MONEY guard)", margin, freeMargin);
      return false;   // keine Position eröffnen = ERR_NO_MONEY im Vorfeld vermeiden
   }
   return true;
}

Lotgröße auf Minimum und Schrittweite normalisieren

Wird ein aus dem Risiko-% berechneter Wert unverändert gesendet, entspricht er oft nicht der Mindestlotgröße oder der Lot-Schrittweite und wird abgelehnt (eine fehlende Normalisierung ist ein typischer Grund für abgelehnte Orders). Statt aufzugeben, wenn eine Position nicht eröffnet werden kann, lässt sich der entgangene Gewinn reduzieren, indem man auf den maximal möglichen Wert verkleinert.

double NormalizeLot(double lots)
{
   double minLot  = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
   double maxLot  = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
   double step    = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
   lots = MathFloor(lots / step) * step;          // auf Schrittweite runden
   lots = MathMax(minLot, MathMin(maxLot, lots)); // auf Minimum/Maximum begrenzen
   return NormalizeDouble(lots, 2);
}

Den retcode von OrderSend immer prüfen

Statt nur den Rückgabewert (bool) von OrderSend() zu betrachten, sollte man result.retcode prüfen und 10019 (TRADE_RETCODE_NO_MONEY) gezielt behandeln.

MqlTradeRequest req; MqlTradeResult res;
ZeroMemory(req); ZeroMemory(res);
// ... req zusammenstellen ...
if(!OrderSend(req, res) || res.retcode != TRADE_RETCODE_DONE)
{
   if(res.retcode == TRADE_RETCODE_NO_MONEY)   // 10019
      Print("Not enough money. Lotgröße verkleinern oder Kapital nachschießen.");
   else
      PrintFormat("OrderSend failed: retcode=%d, lastError=%d", res.retcode, GetLastError());
}

Bei Verwendung von CTrade lässt sich dies über trade.ResultRetcode() (Wert 10019) bzw. trade.ResultRetcodeDescription() prüfen.

Notabschaltung anhand des Margin-Levels

Ein Sicherheitsmechanismus, der neue Positionen stoppt oder alle Positionen schließt, sobald das Margin-Level unter einen bestimmten Prozentsatz fällt, verhindert sowohl wiederholtes ERR_NO_MONEY als auch die vollständige Auflösung des Kontos.

double level = AccountInfoDouble(ACCOUNT_MARGIN_LEVEL); // Margin-Level in %
if(level > 0 && level < EmergencyMarginLevel)          // z. B. 150 %
{
   // Neue Einstiege stoppen bzw. bestehende Positionen teilweise schließen
}

Die von FXEA365 bereitgestellten EAs implementieren standardmäßig „automatische Lotgröße per Risiko-%", „Margin-Prüfung vor der Orderausführung" und „Notabschaltung per Margin-Level" (UseMarginEmergencyClose), sodass sie sich auch mit minimalem Kapital problemlos betreiben lassen.


Prioritäten-Checkliste

PrioritätPrüfungGegenmaßnahme
🚨 ZuerstFreie Margin < benötigte Margin?Kapital nachschießen, teilweise schließen oder Lotgröße senken
🚨 ZuerstIst die feste Lotgröße im Verhältnis zum Kontostand zu groß?Auf 0,01 senken / auf automatisches Risiko-% umstellen
⚠️ DanachIst der Kontohebel niedrig oder gibt es eine Wochenendbeschränkung?Konto mit höherem Hebel / Wochenend-Schließung / Lotgröße senken
⚠️ DanachIst Margin durch bestehende Positionen oder andere EAs gebunden?Offene Positionen auf demselben Konto bereinigen
✅ PrüfenUnterschiedliche Kontraktgröße bei Cent-/StandardkontoLotgröße an den Kontotyp anpassen
🛠 EntwicklungVor der Orderausführung per OrderCalcMargin absichernDen oben gezeigten Code implementieren

Zusammenfassung

  • ERR_NO_MONEY zeigt sich in zwei Formen – 134 (GetLastError) und 10019 (retcode von OrderSend = TRADE_RETCODE_NO_MONEY) –, die Ursache ist aber in beiden Fällen dieselbe: „benötigte Margin > verfügbare Margin".
  • Der Fehler tritt trotz vorhandenem Guthaben auf durch zu große Lotgröße, niedrigen Hebel (inklusive Wochenendbeschränkung), durch bestehende Positionen gebundene Margin oder unterschiedliche Kontotypen.
  • EA-Anwender sollten mit „automatischer Lotgröße per Risiko-%" und „passendem Kontotyp" vorbeugen; EA-Entwickler sollten mit einem „OrderCalcMargin-Gate vor der Orderausführung", „Lot-Normalisierung" und „Behandlung von retcode 10019" dauerhaft vorsorgen.

Eine Gesamtübersicht aller Fehlercodes findest du im umfassenden Leitfaden zu MQL5/MT5-Fehlercodes, kostenlose EAs, die auch mit überschaubarem Kapital funktionieren, in der EA-Übersicht. Falls du einen EA dieser Website nutzt und das Problem auch nach Anpassung der Einstellungen weiterhin besteht, wende dich bitte über das Support-Formular an uns und füge einen Screenshot des Margin-Status deines Kontos bei.


FAQ

F: Obwohl mein Kontostand ausreicht, erscheint ERR_NO_MONEY. Warum?

Weil nicht der Kontostand (Balance), sondern die freie Margin (Free Margin) entscheidend ist. Wenn unrealisierte Verluste oder durch bestehende Positionen gebundene Margin die Free Margin verringern, lässt sich trotz vorhandenem Guthaben keine neue Position eröffnen. Prüfe die Free Margin im Tab „Handel".

F: Was unterscheidet 134 von 10019?

134 (ERR_NO_MONEY) ist der Laufzeitfehler, den GetLastError() zurückgibt; 10019 (TRADE_RETCODE_NO_MONEY) ist das Ergebnis (retcode) von OrderSend(). Sie unterscheiden sich nur darin, wo sie auftreten – die Ursache (Kapitalmangel) ist dieselbe.

F: Im Backtest tritt der Fehler nicht auf, im Live-Betrieb aber schon.

Das liegt daran, dass sich Hebel, Kontotyp (Cent/Standard) und bestehende Positionen des Live-Kontos von den Testeinstellungen unterscheiden. Besonders Unterschiede beim Hebel und bei der Kontraktgröße wirken sich hier stark aus.

F: Bei Nampin-/Grid-EAs tritt ERR_NO_MONEY auf, sobald die Stufenzahl hoch wird.

Das ist praktisch der letzte Schritt vor einem normalen Ablauf. Je mehr Stufen, desto schneller wird Margin verbraucht. Senke die Obergrenze der Stufen und den Lot-Multiplikator, aktiviere unbedingt eine Notfall-Schließung wie UseMarginEmergencyClose und handle nur mit Kapital, dessen Verlust du verkraften kannst.

F: Lässt sich das im EA-Code automatisch verhindern?

Ja. Berechne vor der Orderausführung mit OrderCalcMargin() die benötigte Margin und baue ein Gate ein, das keine Position eröffnet (oder die Lotgröße verkleinert), falls der Wert AccountInfoDouble(ACCOUNT_MARGIN_FREE) übersteigt. Siehe dazu das Codebeispiel im Hauptteil.

F: Wie viel Kapital braucht man mindestens für einen unbedenklichen Start?

Ein Start mit 100.000 Yen (≈ $670) auf einem Standardkonto und einer Mindestlotgröße von 0,01 gilt als vertretbarer Maßstab. Wer mit weniger Kapital oder noch sicherer handeln möchte, sollte ein Cent-(Mikro-)Konto nutzen – dort ist die reale Exposure selbst bei der Mindestlotgröße geringer, wodurch sich ERR_NO_MONEY leichter vermeiden lässt.

📧 Preis-Alarm vor Erhöhungen + kostenloser 5-Tage-E-Mail-Kurs

Alle EAs sind zum Einführungspreis erhältlich und steigen stufenweise mit den Verkäufen. Erhalten Sie vor jeder Erhöhung eine Benachrichtigung, plus täglich eine E-Mail zu Algo-Trading, Backtest-Lektüre und Brokerwahl.

* Datenschutz streng geschützt. Sie können jederzeit kündigen.

Kommentare & Fragen