Preguntas de OrderSend() - página 6

 
maryan.dirtyn:

Me estoy devanando los sesos... el tope no cuaja... y un montón de errores. esto es lo que queda del experimento, y ya no funciona

Si hace esto, no hay errores, pero el stop-loss sigue sin estar fijado

contestado aquí
 
Yedelkin:

Por lo visto, no he explicado bien el problema anterior. Déjame intentarlo de nuevo.

Durante el último año, la descripción de la lista de valores de la enumeraciónENUM_ORDER_TYPE_FILLING se ha modificado al menos tres veces. La descripción anterior era la siguiente

ENUM_ORDER_TYPE_FILLING

Identificador

Descripción

ORDER_FILLING_FOK

Una operación sólo puede ejecutarse en el volumen especificado y a un precio igual o mejor que el especificado en la orden. Si no hay suficiente oferta en el mercado en ese momento para el símbolo de la orden, ésta no se ejecutará. Este tipo de llenado se utiliza en el modo de ejecución SYMBOL_TRADE_EXECUTION_INSTANT oSYMBOL_TRADE_EXECUTION_REQUEST.

ORDER_FILLING_IOC

Un acuerdo para ejecutar una operación al máximo volumen disponible en el mercado dentro del volumen especificado en la orden y a un precio igual o mejor que el especificado en la orden. En este caso, no se realizarán pedidos adicionales para el volumen que falta. Este tipo de llenado sólo puede estar disponible en los modos de ejecución SYMBOL_TRADE_EXECUTION_MARKET ySYMBOL_TRADE_EXECUTION_EXCHANGE dependiendo de la configuración del servidor de operaciones.

ORDEN_DE_RELLENO_DE_RETORNO

Acuerdo para realizar una operación al máximo volumen disponible en el mercado dentro del volumen especificado en la orden y a un precio igual o mejor que el especificado en la orden. En este caso, se realizará un pedido adicional por el volumen que falte al precio especificado en este pedido. Este tipo de llenado se utiliza sólo para las órdenes pendientes (TRADE_ACTION_PENDING).

Como podemos ver fácilmente, existe una correspondencia uno a uno entre ORDER_FILLING_RETURN y las órdenes pendientes, a saber ORDER_FILLING_RETURN podría aplicarse sólo a las órdenes pendientes y el campo type_filling de todas las órdenes pendientes podría llenarse sólo con el valor de ORDER_FILLING_RETURN.

En el caso de las órdenes de mercado(action==TRADE_ACTION_DEAL) el campo type_filling debería haberse rellenado en función de los modos de ejecución establecidos en el lado del servidor.

Así, teníamos un cierto paradigma: si había una orden pendiente,ORDER_FILLING_RETURN; si había una orden de mercado, ORDER_FILLING_FOK u ORDER_FILLING_IOC (dependiendo del modo).

Ahora todo está un poco al revés, a saber:

ENUM_ORDER_TYPE_FILLING

Identificador

Descripción

ORDER_FILLING_FOK

Esta política de llenado de órdenes significa que la orden sólo puede llenarse hasta el volumen especificado. Si no hay suficiente volumen del instrumento financiero en el mercado en ese momento, la orden no se ejecutará. El volumen requerido puede ser compilado a partir de varias ofertas actualmente disponibles en el mercado.

ORDER_FILLING_IOC

Indica el acuerdo para ejecutar una operación hasta el máximo volumen disponible en el mercado dentro del volumen especificado en la orden. Si la ejecución completa no es posible, la orden se llenará hasta el volumen disponible, y el volumen no cumplido se cancelará.

ORDEN_DE_RELLENO_DE_RETORNO

Este modo sólo se utiliza para las órdenes ORDER_TYPE_BUY_LIMIT y ORDER_TYPE_SELL_LIMIT. En caso de ejecución parcial, la orden limitada con el volumen restante no se elimina, sino que sigue vigente.

Para las órdenes ORDER_TYPE_BUY_STOP_LIMIT y ORDER_TYPE_SELL_STOP_LIMIT se creará en el momento de la activación la correspondiente orden limitada ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT con el tipo de ejecución ORDER_FILLING_RETURN.

La restricción de utilizar ORDER_FILLING_FOK y ORDER_FILLING_IOC sólo con órdenes de mercado ha desaparecido. Además, no existe ninguna restricción para utilizar ORDER_FILLING_FOK y ORDER_FILLING_IOC con órdenes de mercado en función del modo de ejecución establecido en el servidor. Hay una restricción en el uso de ORDER_FILLING_RETURN sólo con órdenes limitadas y stop_limit .

Así que mi pregunta es: ¿Es aceptable utilizar ORDER_FILLING_FOK y ORDER_FILLING_IOC para todas las órdenes (tanto de mercado como pendientes), incluidas las órdenes limitadas y stop_limit? ¿Alguien ha descubierto los cambios?

Sí, es un poco turbio este tema.

Si existe una correspondencia completa entre ENUM_SYMBOL_TRADE_EXECUTION y ENUM_ORDER_TYPE_FILLING entonces el segundo es obviamente innecesario.

Por lo tanto, no hay moralidad, y lo más probable es que se acepten diferentes valores deENUM_ORDER_TYPE_FILLINGcon un mismo valor de ENUM_SYMBOL_TRADE_EXECUTION . MQ describiría aquí una tabla de posibilidades, pero lo más probable es que estos datos dependan de la configuración del servidor de tratamiento.

Y de ahí la segunda moraleja, lo que se necesita después de todo:

senecesita una función que devuelva una lista de opciones válidas (ENUM_ORDER_TYPE_FILLING), para el tipo de orden solicitado (inmediata o pendiente).

No hay muchas opciones ahí, así que puedes meter el int a través de "|".

Si me equivoco, dame un mago, donde buscar esta pregunta.



 

Para resolver esta cuestión, he acudido a la biblioteca estándar (por costumbre, si no está claro cómo lo hacen los demás).

Allí se dio la función para la herencia conveniente, mientras que en la clase CTrade no se utiliza SetTypeFilling(), el campo type_filling se inicializa por defecto cero que corresponde a ORDER_FILLING_FOK según la enumeración.

Eso es todo, no hay más trabajo. Y pensé que como este campo no está presente en la interfaz, significa que el llenado está automatizado en la clase.

SZY en general, a la espera de una respuesta, cómo solucionarlo :)
 
Por ahora, veo una salida: aporrear el servidor hasta que te dé la respuesta que necesitas.
 
her.human:
De momento, veo una solución: aporrear el servidor hasta obtener la respuesta deseada.

Una buena noche de entretenimiento, me hizo reír hasta el estómago.

Los chinos hackearon el servidor principal del Pentágono.

Todos los chinos han intentado una vez escribir la contraseña.

Todos los demás escribieron "Mao Tse Tung".

En 5*10^7 intentos, el servidor dice que la contraseña es "Mao Tse Tung".

 
her.human:
Por ahora, veo una salida: golpear al servidor hasta que se obtenga la respuesta correcta.

una salida estúpida.

Debería hablar primero con su DC. Averigüe qué tipos de ejecución admiten y qué tipos de lista metaquot corresponden a sus tipos de ejecución.

porque el hecho de que metaquotes haya ideado -3 tipos de llenado y 3 tipos de tiempo- no significa que sean un reflejo de la realidad a la hora de llenar órdenes en un broker real.

 
sergeev:

una salida estúpida.

Debería hablar primero con su DC para saber qué tipos de ejecución admiten y qué tipos de lista de metacotizaciones corresponden a sus tipos de ejecución.

porque el hecho de que metaquotes haya ideado -3 tipos de llenado y 3 tipos de tiempos- no significa que sean un reflejo de la realidad a la hora de llenar órdenes en un broker real.

Eso es lo que digo, todo depende de la configuración del servidor,

Pero llamar a todas las empresas de corretaje también es un problema,

Por ejemplo, en una empresa de corretaje puede recibir un pedido de un corretaje real,

pero pasar por encima de todo y escribir dillings de interruptores en su código es una exageración.

Si cree que ya se ha registrado con nosotros, puede empezar desde el principio,

PS estás de acuerdo en que el código normal se escribe de forma unificada, para cualquier trato, las excepciones son posibles pero en primer lugar las excepciones confirman las reglas, y en segundo lugar si hay excepciones hay que escribir las excepciones.

Aquí resulta tal tautología.

 
Urain:

A eso me refiero, todo depende de la configuración del servidor,

Pero sería problemático llamar a cada empresa de corretaje,

Si no conoce la diferencia entre ambos, puede pensar que el pedido se copiará al correcto,

pero pasar por encima de todo y escribir dillings de interruptores en su código es una exageración.

P.D.: debes estar de acuerdo en que el código normal está escrito de forma unificada, para cualquier tipo de trato,

PS está de acuerdo en que el código normal se escribe de forma unificada, para cualquier trato, las excepciones son posibles, pero en primer lugar las excepciones sólo confirman las reglas, y en segundo lugar si hay excepciones hay que escribir las excepciones. Aquí resulta tal tautología.

Esta es la cuestión.

las metacotizaciones están desordenadas con los tipos de ejecución y los tiempos de ejecución. no son estándar en el sentido de que en realidad las órdenes IOC y FOK se refieren a los tiempos de ejecución.

El tipo de ejecución de la orden solía llamarse adecuadamente AON, pero luego se eliminó.

Mira la especificación FIX que utiliza FC y ejecuta las órdenes

FIX 4.4 : TimeInForce <59> field

Type: char

Used In
Description

Specifies how long the order remains in effect. Absence of this field is interpreted as DAY. NOTE not applicable to CIV Orders.

Valid values:
0 = Day (or session)
1 = Good Till Cancel (GTC)
2 = At the Opening (OPG)
3 = Immediate or Cancel (IOC)
4 = Fill or Kill (FOK)
5 = Good Till Crossing (GTX)
6 = Good Till Date
7 = At the Close

He marcado los tipos que tomaron meta cuotas a sí mismos. Pero como se puede ver todos están en un grupo de la etiqueta TimeInForce <59>.

Y ahora, por favor, díganme cómo el corredor que hace ofertas en el mercado procesará el tipo de put IOC y el tiempo GTD en la orden MT. Porque se trata de un solo campo, no de dos diferentes.

Por lo tanto, cada corredor pensará por sí mismo qué hacer con el relleno y qué tipo utilizar y cómo retirar la orden.


La única gracia es la diferencia entre la orden de mercado y la pendiente, es decir, algunos tipos de ejecución de órdenes se utilizan sólo para las órdenes pendientes y otras para las de mercado. En general, deberíamos analizar este punto y discutirlo.


El nombre Todo-Onada está en una etiqueta completamente diferente ExecInst <18>, que no se pasa en la orden MT de ninguna manera. Se asume implícitamente (probablemente) para el tipo FOK

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
sergeev:
...

Alex se encarga de este tema por favor. Desgraciadamente, soy una persona que flota en estos temas.

Haz sugerencias a la SD, habla con ellos.

Tenemos que poner el tema en algún tipo de orden.

Lo que tenemos ahora no es en absoluto utilizable para la programación profesional.

 
Urain:

Alex, por favor, controla este tema. Lamentablemente soy un poco nadador en estos temas.
Haz sugerencias a la sd, habla con ellos.
Hay que poner el tema en orden.
No estoy seguro de que lo que tenemos ahora sea adecuado para la programación profesional.

Ja. O soy estúpido o mis esquís no se mueven.

Usted mismo ve que cada mes methaquotes hace una conexión con una nueva bolsa o mercado.
De lo que concluyo que en este estado de cosas sus programadores atracan MT y FIX sin problemas (o con alguna tensión con limitación de uno de ellos).
Así que pueden combinar los tipos de tiempo FOK y GTC, lo que significa que es poco probable que cambien algo en un futuro próximo, ya que el trabajo está en curso.
Al mismo tiempo (entiendo), que para el intercambio el puente de MT puede establecer sólo dos tipos - AON o Parcial. E inventado en MT Return - probablemente va a Parcial.

En general, las cuestiones de interacción FIX broker y MT servidor se encuentran en el plano de la habilidad y la comprensión progeries en el corredor, que hacen los puentes de MT a sus proveedores. Y no creo que metaquotes va a cambiar nada, porque tienen mucho tiempo y promover activamente la plataforma a los mercados, y por lo tanto la estructura interna de MT servidor bastante coherente con las realidades.


Razón de la queja: