Ich denke, der Fehler liegt in der Art und Weise, wie Sie Ihre Aufträge erteilen. Wenn Sie Stop-Aufträge verwenden, dann sind Ihre Aufträge zu nahe am Marktpreis. Normalerweise sollte Ihr Kaufstopp mindestens "MarketInfo(Symbol(),MODE_STOPLEVEL)" Pips vom aktuellen Briefkurs entfernt sein.
Wenn Sie Stop-Orders platzieren, stellen Sie sicher, dass Sie RefreshRates() verwenden und dann die Orders in der erforderlichen Entfernung platzieren. Bei sich schnell bewegenden Märkten kann es sein, dass es trotzdem nicht funktioniert und Sie die Orders weiter entfernt platzieren müssen.
Ich hoffe, dies hilft Ihnen.
es handelt sich um einen Kauf/Verkauf, nicht um einen Stopp
Hallo
Danke, aber es ist kein Stop, sondern ein Handel - Kauf/Verkauf, ich werde 2*MarketInfo(Symbol(),MODE_STOPLEVEL) versuchen
Hallo
Ich erhalte die Fehlermeldung invalid stops err 130, d.h.
Ich drucke meine Werte aus und sie lauten wie folgt
2006.06.29 13:15:05 AUDUSD,H1: OrderDetails: SellPrice : 0.731 ,CurrentBid : 0.731 ,stoploss : 0.7319 ,takeprofit : 0.7291 ,slippage : 2
Ich verwende Folgendes, um meine sl und tp zu überprüfen, bevor ich den Auftrag erteile
if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;
if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);
Manchmal geht der Verkauf wie folgt durch
2006.06.29 08:32:56 AUDUSD,H1: open #5976740 sell 0.01 AUDUSD at 0.7309 sl: 0.7324 tp: 0.7278 ok
Vielleicht funktioniert meine Stopps Überprüfung einfach nicht richtig.
Irgendwelche Vorschläge?Vielleicht verwenden Sie "+ 3" sowohl beim Kauf als auch beim Verkauf. In verkaufen u haben zu setzen "-3", um es ein gültiger Preis
das ist nicht das Problem
Ich fange an zu glauben, dass interbankfx versucht, Scalping zu verhindern, wenn der Markt angespannt ist. Es funktioniert, wenn der Markt nicht eng ist - immer noch ist es verwirrend, da, sobald man sl und tp sind größer als MarketInfo(Symbol(),MODE_STOPLEVEL) sollte es den Handel zu öffnen.
Wie auch immer, hier ist der Code, den ich verwende
StopLoss = NormalizeDouble((TradeAbovePct/100)*(DemaH-DemaL)*(1/Point),0);
if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;
TakeProfit = NormalizeDouble(2*((DemaH-DemaL)*(1/Point)),0);
if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);
//Then I call a buy and sell as needed
//e.i
OpenBuy1(10);
OpenSell1(10);
////////////////////////////////////////////////
bool OpenBuy1(int pips1)
{
int ticket;
string comment="";
//reset defaults
use_MTBE = use_MTBEd;
use_split = use_splitd;
RefreshRates();
price1 = Ask;
stoploss1 = NormalizeDouble(price1-StopLoss*Point,Digits);
tp1 = NormalizeDouble(price1+TakeProfit*Point,Digits);
//expire1 = iTime(Symbol(),TimeFrame,0)+TimeFrame*HoursStopOpen*60;
Print("Openbuy lots: ", Lots);
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_BUY,Lots,price1,2,stoploss1,tp1,comment,MAGICMA,0,Orange);
else
ticket=OrderSend(Symbol(),OP_BUY,Lots,price1,2,0,tp1,comment,MAGICMA,0,Orange);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("BUY order opened : ",OrderOpenPrice());
//time1 = CurTime()+2*60*Period();
return(true);
}
}
else
{
Print("Error opening BUY order : ",GetLastError());
Print("OrderDetails: BuyPrice : ",price1," ,CurrentAsk : ", Ask," ,stoploss : ",stoploss1," ,takeprofit : ",tp1," ,slippage : ",2);
return(false);
}
}
bool OpenSell1(int pips1)
{
int ticket;
string comment="";
//reset defaults
use_MTBE = use_MTBEd;
use_split = use_splitd;
RefreshRates();
price1 = Bid;
stoploss1 = NormalizeDouble(price1+StopLoss*Point,Digits) ;
tp1 = NormalizeDouble(price1-TakeProfit*Point,Digits);
// expire1 = iTime(Symbol(),TimeFrame,0)+TimeFrame*HoursStopOpen*60;
Print("Opensell lots: ", Lots);
if(UseStopLoss)
ticket=OrderSend(Symbol(),OP_SELL,Lots,price1,2,stoploss1,tp1,comment,MAGICMA,0,Red);
else
ticket=OrderSend(Symbol(),OP_SELL,Lots,price1,2,0,tp1,comment,MAGICMA,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print("SELL order opened : ",OrderOpenPrice());
// time1 = CurTime()+2*60*Period();
return(true);
}
}
else
{
Print("Error opening SELL order : ",GetLastError());
Print("OrderDetails: SellPrice : ",price1," ,CurrentBid : ", Bid," ,stoploss : ",stoploss1," ,takeprofit : ",tp1," ,slippage : ",2);
return(false);
}
}
Hilfe benötigt - Fehler 138 beim Öffnen von Aufträgen
Hallo!
Nun, wie Sie sehen können, bin ich ein Neuling in diesem Forum. Ich bin Ignacio, aus Argentinien. Und ich versuche, einen einfachen EA zu entwickeln.
Ich denke, dass die Strategie "bereit" ist. Aber wenn ich den Backtest ausführe, sind keine Aufträge offen. Ich habe einige Debug-Informationen ausgedruckt und die Bedingungen sind OK. Der Fehler, der von der OrderSend-Funktion ausgelöst wird, ist 138.
Der Code ist der folgende:
RefreshRates();
OrderSend( Symbol(), OP_BUY, Lots, Slippage, Ask, 0.0, 0.0, c , magic_number, 0, Blue);
Kann mir jemand erklären, was falsch ist?
Ich danke Ihnen allen.
ignorieren...
Hallo!
Nun, wie Sie sehen können, bin ich ein Neuling in diesem Forum. Ich bin Ignacio, aus Argentinien. Und ich versuche, einen einfachen EA zu entwickeln.
Ich denke, dass die Strategie "bereit" ist. Aber wenn ich den Backtest ausführe, sind keine Aufträge offen. Ich habe einige Debug-Informationen ausgedruckt und die Bedingungen sind OK. Der Fehler, der von der OrderSend-Funktion ausgelöst wird, ist 138.
Der Code ist der folgende:
RefreshRates();
OrderSend( Symbol(), OP_BUY, Lots, Slippage, Ask, 0.0, 0.0, c , magic_number, 0, Blue);
Kann mir jemand erklären, was falsch ist?
Ich danke Ihnen allen.
ignorieren...Fehler 138 bedeutet, dass es eine Rückfrage gab. Haben Sie versucht, einen größeren Pip-Wert für Slippage zu verwenden, z. B. zwischen 3 und 5?
Vielen Dank für Ihre Antworten,
Maji, ich habe einige Werte von Slippage in einer Schleife getestet und OrderSend gibt mir den gleichen Fehler.
elihayun, ich habe Ihre Bedingung richtig hinzugefügt und immer noch den gleichen Fehler.
Ich habe viele Tests gemacht und keine guten Ergebnisse.
Haben Sie einen Vorschlag? Ich möchte wirklich diese zu beenden, um eine andere EA mehr ernst hehee zu tun.
Ich danke euch allen
zünden...
Um die Fehlerbeschreibung zu erhalten, gehen Sie wie folgt vor
Fügen Sie nach dem #property-Link die Zeile
#property link "http://www.elihayun.com"
#include
Um den Fehler zu überprüfen, gehen Sie wie folgt vor
if (err != 0)
{
Print("Error # ", err, " ", ErrorDescription(err));
}Für Ihr Problem kann ich mir kein anderes Problem vorstellen. Vielleicht verwenden Sie eine andere RefreshRates() Versuchen Sie, diese auszukommentieren
// RefreshRates()
Um die Fehlerbeschreibung zu erhalten, gehen Sie wie folgt vor
fügen Sie nach dem #property-Link die Zeile
#property link "http://www.elihayun.com"
#include
Um den Fehler zu überprüfen, gehen Sie wie folgt vor
if (err != 0)
{
Print("Error # ", err, " ", ErrorDescription(err));
}[/PHP]
For your problem, I cannot think of another problem. Maybe u are using another RefreshRates() Try to comment them out
// RefreshRates()Hier ist das Ergebnis des Skripts:
2006.07.02 11:07:15 2006.01.04 12:00 eaButler EURUSD,H4: Error Description [#138]: requote
2006.07.02 11:07:15 2006.01.04 12:00 stdlib EURUSD,H4: loaded successfully
und hier ist der Code:
[PHP]
last_ticket = OrderSend( Symbol(), OP_SELL, Lots, Slippage, Bid, 0.0, 0.0, c , magic_number, 0, Red);
if(last_ticket < 0)
{
rv = GetLastError();
Print("Fehlerbeschreibung [#"+ rv + "]: " + ErrorDescription(rv));
}
- 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.
Hallo
ich erhalte die Fehlermeldung invalid stops err 130, d.h.
Ich drucke meine Werte aus und sie sind wie folgt
2006.06.29 13:15:05 AUDUSD,H1: OrderDetails: SellPrice : 0.731 ,CurrentBid : 0.731 ,stoploss : 0.7319 ,takeprofit : 0.7291 ,slippage : 2
Ich verwende das Folgende, um meine sl und tp zu überprüfen, bevor ich den Auftrag erteile
if (StopLoss<=MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL)+3;
if (TakeProfit<=MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=2*(MarketInfo(Symbol(),MODE_STOPLEVEL)+3);
Manchmal geht der Verkauf wie folgt durch
2006.06.29 08:32:56 AUDUSD,H1: open #5976740 sell 0.01 AUDUSD at 0.7309 sl: 0.7324 tp: 0.7278 ok
Vielleicht funktioniert meine Stopps-Kontrolle einfach nicht richtig.
Irgendwelche Vorschläge?