Fehler-Codes

 

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?

 

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

 
cardio:
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...

 
ignacio:
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?

 

Ich glaube nicht, dass es so etwas wie Requote im Backtest gibt. Das Problem liegt meiner Meinung nach an den "RefreshRates", die beim Backtesting vielleicht ein Requote-Problem verursachen können. Betrachten Sie dies

if (!isTesting()) RefreshRates();

 

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

int err = GetLastError();

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()

 
elihayun:
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

int err = GetLastError();

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));

}