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
Lee los códigos de error de ejecución y haz que tu código cumpla con la información que allí se da, por ejemplo....
Hola RaptorUK,
Gracias por la pista.
Otra cuestión (más una.....);
Digamos que en el Broker ECN una operación está abierta y según los "Requisitos y Limitaciones en la Realización de Operaciones" una orden de mercado no puede ser cerrada si el Stoploss está dentro de la distancia de congelación, en ese caso ¿esta función CloseAll cerrará incluso aquellas órdenes que están dentro de la distancia de congelación?
Saludos cordiales
Luis
Hola RaptorUK,
Gracias por la pista.
Otra cuestión (más uno.....);
Digamos que en el Broker ECN una operación está abierta y según los "Requisitos y Limitaciones en la Realización de Operaciones" una orden de mercado no puede ser cerrada si el Stoploss está dentro de la distancia de congelación, en ese caso ¿esta función CloseAll cerrará incluso aquellas órdenes que están dentro de la distancia de congelación?
Hola RaptorUK,
Si es posible me gustaría pedirte ayuda en este tema;
Este trozo de código encuentra el último OrderLots() y lo multiplica por el factor multiplicador, pero algunas veces se pasa este factor y tengo órdenes de esta manera; 0,01, 196,83, 590,49, etc.
Hay que decir que tengo un límite de órdenes abiertas, en este caso 5. Ahora, la forma en que estoy viendo esta lógica, incluso si viene una condición para abrir una orden por encima de 5 no se abrirá y, a continuación, el número de órdenes en la piscina se limitan a 5 por lo que, si el código sólo ver 5 órdenes en la piscina el tamaño del lote para los pedidos debe ser; 0,01, 0,02, 0,04, 0,08, 0,16. ¿Hay algo malo en este código que yo no sepa?
(espero que la sangría esté bien...)
Saludos cordiales
Luis
Hola RaptorUK,
Si es posible me gustaría pedirte ayuda en este tema;
Este trozo de código encuentra el último OrderLots() y lo multiplica por el factor multiplicador, pero algunas veces se pasa este factor y tengo órdenes de esta manera; 0,01, 196,83, 590,49, etc.
Hay que decir que tengo un límite de órdenes abiertas, en este caso 5. Ahora, la forma en que estoy viendo esta lógica, incluso si viene una condición para abrir una orden por encima de 5 no se abrirá y, a continuación, el número de órdenes en la piscina se limitan a 5 por lo que, si el código sólo ver 5 órdenes en la piscina el tamaño del lote para los pedidos debe ser; 0,01, 0,02, 0,04, 0,08, 0,16. ¿Hay algo malo en este código que yo no sepa?
(espero que la sangría esté bien...)
Lo hago así...
si el OrderSelect() falla MLots = LotSize ?? por qué ? tu sangría no ayuda a ver lo que está pasando con tus declaraciones if y llaves . . ¿quieres hacer esto?
Hice esto...
. como un método rápido y sucio para evitar problemas de doble comparación, ¿has leído esto?¿Puede precio != precio?
si el OrderSelect() falla MLots = LotSize ?? por qué ? tu sangría no ayuda a ver lo que pasa con tus declaraciones if y llaves . . ¿quieres hacer esto?
Hice esto...
. como un método rápido y sucio para evitar los problemas de doble comparación, ¿ha leído esto?¿Puede precio != precio?
Hola RaptorUk,
Gracias por su pronta respuesta.
Entonces, supongo que es mejor no hacer uso de otra cosa porque eso está ahí para nada. Y gracias por el enlace proporcionado.
Saludos cordiales
Luis
Hola RaptorUK,
Tengo un problema (más uno.....)
Algunas órdenes se cierran antes de tiempo, lo que quiero decir es;
Estas órdenes han estado abiertas y hay un límite para abrir hasta 6. Todas las órdenes deberían cerrarse por medio del TrailingStop, pero las órdenes 1. 3 y 5 se han cerrado antes que las otras que se han cerrado después (07:43).
Debido a que estas 3 órdenes se han cerrado antes que las otras, se da espacio a las órdenes abiertas 7, 8 y 9 y estas se abren con un lote basado en el último lote (2.43).
Así que, por lo que entendí, los cierres erráticos de las órdenes a las 07:23 no deberían haber ocurrido y no se han encontrado errores...
El código para cerrar todas esas órdenes mediante TrailingStop es este;
¿Podría fallar este código y cerrar las órdenes en diferentes momentos?
Saludos cordiales
Luis
El código para cerrarlas todas por medio de TrailingStop es este;
¿Podría fallar este código y cerrar las órdenes en diferentes momentos?
OK, esto no tiene sentido... un trailing SL se establece de manera que si el precio va con una Orden el SL se mueve hacia el precio por lo que si el nuevo SL es golpeado habrá menos pérdida o incluso un beneficio. ¿Por qué tener un SL de arrastre si vas a cerrar la operación de todos modos? Para mí eso no es un SL de arrastre, no es un SL de ningún tipo, ya que estás cerrando activamente la operación a través del EA, no del SL.
Tal vez sufunción CloseAllOnSL() hace algo diferente de lo que creo que hace, pero, sin embargo, no tiene comentarios que explican lo que su código está tratando de hacer. No hay trailing Sl como no hay OrderModify().
Lee esto:¿Qué son los valores de retorno de las funciones? Cómo los utilizo?
añada más información a la sentencia Print, añada OrderTicket(), OrderLots(), OrderClosePrice(), Bid, Ask, etc, etc cualquier información que necesite para determinar cuál era el problema cuando se produjo el error, yo no puedo volver fácilmente en el tiempo y averiguar todo esto, así que cuando ocurra imprímalo en el registro.
Así que, por lo que he entendido, los cierres erráticos de las órdenes a las 07:23 no deberían haber ocurrido y no se han encontrado errores...
Lee esto:¿Qué son los valores de retorno de las funciones? Cómo los utilizo?
añada más información a la sentencia Print, añada OrderTicket(), OrderLots(), OrderClosePrice(), Bid, Ask, etc, etc cualquier información que necesite para determinar cuál era el problema cuando se produjo el error, yo no puedo volver fácilmente en el tiempo y averiguar todo esto, así que cuando ocurra imprímalo en el registro.
Hola RaptorUk,
Gracias por su tiempo.
El código para TrailingStop está en otra parte, el código enviado es sólo para cerrar todo una vez que la orden ha sido cerrada por medio de TrailingStop.
No obstante, sigo tu consejo y busco algún error que pueda dar más información de por qué las órdenes se cierran antes que otras.
Por cierto, en el siguiente código tiene sentido cambiar la posición de MLots = 0; desde el lugar actual hasta antes del bucle for?
Un saludo
Luis