Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
MT4 - Fehler #130 bei Ordersend()
Hallo. Ich versuche, eine Order mit OrderSend() in MT4 zu generieren, erhalte aber immer wieder Error #130. Ich verstehe, dass der Fehler #130 mit den Stop-Loss- oder Take-Profit-Levels zusammenhängt, die zu nahe am aktuellen Marktpreis gesetzt sind. Ich habe sie ohne Erfolg variiert. Ich habe sowohl relative als auch tatsächliche Werte verwendet.
1. Verwendung relativer Take-Profit- und Stop-Loss-Werte für einen Kauf:
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-50*Point,Ask+50*Point, "Long Breakout",16384,0,Green);
2. tatsächliche Werte für Stoploss und TakeProfit für einen Kauf verwenden:
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss,TakeProfit, "Long Breakout ",16384,0,Green);
wo:
double StopLoss = NormalizeDouble(StopLoss, Digits);
double TakeProfit = NormalizeDouble(TakeProfit, Ziffern);
und diese Werte als externe Werte gesetzt werden (z.B. extern double StopLoss=1.5000, extern double=TakeProfit=1.6000)
Mein Broker ist FXCM. Ich habe versucht, die Werte für StopLoss und TakeProfit mit 10 zu multiplizieren. Ich erhalte das gleiche Ergebnis für alle Währungspaare.
In jedem Fall erhalte ich Error #130. Irgendwelche Ideen?
Vielen Dank
Beim Festlegen des Take-Profits für eine Kaufposition. Der TP ist
Im Gegensatz zu Ask+...
Chris
Tut mir leid, ja, mein Fehler beim Tippen. Ich fürchte, das Problem besteht nach wie vor.
Versuchen Sie, kurz vor der Funktion ordersend einen Kommentar oder einen Ausdruck zu platzieren, um die Stoploss- und Takeprofit-Ebenen auszudrucken. Vergewissern Sie sich außerdem, dass der Stoploss/Tp mehr als der Mindestabstand beträgt.
Platzieren Sie dies vor dem Senden der Order:
if(StopLoss!=0 && StopLoss<(MarketInfo(Symbol(),MODE_STOPLEVEL)))
{
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
}
if(TakeProfit!=0 && TakeProfit<(MarketInfo(Symbol(),MODE_STOPLEVEL)))
{
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL);
}
Chris
Hallo. Ich versuche, eine Order mit OrderSend() in MT4 zu generieren, erhalte aber immer wieder den Fehler #130. Soweit ich weiß, bezieht sich der Fehler #130 darauf, dass die Stop-Loss- oder Take-Profit-Levels zu nahe am aktuellen Marktpreis gesetzt sind. Ich habe sie ohne Erfolg variiert. Ich habe sowohl relative als auch tatsächliche Werte verwendet.
1. Verwendung relativer Take-Profit- und Stop-Loss-Werte für einen Kauf:
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-50*Point,Ask+50*Point, "Long Breakout",16384,0,Green);
2. tatsächliche Werte für Stoploss und TakeProfit für einen Kauf verwenden:
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,StopLoss,TakeProfit, "Long Breakout ",16384,0,Green);
wo:
double StopLoss = NormalizeDouble(StopLoss, Digits);
double TakeProfit = NormalizeDouble(TakeProfit, Ziffern);
und diese Werte als externe Werte gesetzt werden (z.B. extern double StopLoss=1.5000, extern double=TakeProfit=1.6000)
Mein Broker ist FXCM. Ich habe versucht, die Werte für StopLoss und TakeProfit mit 10 zu multiplizieren. Ich erhalte das gleiche Ergebnis für alle Währungspaare.
In jedem Fall erhalte ich Error #130. Irgendwelche Ideen?
ProstFXCM mit 5 Ziffern.. oder Sie benutzen FXCM aus welchem Land?
Vielen Dank für Ihre Antworten. Ja, ich habe Druckanweisungen verwendet, um die Werte für Stop Loss und Take Profit zu überprüfen. Auf dem Ausdruck schienen sie in Ordnung zu sein.
Ich verwende FXCM in Großbritannien. Nicht-Yen-Währungen haben 5 Ziffern nach dem Komma (z.B. GBPUSD: 1.55125). Yen-Kreuzungen haben drei Ziffern (z. B. GBPJPY: 132,393). Ich habe mir gedacht, dass in diesem Fall die Werte wahrscheinlich mit 10 multipliziert werden müssen.
Vielen Dank
Ich dachte mir, dass in diesem Fall die Werte wahrscheinlich mit 10 multipliziert werden müssen.
Haben Sie etwas Ähnliches in der Init-Funktion?
{
Factor = 10;
StopLoss *= 10;
TakeProfit *= 10;
MaxSpread *= 10;
Slippage *=10;
}Nein, in der OrderSend()-Anweisung multipliziere ich einfach die Werte für Take Profit und StopLoss mit 10. Können Sie die Verwendung dieser Werte etwas genauer erläutern? Vielen Dank
Sie sind lediglich die externen Variablen, die mit zehn multipliziert werden. Sie passen sie an, um Ihre Variablen einzubeziehen. Aber Sie passen nur Variablen an, die sich bei Brokern mit fraktionierten Pips unterscheiden, wie Stoploss.
Das heißt, wenn Stoploss als 20 Pips in der Eingabeliste eingegeben wird, wird es automatisch auf 200 angepasst, wenn der Broker fraktional ist.