
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
Hola,
Soy principiante y estoy haciendo mis prácticas. Pero no soy capaz de solucionar el siguiente error. Todo lo he podido arreglar entre la documentación y los foros pero esto no hay manera.
Quiero aprender a modificar la posición en curso usando TRADE_ACTION_MODIFY. Es un código con una sóla posición abierta por vez.
Pensé que era algo sencillo, poner la orden (action) y el campo que deseara modificar con el nuevo valor pero no hay manera.
En este caso sólo quiero modificar el valor del Stop Loss.
Os dejo un ejemplo:
He visto en el error 10013 que se suele deber a que no hay operación en curso. Entonces uso lo siguiente:
int total=OrdersTotal(); // total number of placed pending orders
Alert("ORDENES ABIERTAS = ",total);
Y siempre aparece 0 (CERO). Sin embargo es mentira.
No sé si se me escapa algo, ¿o debo decirle a la orden MODIFY que orden debe modificar aparte de lo ya especificado?
He visto que hay comandos de Ticket, Operation, etc., Pero he intentado usarlos durante 2 días sin éxito.
He probado el mismo código con SLTP (no tengo claro si debe ser MODIFY o SLTP) pero el error es el mismo.
Espero que alguien me pueda ayudar.
Gracias de antemano.
ACTUALIZO:
Parece que ahora funciona correctamente con dos correcciones:
1. He puesto SLTP el position ticket como se muestra en https://www.mql5.com/es/docs/constants/tradingconstants/enum_trade_request_actions#trade_action_sltp
ulong position_ticket= PositionGetTicket(0);
.....y entre los mrequests:
mrequest.position = position_ticket; // ticket de la posición
En el enlace, hacen un for iterativo y consiguen cada ticket con PositionGetTicket(i);
Se me ha ocurrido poner PositionGetTicket(0); en la asunción de que sólo hay una posición y debe ser la 0.
Pero no sé si sería lo más ortodoxo o pueda ocasionar problemas. Acepto comentarios y recomendaciones.
2. Tras esto daba todo TRUE salvo el OrderSend de la alerta y el error 10025 (mientras el res daba TRUE).
10025
TRADE_RETCODE_NO_CHANGES
Sin cambios en la solicitud
Tuve que quitar la ALERTA de OrderSend porque claro se enviaba de nuevo y al ser false (por no haber cambios respecto a la anterior) se iba al ELSE y me decía que no había podido podificarse :S
Un Saludo