Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 503

 
Vitaly Muzichenko:

Funciona estupendamente.

De las dos posiciones escogió la última, es decir, la de la undécima barra, que puede ver en la captura de pantalla:


Código de validación

Decidí cambiar la condición para entrar en la posición, acaba de establecer Límite a Low[2] trabajado, pero cuando la condición como en mi primera llamada de hoy, no funciona, por lo que es en la propia condición antes de la función se llama

 
Вадим Мотеюнас:

Decidí cambiar la condición para entrar en una posición, sólo establecer el límite a Low[2] funcionó, pero cuando la condición como en mi primera llamada de hoy, no funciona, por lo que es la propia condición antes de la función se llama

Es usted quien establece una orden y no una entrada de posición (Compra, Venta).

Ok, entonces es algo bueno.

 
Vitaly Muzichenko:

Fue usted quien estableció la orden, no la entrada en la posición (Compra, Venta).

Vale, ya lo tenemos claro, así que es bueno.

Me refería a que primero había una condición para entrarsi(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2]

entonces llamé a esta función para que me devolviera el índice de la barra, pero ahora simplemente la quité y puse Low[2] en OrderSend y funciona

Después de todo, no perdí un día en ello, es un poco de un cambio del punto muerto

 
Ya he superado el problema, gracias a todos por vuestros comentarios
 
if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(takelimit,GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

tal vez 1 y 1, es decir, verdadero y código de error 1

ERR_NO_RESULTADO1No hay error, pero el resultado es desconocido
bool takelimit;

if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

Todo tu código está mal.

bool takelimit;

if(takelimit?=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1) // <<< что это, почему сравнивать с единицей? OrderOpenTime() может вернуть "1"???
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Com
 
Vitaly Muzichenko:

Todo tu código está mal.

comprueba el número de barra con la hora que hay...

int ticket;

void Fn()
  {
   ResetLastError();
   if(!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){Print(GetLastError());}
   else
     {
      if(iBarShift(Symbol(),0,OrderOpenTime())==1 && !OrderDelete(ticket)){Comment(GetLastError());}
     }
  }
 
Nikolay Gaylis:

comprueba el número del bar con la hora que hay...

Sí, no me fijé en el soporte.

 
Nikolay Gaylis:

comprueba el número de barra por tiempo allí...

Nikolay Gaylis:

tal vez 1 y 1, es decir, verdadero y código de error 1

ERR_NO_RESULTADO1No hay error, pero el resultado es desconocido

Print(takelimit,GetLastError()) devuelve dos valores porque la 1ª variable es de tipo bool y no necesita GetLastError, y porque tiene una coma, GetLastError devuelve el último error del código en el momento de llamar a GetLastError?