Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Funciones útiles y de uso frecuente:
Se ha rediseñado la función GetPositionPrice():
Esta función muestra un resultado erróneo, o mejor dicho, equivocado. Lo he investigado y he descubierto que el ID de la posición no cambia en el giro en U (es decir, durante una operación de entrada/salida), como se describe en la documentación:
https://www.mql5.com/ru/docs/constants/tradingconstants/positionproperties
Una anulación de posición cambia su ID a la entrada de la orden que dio lugar a la anulación.
Su GetPositionPrice puede amontonar 2 o más posiciones de dirección opuesta si hay una inversión, y calcula un precio medio para ellas. Este precio medio de una posición no tiene ninguna utilidad práctica.
Entonces, ¿cambia el ID de posición en la inversión o no?
¿Cómo se puede saber en una operación de entrada/salida qué volumen cerró una posición anterior y cuál abrió una nueva?
Se puede comparar con la posición abierta actual. Pero es mejor examinar la historia de la posición por su id, que no cambia cuando se invierte la posición... Volúmenes de compra/venta para ayudar.
Desde hace poco, la identificación de la posición cambia cuando se da la vuelta. La documentación al respecto ya ha sido actualizada....
IDENTIFICADOR_DE_POSICIÓN
El ID de posición es un número único, que se asigna a cada posición recién abierta y no cambia a lo largo de su vida. Corresponde al ticket de la orden con la que se abrió la posición.
El identificador de la posición se especifica en cada orden (ORDER_POSITION_ID) y en cada operación (DEAL_POSITION_ID) que la haya abierto, modificado o cerrado. Utilice esta propiedad para buscar órdenes y operaciones relacionadas con la posición.
La anulación de una posición cambia su identificador a la entrada de la orden que dio lugar a la anulación.
largo
Podrías compararlo con el actual abierto. Pero es mejor examinar la historia de la posición por la identificación, que no cambia durante una inversión... Volúmenes de compra/venta para ayudar.
Esto no es una opción en absoluto. La posición anterior también podría estar abierta debido a una inversión, etc. Podría ser una opción, pero claramente no es la óptima.
Desde hace poco, la identificación de la posición cambia cuando te das la vuelta. La documentación al respecto ya ha sido actualizada....
IDENTIFICADOR_DE_POSICIÓN
El ID de posición es un número único, que se asigna a cada posición recién abierta y no cambia a lo largo de su vida. Corresponde al ticket de la orden con la que se abrió la posición.
El identificador de la posición se especifica en cada orden (ORDER_POSITION_ID) y en cada operación (DEAL_POSITION_ID) que la haya abierto, modificado o cerrado. Utilice esta propiedad para buscar órdenes y operaciones asociadas a la posición.
La anulación de una posición cambia su identificador a la entrada de la orden que dio lugar a la anulación.
largo
Está escrito así, pero en realidad nada cambia.
Si quieres, mi código:
Donde deal2_ticket es el ticket de la transacción de entrada/salida, deal1_ticket es el ticket anterior a la transacción de entrada/salida, deal3_ticket es el ticket posterior a la transacción de entrada/salida. En los tres casos obtengo el mismo ID de posición.
Lo dice, pero en realidad nada cambia.
Si quieres, mi código:
Donde deal2_ticket es el ticket de la transacción de entrada/salida, deal1_ticket es el ticket anterior a la transacción de entrada/salida, deal3_ticket es el ticket posterior a la transacción de entrada/salida. En los tres casos obtengo el mismo ID de posición.
¿Y cómo podemos determinar en una operación de entrada/salida qué volumen cerró la posición anterior y cuál abrió la nueva?
Este Asesor Experto se ejecuta en el modo "Depuración en el historial" en una cuenta de red. El ejemplo es un poco tosco, porque se calcula que sólo hay una operación de tipo "IN/OUT" en el historial de operaciones.
Al principio, después de todas las operaciones ejecutadas y el cierre completo de una posición, se muestran las descripciones de todas las operaciones(DEAL_POSITION_ID, DEAL_VOLUME, DEAL_ENTRY,DEAL_TYPE), en ese DEAL_POSITION_ID para una operación de tipo IN/OUT se memoriza.
A continuación, recorre de nuevo el historial y suma todas las entradas de las operaciones con DEAL_POSITION_ID.
Esto es aproximadamente lo que obtenemos:
Está cambiando para mí. Prueba con la última versión 1340.