Ich weiß nicht, wie ich früher EAs geschrieben habe (ich schreibe sie seit 21 Tagen)). Und mein EA ist hartnäckig auf dem Weg an die Spitze der kostenlosen EAs))
Nun, dann sind Sie sehr glücklich, bis Version 600 der alten MQL4 war schrecklich )) Bitte schicken Sie mir den Link zu meinem EA, vielleicht ist er in Ihrer Mailbox
Alexey Volchanskiy: Nun, dann sind Sie sehr glücklich, bis die 600 Version der alten MQL4 war schrecklich )) Bitte senden Sie mir den Link zum MQL4 Expert Advisor.
switch(err) { case ERR_NO_ERROR: exit_loop = true; Pause;
{ case ERR_SERVER_BUSY: case ERR_NO_CONNECTION: case ERR_INVALID_PRICE: case ERR_OFF_QUOTES: Fall ERR_BROKER_BUSY: Fall ERR_TRADE_CONTEXT_BUSY: cnt++; Pause;
switch(err) { case ERR_NO_ERROR: exit_loop = true; Pause;
{ case ERR_SERVER_BUSY: case ERR_NO_CONNECTION: case ERR_INVALID_PRICE: case ERR_OFF_QUOTES: Fall ERR_BROKER_BUSY: Fall ERR_TRADE_CONTEXT_BUSY: cnt++; Pause;
Leanid Aladzyeu: Ich hinke wieder hinterher, ich kriege es nicht hin, dass es passt.
Das ist in Ordnung, welchen Browser benutzen Sie? Versuchen Sie, zu einem anderen zu wechseln. Ich habe FFox. Ich habe die Antwort in den Kommentaren im Code ganz am Ende gegeben.
#include <stderror.mqh>
//+------------------------------------------------------------------+//| Expert4.mq4 |//| Mikhail |//| |//+------------------------------------------------------------------+#property copyright"Mikhail"#property link""#property version"1.00"#property strictint signal = 1;
int start()
{
if (signal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, "Test", 123, 0, Blue);
}
return(0);
}
//+------------------------------------------------------------------+int OrderSendX (string symbol, int cmd, double volume, double price, int slippage,double stoploss,
double takeprofit, string comment=NULL, int magic=0, datetime expiration=0,color arrow_color=CLR_NONE)
{
int err = GetLastError();
err = 0;
bool exit_loop = false;
int ticket = -1;
int Retry = 10;
int cnt = 0;
if (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
ticket = OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError();
switch(err)
{
case ERR_NO_ERROR:
exit_loop = true;
break;
case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
case ERR_BROKER_BUSY:
case ERR_TRADE_CONTEXT_BUSY:
cnt++;
break;
case ERR_PRICE_CHANGED:
RefreshRates();
continue;
default:
exit_loop +true;
break;
}
if (cnt> Retry)
exit_loop = true;
if (!exit_loop)
{
Sleep(1000);
RefreshRates();
}
else
{
if(err != ERR_NO_ERROR)
{
Print ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
return(ticket);
}
Print("Error: order open failed after" + cnt + "atempts");
return(-1);
}//while
}//if
// тут надо вернуть какое-то значение, компилятор не понимает, что у вас есть return-ы внутри while, он не умеет анализировать код. Он ожидает, что при выходе из функции будет возвращаться значение
}//exit
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
spuckt
möglicher Datenverlust aufgrund von Typkonvertierung .mq4 1697 29
Typ Doble bei SL.
Der Compiler ist heutzutage streng, es sollte so sein, dass MarketInfo den Typ double zurückgibt
Der Compiler ist heutzutage streng, es sollte so sein, dass MarketInfo den Typ double zurückgibt
Die "sumbol"-Variable ist korrekt, ich habe sie als Variable in der Modifier-Verpackung.
Danke, ich habe(int) eingegeben und alles ist gut.
Ich weiß nicht, wie ich es vorher gemacht habe; meine Erfahrung im Schreiben von EAs beträgt 21 Tage))
Ich weiß nicht, wie lange ich schon meine EAs schreibe, und ich weiß nicht, wie man es richtig macht).
Leanid Aladzyeu:
Ich weiß nicht, wie ich früher EAs geschrieben habe (ich schreibe sie seit 21 Tagen)). Und mein EA ist hartnäckig auf dem Weg an die Spitze der kostenlosen EAs))
Nun, dann sind Sie sehr glücklich, bis die 600 Version der alten MQL4 war schrecklich )) Bitte senden Sie mir den Link zum MQL4 Expert Advisor.
Aus irgendeinem Grund gibt es in der letzten Zeile einen Fehler.
'}' - nicht alle Kontrollpfade liefern einen Wert Expert4.mq4
Jede nicht-leere Funktion sollte mit dem Return-Operator enden.
Ich schaue mir gerade diesen Code aus dem Video-Tutorial an, aber er kann für ein altes Build sein.
#include#include <stderror.mqh>
//+------------------------------------------------------------------+//|Experte4.mq4 |
//|Mikhail |
//||
//+------------------------------------------------------------------+
#property copyright "Mikhail"
#property link ""
#Eigenschaft Version "1.00"
#Eigenschaft streng
int signal = 1;
int start()
{
wenn (Signal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, "Test", 123, 0, Blue);
}
zurück(0);
}
//+------------------------------------------------------------------+
int OrderSendX (string symbol, int cmd, double volume, double price, int slippage,double stoploss,
double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=CLR_NONE)
{
int err = GetLastError();
err = 0;
bool exit_loop = false;
int ticket = -1;
int Wiederholungsversuch = 10;
int cnt = 0;
wenn (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
ticket = OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError();
switch(err)
{
case ERR_NO_ERROR:
exit_loop = true;
Pause;
{ case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
Fall ERR_BROKER_BUSY:
Fall ERR_TRADE_CONTEXT_BUSY:
cnt++;
Pause;
case ERR_PRICE_CHANGED:
RefreshRates();
weiter;
Standard:
exit_loop +true;
Pause;
}
wenn (cnt> Wiederholung)
exit_loop = true;
if (!exit_loop)
{
Sleep(1000);
RefreshRates();
}
sonst
{
if(err != ERR_NO_ERROR)
{
Print ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
zurück(ticket);
}
Print("Fehler: Auftragseröffnung fehlgeschlagen nach" + cnt + "Versuchen");
zurück(-1);
}//while
}///if
}///exit
Hier....
}
}
zurück(ticket);
}
Code korrekt in das Forum einfügen
Aus irgendeinem Grund gibt es in der letzten Zeile einen Fehler.
'}' - nicht alle Kontrollpfade liefern einen Wert Expert4.mq4
Jede nicht-leere Funktion sollte mit dem Return-Operator enden.
Ich habe gerade diesen Code im Video-Tutorial gesehen, aber er kann für alte Builds sein.
#include#include <stderror.mqh>
//+------------------------------------------------------------------+//|Experte4.mq4 |
//|Mikhail |
//||
//+------------------------------------------------------------------+
#property copyright "Mikhail"
#property link ""
#Eigenschaft Version "1.00"
#Eigenschaft streng
int signal = 1;
int start()
{
wenn (Signal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, "Test", 123, 0, Blue);
}
zurück(0);
}
//+------------------------------------------------------------------+
int OrderSendX (string symbol, int cmd, double volume, double price, int slippage,double stoploss,
double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=CLR_NONE)
{
int err = GetLastError();
err = 0;
bool exit_loop = false;
int ticket = -1;
int Wiederholungsversuch = 10;
int cnt = 0;
wenn (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
ticket = OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError();
switch(err)
{
case ERR_NO_ERROR:
exit_loop = true;
Pause;
{ case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
Fall ERR_BROKER_BUSY:
Fall ERR_TRADE_CONTEXT_BUSY:
cnt++;
Pause;
case ERR_PRICE_CHANGED:
RefreshRates();
weiter;
Standard:
exit_loop +true;
Pause;
}
wenn (cnt> Wiederholung)
exit_loop = true;
if (!exit_loop)
{
Sleep(1000);
RefreshRates();
}
sonst
{
if(err != ERR_NO_ERROR)
{
Print ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
zurück(ticket);
}
Print("Fehler: Auftragseröffnung fehlgeschlagen nach" + cnt + "Versuchen");
zurück(-1);
}//while
}///if
}///exit
Code korrekt in das Forum einfügen
Ich hinke wieder hinterher, ich kriege es nicht hin, dass es passt.
Das ist in Ordnung, welchen Browser benutzen Sie? Versuchen Sie, zu einem anderen zu wechseln. Ich habe FFox. Ich habe die Antwort in den Kommentaren im Code ganz am Ende gegeben.