Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte VIII): Eventos de modificación de órdenes y posiciones" - página 2
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
Artem, ¡gracias de nuevo!
El método"void CEventsCollection::CreateNewEvent(COrderControl* order)" se utiliza para crear un evento comercial dependiendo del tipo de cambio de orden, es decir, crea un evento asociado a cualquier cambio de orden.....
Y el motivo del cambio de orden que se envía al evento creado es el mismo: EVENT_REASON_STOPLIMIT_TRIGGERED.
Si estoy en lo correcto por favor corrijanlo, si no por favor expliquen que es lo que no vi.
Muchas gracias por la biblioteca que ha simplificado mi trabajo en varias ocasiones,
especialmente cuando el trabajo principal no está relacionado con la programación.
Artem, ¡gracias de nuevo!
El método"void CEventsCollection::CreateNewEvent(COrderControl* order)" se utiliza para crear un evento comercial en función del tipo de cambio de orden, es decir, crea un evento asociado a cualquier cambio de orden.....
Y el motivo del cambio de orden que se envía al evento creado es el mismo: EVENT_REASON_STOPLIMIT_TRIGGERED.
Si estoy en lo cierto por favor corrijanlo, si no por favor expliquen lo que no vi.
Muchas gracias por la biblioteca que ha simplificado mi trabajo en varias ocasiones,
especialmente cuando el trabajo principal no está relacionado con la programación.
Sin vincular a la ubicación exacta de las líneas citadas, no puedo entender lo que exactamente estás hablando - sólo por la búsqueda (Shift + Ctrl + F) no pude encontrar ese código en todos los archivos de la biblioteca ...
event.SetProperty(EVENT_PROP_REASON_EVENT,EVENT_REASON_STOPLIMIT_TRIGGERED);¿Dónde se encuentra?
Sin enlazar a la ubicación exacta de las líneas citadas, no puedo entender de qué estás hablando exactamente - sólo buscando (Shift+Ctrl+F) no pude encontrar dicho código en todos los archivos de la biblioteca...
¿Dónde se encuentra?
Aquí están las líneas de la descripción en la misma parte de este artículo y el código al final del artículo: ¡subraye esta línea!
Por el momento - en la versión actual de la biblioteca, el método tiene este aspecto:
Así que, o era un bug y se ha arreglado hace tiempo, o no es crítico en la versión discutida de la librería. No recuerdo exactamente cómo era....
Por el momento, en la versión actual de la biblioteca, el método tiene el siguiente aspecto:
Así que, o bien era un bug y se ha solucionado hace tiempo, o bien no es crítico en la versión discutida de la librería. No recuerdo exactamente cómo era...
Esto es muy importante, por parte del autor lo es aún más. Si no ha abandonado su idea original. Para ayudar a los programadores novatos como yo con mi trabajo. Cuando se es principiante (estudiante) y se está aprendiendo un lenguaje de programación, o programación en general, surgen muchas dudas y preguntas a la hora de estudiar tu trabajo (librería). En este caso no estuve seguro hasta el último momento si era un error o tu intención. Revisé tu código más de una vez. Y para mí es muy importante: "o no entendí el significado del autor, o es sólo un error tipográfico del autor en su gran proyecto"
¡¿Y cómo dices que no es crítico?! Esto es un error de tu parte, con lo cual tu y yo solo estamos confundiendo a los lectores. Que estudian o aprenden como yo, de su biblioteca.
Esto es muy importante, por parte del autor lo es aún más. Si usted no ha renunciado a su idea original. Para ayudar a los programadores novatos como yo con mi trabajo. Cuando eres principiante (estudiante) y estas aprendiendo un lenguaje de programación, o programación en general, surgen muchas dudas y preguntas a la hora de estudiar tu trabajo (librería). En este caso no estuve seguro hasta el último momento si era un error o tu intención. Revisé tu código más de una vez. Y para mí es muy importante: "o no entendí el significado del autor, o es sólo un error tipográfico del autor en su gran proyecto"
¡¿Y cómo dices que no es crítico?! Esto es un error de tu parte, con lo cual tu y yo solo estamos confundiendo a los lectores. Que estudian o aprenden como yo, de su biblioteca.
:)
Te mostré el código con las correcciones resaltadas en color. Ponlas en la versión de la biblioteca adjunta a este artículo.
Por supuesto, no recuerdo si fue un error mío o no es crítico en esta versión y por eso pasó por mis ojos durante la depuración. Después de todo, ya son cuarenta y tantos artículos, y de esto hace tanto tiempo. Lo más probable es que fuera un error, que se corrigió en los artículos posteriores - un montón de cosas en la biblioteca ya se crean sobre la marcha. Por supuesto que había, y más de una, versiones de prueba de la biblioteca. Pero desde el comienzo de la descripción de su creación mucho ha sido revisado y añadido. Es por eso que esta serie de artículos se posiciona como una descripción de la creación de la biblioteca. De esta forma intento involucrar al lector en el proceso de su creación. Con pruebas y errores, y con instrucciones sobre cómo solucionarlos - para hacer visible todo el proceso - para revelar, por así decirlo, "todos los dolores de la creación" :) :)
Así pues, pido disculpas por cualquier confusión en su comprensión de lo que está pasando.....
Haz los cambios sugeridos más arriba. O déjelo para el artículo en el que se corregirá.
Quiero obtener el último símbolo de evento, ticket y tipo (apertura, cierre, modificación), ¿cómo hacerlo correctamente?
Veo que Artyom está tan ocupado que no aparece por el foro.)))))))) Tal vez pueda darte una pista, una vez que experimenté con su biblioteca. Hoy he revisado esos experimentos y he encontrado dicha función. El comentario dice que la función obtiene una lista de todas las posiciones abiertas.
Por desgracia, no puedo explicar para qué sirve, lo he olvidado todo, pero tal vez puedas averiguarlo....
Bueno... si no puedes, espera. Artem encontrará tiempo y responderá.
Cuando se recibe un tick, sobre el que se establece una orden pendiente y simultáneamente se activa (triggered) (he probado con Buy Stop), su motor no registra todos los eventos...
Se recibe el evento TRADE_EVENT_PENDING_ORDER_PLASED, pero no TRADE_EVENT_PENDING_ORDER_ACTIVATED.
Mi código es algo así
Primero busco el índice del evento antiguo (procesado) en el bucle, y a partir de él, recorro todos los nuevos hasta el final. Así, en una situación en la que en un tick se establece una orden limitada y striggeren recibe un evento sobre el establecimiento... Por favor comenta.
Llamo a ProcessTradeEvents() en OnTick() siguiendo a engine.OnTick(rates_data).