Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1062

 

El autor de este guión, según tengo entendido, no es de Rusia, me temo que no hay respuesta.

Así que voy a pedir ayuda aquí.

Cómo arreglar la advertencia :

posible pérdida de datos debido a la conversión de tipos

En este guión.

https://www.mql5.com/ru/articles/download/5204/scraperbot04.mq5

 
erotin:

El autor de este guión, según tengo entendido, no es de Rusia, me temo que no hay respuesta.

Así que voy a pedir ayuda aquí.

Cómo arreglar la advertencia :

posible pérdida de datos debido a la conversión de tipos

En este guión.

https://www.mql5.com/ru/articles/download/5204/scraperbot04.mq5

Prueba esto

f_US=(float)StringToDouble(StringSubstr(CharArrayToString(ch_Buffer),i,8));
 


¿He entendido bien que en mql5 no hay posiciones en el historial y sólo hay tratos? A juzgar por la presencia de HistoryDealsTotal() y la ausencia de HistoryPositionsTotal().

¿Por qué entonces, en la pestaña "Historial" del terminal, se puede seleccionar "Posiciones" y son visibles en el historial?

¿Cómo obtener el precio de cierre de las posiciones en este historial?


 
secret:

¿He entendido bien que en mql5 no hay posiciones en el historial y sólo hay tratos? A juzgar por la presencia de HistoryDealsTotal() y la ausencia de HistoryPositionsTotal().

Sí.

¿Por qué entonces, en la pestaña "Historial" del terminal, se puede seleccionar "Posiciones" y son visibles en el historial?

Este es uno de los intentos de interpretar la historia como posiciones. En mi opinión, no es el más exitoso.

¿Cómo obtener el precio de cierre de las posiciones en este historial?

Hago lo siguiente en el seto.

#property script_show_inputs

#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

input TICKET_TYPE PositionTicket = 0;

void OnStart()
{
  if (OrderSelect(PositionTicket, SELECT_BY_TICKET))
    OrderPrint();
}
 
Alekseu Fedotov:

Prueba esto

Gracias
 
fxsaber Sí.

Resulta que para imprimir un beneficio de una operación abierta, hay que trabajar con una lista y un ticket, y para imprimir un beneficio de la misma operación pero cerrada, hay que trabajar con otra lista y otro ticket...

 
secret:

Resulta que para imprimir el beneficio de una operación abierta, hay que trabajar con una lista y un ticket, y para imprimir el beneficio de la misma operación pero cerrada, hay que trabajar con otra lista y otro ticket?

No entiendo la pregunta.

 
secret:

Resulta que para imprimir un beneficio de una operación abierta, hay que trabajar con una lista y un ticket, y para imprimir un beneficio de la misma operación pero cerrada, hay que trabajar con otra lista y otro ticket...

Cada orden y cada operación tienen su propio ticket, pero también tienen ORDER_POSITION_ID y DEAL_POSITION_ID, respectivamente. Esto es lo que determina si pertenecen o no a un puesto.

 
secret:

¿Cómo se obtiene el precio de cierre de las posiciones en esta historia?

También debe saber que este precio de cierre, incluso en una cobertura, puede tener más decimales que Dígitos.


Y no tiene por qué estar ni siquiera cerca del precio que tenía el símbolo en el momento de cerrar la posición.

Los desarrolladores quisieron hacer una analogía con la historia de MT4, pero fracasaron.

Cuando quiero ver el historial de operaciones en el Terminal, utilizo la extensión GUI. Muestra las posiciones históricas como en MT4. Los precios de cierre corresponden a la hora de cierre, etc.

Las posiciones históricas son, por tanto, una convención a la que se pueden dar diferentes interpretaciones.
 
fxsaber:

No entiendo la pregunta.

Para calcular el beneficio de una operación, se necesita, entre otras cosas, el precio de apertura. Mientras la operación está abierta, el precio abierto debe tomarse de la lista de posiciones para el ticket de posición. Y cuando se cierra la operación, entonces hay que tomar el mismo precio abierto de otra lista (operaciones, no posiciones) para otra entrada. ¿Verdad?