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
papaklass, c-4
El modelo de respuesta del servidor existente a través de OnTradeTransaction
me conviene, y funciona en mi EA, PERO
mi primer mensaje fue que no se devolvió ningún mensaje (en absoluto) desde el servidor,
que el trato estaba hecho (la orden se llenó por 1) y el segundo error fue
El segundo error fue que en lugar de una respuesta de que la orden fue colocada una respuesta de que fue parcialmente ejecutada (duplicada).
El problema no fue con el manejador (no tengo ninguna reclamación contra él) sino con las respuestas del servidor (una respuesta no llegó y la otra fue errónea).
El modelo de trabajo con las respuestas del servidor en mi EA NO se basa en la secuencia de las respuestas del servidor, PERO la respuesta debe ser y ser correcta.
Esto es lo que ha pasado (foto del primer post):
El Asesor Experto colocó una orden con un volumen de 3.
La orden fue ejecutada por uno - las respuestas del servidor son correctas.
Entonces el Asesor Experto modificó la orden - la respuesta del servidor es ORDER_STATE_PARTIAL - y la respuesta debería haber sido ORDER_STATE_PLACED.
Luego la orden se ejecutó 1 vez más sin ningún mensaje del servidor.
Un par de días después (imagen de abajo) repetí esta secuencia - el resultado ha cambiado (probablemente los desarrolladores han corregido algo),
Recibí un mensaje de que la transacción se produjo (segundo 21:15:02.232), pero el mensaje sobre la modificación seguía sin ser correcto.
También es muy alarmante que tres respuestas del servidor hayan llegado al mismo tiempo (21:14:53.049).
Está claro que todo funciona en el mismo hilo y que los mensajes se acumulan, pero todavía.... Estoy deteniendo la ejecución del EA,
para recibir mensajes.
¡papaklass!
La cuestión es que los programas *.ex5 se ejecutan en un solo hilo, si
habrá muchos manipuladores, será aún peor.
Ahora he comprobado específicamente la operación OnTrade y OnTradeTransaction.
Tres manejadores OnTrade o cuatro manejadores OnTradeTransaction se activan en una orden de comercio para abrir una posición de mercado (una orden de mercado). Sólo necesito un manejador OnPositionOpened para disparar.
Para cerrar una posición mediante un stop loss/stake profit, hay 3 manejadores OnTrade o 3 manejadores OnTradeTransaction activados en lugar de un OnPositionClosed. ¡La redundancia es evidente!
Estas múltiples respuestas de los manejadores de eventos existentes (OnTrade/OnTradeTransaction) no dan una respuesta clara a la pregunta: "¿Qué evento comercial ha ocurrido y cuál es el resultado de una operación comercial? Esto nos lleva a preguntarnos: "¿Por qué todo este problema?"
Con este procesamiento redundante de los eventos comerciales, es fácil que se produzcan colisiones de diferentes tipos, lo que dará lugar a errores, especialmente durante el envío masivo de órdenes comerciales por parte de los clientes.
Por lo tanto, lo que ha ocurrido en tu caso o en el de komposter (tiempo de espera) no me sorprende personalmente.
La forma en que se implementan los eventos OnTrade y OnTradeTransaction me recordó un episodio de hace 20 años... Recuerdo haber leído reseñas de nuevos juegos para Spectrum, especialmente memorable fue una reseña de un juego, donde se escribía así: "... el sonido del juego es bueno ya que puedes apagarlo...". Tengo más o menos la misma actitud hacia los eventos OnTrade y OnTradeTransaction; son tan buenos como no usarlos.
¡Yo, en cambio, uso (con éxito) estos dos manejadores!
Si, por alguna razón, OnTradeTransaction no funciona, compruebo
en OnTrade - muy conveniente porque OnTradeTransaction,
y luego OnTrade.
¡Yo, en cambio, uso (con éxito) estos dos manejadores!
Si, por alguna razón, OnTradeTransaction no funciona, compruebo
en OnTrade - muy conveniente porque OnTradeTransaction,
y luego OnTrade.
Sería realmente conveniente utilizar estos eventos (al menos para mí) si el Asesor Experto generara una petición al servidor con la frecuencia necesaria para el algoritmo de negociación como esta
Y el servidor respondería inmediatamente a dicha solicitud con información exhaustiva...
Sin embargo, asumiendo que hay "razones objetivas insuperables" que hacen imposible implementar tal conveniencia, me conformo con lo que tengo:)
Quién puede hacerlo...:)
Por cierto, descárgate la API de Plaza II del servidor de la bolsa y entenderás de dónde salen las "patas".
¡Por favor, no seas grosero! Por cierto, ¡ya son 10!
Y estás en tu derecho de no leer nada de lo que se escribe aquí.
¿Para qué sirve el tema entonces? ¿Sólo para gritar?
Si crees que hay un error, confírmalo con los registros y el código (nadie descifrará tus imágenes).
Si quieres encontrar una solución fiable, escucha lo que te dicen (abandona el modelo de eventos y analiza el estado actual).
Yo utilizaría OnTradeTransaction uOnTrade sólo para la reacción inmediata al cambio de la situación comercial. Pero todo el procesamiento se colocaría en un manejador, como sugiere Vasiliy(OnRefresh()).
Buena suerte.
¿Para qué sirve el tema entonces? ¿Sólo para gritar?
Si crees que hay un error, confírmalo con los registros y el código (nadie descifrará tus imágenes).
Si quieres encontrar una solución fiable, escucha lo que te dicen (abandona el modelo de eventos y analiza el estado actual).
Yo utilizaría OnTradeTransaction uOnTrade sólo para la reacción inmediata al cambio de la situación comercial. Pero todo el procesamiento se colocaría en un manejador, como sugirió Vasiliy(OnRefresh()).
Buena suerte.
¡Komposter!
O lees todo lo que has escrito o...
2.Lo que escriba en estas páginas es MI derecho como participante del foro,
y la grosería no es apropiada en ningún caso.
3. Independientemente de cómo se gestione el error, si la respuesta del servidor no es la que debería ser, el resultado será el mismo: ¡ERROR!
4. Es probable que no te estés comerciando a ti mismo.
pronych y ....
1.>> LUCKY REMOTE es la respuesta a un ataque descarado. Sea cual sea la pregunta, esa es la respuesta. >> Podría haber sido un héroe... ))
Probablemente tengas la percepción justa del mundo que te rodea...
2. ¿Sois programadores o sois "escritores"?
3. Que alguien responda a una simple pregunta: ¿Qué debe responder el servidor al comando "Modificar orden"?
4. ¿Por qué la documentación entonces? ¿Artículos? Cierra los ojos y chispea todo lo que quieras. El CLIENTE PAGA de todos modos (¡y él es el que tiene que escurrir el bulto!).