¿Supongo que sólo se necesitan 3 órdenes para abrir diferentes instrumentos? Por qué no hacer una variable de bandera, por ejemplo
En las variables globales crear
int flag=0; string Symb;
///////////////
entonces
int start() { if (условие открытия) {flag=1;}
if (flag==1) { Symb="EURUSD"; OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и flag=2; ///выходим тк больше мы ни чего не можем сделать return(0); }
if (flag==2) { Symb="AUDUSD"; OrderSend(Symb,...) flag=3; return(0); }
if (flag==3) { Symb="USDJPY"; OrderSend(Symb,...) flag=0;//Возвращаем флаг в начальное состояние.. return(0); } return(0);}
También sería bueno añadir la comprobación de la apertura y sólo después de que la comprobación tenga éxito mover la bandera.
Estimados expertos, ¿quién tiene un indicador que muestre en cada marco de tiempo los niveles de max-min para 25 y 50 barras y si el precio rebota desde este nivel en cualquier marco de tiempo en este lugar se mantuvo una línea y se mantuvo hasta que el precio lo rompe?
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
De hecho, en estos casos suelo intentar utilizar GetLastError() de forma más amplia. Por supuesto, no soy un profesional.
Entiendo que GetLastError() se supone que debe decir por qué no se hace algo, por ejemplo si un hilo está ocupado, ¡pero no tengo nada en absoluto!
¿Supongo que sólo se necesitan 3 órdenes para abrir diferentes instrumentos? Por qué no hacer una variable de bandera, por ejemplo
En las variables globales crear
int flag=0;
string Symb;
///////////////
entonces
int start()
{
if (условие открытия)
{flag=1;}
if (flag==1)
{
Symb="EURUSD";
OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и
flag=2; ///выходим тк больше мы ни чего не можем сделать
return(0);
}
if (flag==2)
{
Symb="AUDUSD";
OrderSend(Symb,...)
flag=3;
return(0);
}
if (flag==3)
{
Symb="USDJPY";
OrderSend(Symb,...)
flag=0;//Возвращаем флаг в начальное состояние..
return(0);
}
return(0);}
También sería bueno añadir la comprobación de la apertura y sólo después de que la comprobación tenga éxito mover la bandera.
¡Muchas gracias! ¡Lo probaré!
}
else Print ("Error al abrir una posición larga:",GetLastError());
devuelve un error si OrderSelect() falla.
if(OrderSend(Symbol(), OP_SELLSTOP, getLots, Bid, 0, 0, 0, WindowExpertName(),Magic, 0, Red) < 0)
Print("Error Open Sellstop = ",GetLastError());
Devuelve un error si OrderSend() falla.hay una versión que es OrderSend() que no funciona
¿alguna idea de por qué funciona en el probador?
¿alguna idea de por qué funciona en el probador?
No. Pero lo que digo es que al usar la función Print más extensamente (aunque sin el posterior GetLastError),
se puede ver mucho mejor cómo el EA está operando.
por ejemplo, así:
if(MA1>MA2 && StochPrev<StohCur && StochPrev<SignPrev )
{
print(" Se cumple la condición para una orden de compra");
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,",16895,0,DeepSkyBlue);if(ticket>0)
}