Preguntas de un "tonto" - página 135

 
Cmu4:

Reduzco el volumen por contraorden, escribo un comentario en él, pero el comentario se queda en él, no se "aferra" a la posición...

Lo más interesante es que si la orden se envía con un comentario en la dirección de la posición, recibe este comentario, si es en contra - no.

¿Tal vez sea un error?

He mirado mi EA en modo visualización y he visto que a veces los comentarios se "pegan" y otras veces no. No puedo decir nada todavía (no es crítico para mí). Observe un poco más y escriba al Servicio de Atención al Cliente si encuentra un patrón que pueda reproducirse.
 
tol64:
Miré en mi modo de visualización y vi que a veces los comentarios se "aferran" y otras veces no. No puedo decir nada todavía (no es crítico para mí). Observa un poco más y escribe al Service Desk si encuentras algún patrón en la repetición.

Ya lo hice. Hmm, siempre me equivoco. Y hay una cosa muy buena que es el "extracto" de un comentario. Ufff...

Por cierto, aquí hay una función sencilla para obtener el comentario de la última operación (sólo números en los comentarios) en una posición, ¿es correcto? De lo contrario, tal vez estoy "raspando" mal...

double OrderLastMy()
{HistorySelectByPosition(pos_id);
 int total=HistoryDealsTotal();
 double Comments = StringToDouble(HistoryDealGetString(total,DEAL_COMMENT));
 if (Comments!=0)
  {Print("comment = ", Comments));
   return(Comments);
  }
 else return(0);
 }
 
Cmu4:

Ya lo hice. Hmm, siempre me equivoco. Y hay una cosa muy buena que es el "extracto" de un comentario. Ufff...

Por cierto, aquí hay una función sencilla para obtener el comentario de la última operación (sólo números en los comentarios) en una posición, ¿es correcto? O tal vez no estoy "entendiendo bien"...

double OrderLastMy()
{HistorySelectByPosition(pos_id);
 int total=HistoryDealsTotal();
 double Comments = StringToDouble(HistoryDealGetString(total,DEAL_COMMENT));
 if (Comments!=0)
  {Print("comment = ", Comments));
   return(Comments);
  }
 else return(0);
 } 

La función HistoryDealGetString() debe tener como primer parámetro el ticket de la transacción, y hasta ahora tiene el número de tratos en el historial.

 
Yedelkin:

El primer parámetro de la función HistoryDealGetString() debería ser un ticket de transacción, pero hasta ahora está especificando el número de transacciones en el historial.

Lo he corregido, pero sigue sin funcionar. Señores, por favor, aconsejen, porque estoy confundido...

double OrderLastMy()
{HistorySelectByPosition(pos_id);
 int total=HistoryDealsTotal();
 int ticket = HistoryDealGetTicket(total);
 double Comments = StringToDouble(HistoryDealGetString(ticket,DEAL_COMMENT));
 if (Comments!=0)
  {Print("commentttt = ", ticket);
   return(Comments);
  }
 else return(0);
 }
 
 
 
Cmu4:

Lo he arreglado, pero sigue sin funcionar. Señores, por favor, aconsejen, porque estoy confundido...

Muy bien, sigamos adelante :)

Esta es la línea.

int ticket = HistoryDealGetTicket(total);
no tiene en cuenta que la numeración de los elementos de las listas (incluida la numeración de las operaciones en la lista de operaciones) comienza por "0", no por "1". Por lo tanto, al especificar el valor total como "número de transacción en la lista de transacciones", está especificando un número inexistente. Ver ejemplo en MQL5 Reference / Trading Functions / HistoryDealGetTicket.
 
Yedelkin:

Muy bien, sigamos adelante :)

Esta es la línea

no tiene en cuenta que la numeración de los elementos de las listas (incluida la numeración de las operaciones en la lista de operaciones) comienza por "0", no por "1". Por lo tanto, al especificar el valor total como "número de transacción en la lista de transacciones", está especificando un número que no existe. Vea el ejemplo en MQL5 Reference / Trading Functions / HistoryDealGetTicket.
Muchas gracias, añadiendo -1 se ha solucionado todo (espero que sí, de momento lo he comprobado mediante la impresión). :)
 
Es extraño...
   datetime Arr[], time1;
   int t;

   t=CopyTime(_Symbol,_Period,0,1,Arr);
   time1=Arr[0];
Print(time1) no imprime nada en esta versión del código, pero en esta otra:
   datetime Arr[], time1;

   CopyTime(_Symbol,_Period,0,1,Arr);
   time1=Arr[0];

- salidas.

¿Es un error o una característica?

 
¿Quizás t debería definirse como datetime?
 
Cmu4:
¿Quizás t debería definirse como datetime?

t no puede ser datetime, lea atentamente la ayuda de CopyTime:

"Valor de retorno":

Elnúmero deelementos del array copiados o -1 en caso de error".

Intuitivamente, parece que el retorno de esta función se procesa y el valor de retorno se asigna con seguridad a la variable t... y en este punto el programa se cuelga, como si no se quisiera copiar nada más en Arr. Pero supuestamente pensé que la copia en el array debe realizarse primero, y sólo entonces - asignar a la variable t el número devuelto de elementos copiados. Pero aquí va...
 
alph:

¡Hola!

He escrito un EA, todo funciona. Pero tengo un error en la línea de apertura de ' request.type_filling = ORDER_FILLING_AON;'-identificación no declarada y conversión implícita de enum

No puedo averiguar qué está mal, todos los EAs compilados hasta ahora con las mismas cadenas funcionan como antes.

Gracias de antemano.

Si hace clic en el enlace ORDER_FILLING_AON, verá que el nombre acaba de cambiar.
Razón de la queja: