Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1126

 
Qué lejos estoy de ti
 
gente, ¿podríais decirme cómo hacer que los gráficos del terminal guarden el marcado después de volver a encenderlo?
He guardado en formato csv, que no ha funcionado
 
Seselio:

Есть условие для открытия ордера BUY. Открывается ордер, как сделать переход к SELL условию после закрытия BUY ордера?

if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }
Exactamente lo mismo que para Bai. Su lógica aquí es incompleta incluso para Bai, yo sugeriría que debería ser así:
if(GlobalVariableGet("B_order",1)) //ищем  вход Buy
if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }
else if(GlobalVariableGet("S_order",1))// ищем  вход Sell
{Условие для SELL}
 

Estoy totalmente confundido con estos bichos, he empezado a escribirlos y luego han empezado a ir por aquí y por allá. En breve:

Pregunta: Lo he probado en la demo con Alert y he comprobado cómo funciona. He hecho intencionadamente en mi EA la orden equivocada intentando abrirla, obtuvo el código de error 4051, es decir, puse esta función GetLastError() antes de abrir una orden y después de abrirla. Lo tengo: 1 tick desde el inicio del EA, Error call--> 0 --> intentó abrir una orden con condiciones erróneas --> Error call--> 4051, y cuando el 2º tick se ha disparado la primera llamada ya muestra el 4051 y mi EA no envía más peticiones hasta que haya tratado el EA. La función GetLastError( ) llama al último error desde el terminal o desde el servidor y ¿cómo se puede restablecer? Es decir, si por ejemplo "error general" código 2, y 5 min después el servidor funciona normalmente, el servidor me informa que no hay ningún error. En definitiva, confundido en esta lógica, ayuda a quien puede. Pensé que había llegado aquí recientemente correspondido, resulta que he entendido mal.

Справочник MQL4
Справочник MQL4
  • docs.mql4.com
Справочник MQL4
 
Evgeniy Oshurkevich:

Estoy totalmente confundido con estos bichos, he empezado a escribirlos y luego han empezado a ir por aquí y por allá. En breve:

Pregunta: Lo he probado en la demo con Alert y he comprobado cómo funciona. He hecho intencionadamente en mi EA la orden equivocada intentando abrirla, obtuvo el código de error 4051, es decir, puse esta función GetLastError() antes de abrir una orden y después de abrirla. Lo tengo: 1 tick desde el inicio del EA, Error call--> 0 --> intentó abrir una orden con condiciones erróneas --> Error call--> 4051, y cuando el 2º tick se ha disparado la primera llamada ya muestra el 4051 y mi EA no envía más peticiones hasta que haya tratado el EA. La función GetLastError( ) llama al último error desde el terminal o desde el servidor y ¿cómo se puede restablecer? Es decir, si por ejemplo "error general" código 2, y 5 min después el servidor funciona normalmente, el servidor me informa que no hay ningún error. En definitiva, confundido en esta lógica, ayuda a quien puede. Pensé que había llegado aquí recientemente correspondido, resulta que he entendido mal.

Intente restablecer el error con la función ResetLastError();
 
Alekseu Fedotov:
Intente restablecer el error con ResetLastError();
Gracias
 

¡¡¡¡¡¡¡¡¡EXCEPCIÓN!!!!!!!!! ¡Querida gente! ¡¡¡No te sorprendas de que te acosen los novatos!!! ¿Qué pasa con el motor de búsqueda en ???? ¡¡¡¡Soy una especie de experto aquí desde hace 2 semanas, deberías haber visto mi cara cuando decidí comprobar y averiguar más sobre OrderSend() en el buscador!!!! Pobres novatos. Bueno, vale, en la barra de direcciones lo cambio a 4 en lugar de 5. Ahí no estoy autorizado, vale, pulso enter y vuelvo a mql5. Si no estoy conectado a Mql4, el buscador no funciona.

Y también en el foro muchos listos escriben "para qué sirve el buscador" o "mira en el buscador", "somos un poco vagos", etc. sin ánimo de ofender

 

En la documentación:

GetLastError

Devuelve el contenido de la variable del sistema_ÚltimoError.

intGetLastError();

Valor devuelto

Devuelve el valor del últimoerror ocurrido durante la ejecución de un programa mql4.

Nota .

Después de llamar a la función, el contenido de la variable _LastError se borra.


Está claramente escrito en la nota que _LastError se borra a cero.

Leamos más sobre_LastError.

int _LastError

La variable _LastError almacena el valor del últimoerror ocurrido durante la ejecución del programa mql4. LafunciónResetLastError()puede poner el valor a cero.

También puede utilizar la funciónGetLastError() para obtener el código de error.


Dice: Puedes poner elvalor a cero con la funciónResetLastError(). ¿Por qué debería reiniciarse si dice que_LastError se pone a cero?

Bien, sigue leyendoResetLastError().

ResetLastError

Establece el valor de la variable predefined_LastError a cero.

voidResetLastError();

Valor devuelto

No hay valor de retorno.

Nota

GetLastError() borra la variable_LastError.

LafunciónGetLastError()borra la variable_LastError.

Entonces, ¿por qué necesitoResetLastError(); ?????

¿Y cómo voy a saber después qué error se ha producido si hay 0 después de la segunda llamada deGetLastError()? Porque borra_LastError.

Por cierto, en la demo ahoraGetLastError() muestra el mismo error en cada tick y no lo reinicia.

Es decir, tenemos el mismo error en el 1er tick y en el 2º tick, mi EA no envía la solicitud de apertura porque ya ha visto el último error

Anoche dormí un poco, no he bebido nada desde Nochevieja.



_LastError - Предопределенные переменные - Справочник MQL4
_LastError - Предопределенные переменные - Справочник MQL4
  • docs.mql4.com
_LastError - Предопределенные переменные - Справочник MQL4
 
Evgeniy Oshurkevich:

En la documentación:

GetLastError

Devuelve el contenido de la variable de sistema_LastError.



Ahora lea la documentación normal de MT5, ahora algunas funciones antiguas funcionan exactamente como está escrito, porque la documentación de mt4 está anticuada y hay muchas cosas que no están arregladas todavía.

GetLastError

Devuelve el contenido de la variable de sistema_LastError.

intGetLastError();

Valor devuelto

Devuelve el valor del último error ocurrido durante la ejecución del programa mql5.

Nota

Después de llamar a la función, el contenido de la variable _LastError no se borra. Se debe llamar a la funciónResetLastError() para poner a cero esta variable.

Ver también

Códigos de retorno del servidor comercial

 
Evgeniy Oshurkevich:

He dormido toda la noche, no he bebido nada desde Noche vieja.

Bueno, yo lo soy desde 1997)

Verás, hay un tic y con él una señal, y si se produce un error, hay que procesarlo. Se procesa y se consulta de nuevo, pero antes de la consulta se puede poner a cero la variable con el error, entonces en la siguiente consulta si hay un error, volverá a la variable, pero si no hay error, será "0".

No es necesario poner a cero la variable, pero si hay un error, devolverá un nuevo valor. En cualquier caso, no debería interesarle el error que tuvo la última vez en el último tick, debería procesar sólo lo que tiene "ahora".