Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXIII): Clase comercial principal - control de parámetros permitidos" - página 3

 
Alexander:
Hola, he descargado la última versión de la biblioteca y Experto Part_23, poner el modo visual y el modo de mercado en el probador
las ordenes se abren, pero todas las ordenes pendientes no, en el diario escribe "2019.10.27 10:13:32.157 2019.09.23 10:00:02 failed sell stop limit 2.00 RTS-12.19 at 135750 (135800) sl: 135900 tp: 135600 [Invalid expiration].
Símbolos de bolsa, broker Otkritie, versión 5.00 build 2190.
También. En artículos anteriores, creo que en la parte 14 o 15, prometió crear clases para trabajar junto con la colección de símbolos.
con el vaso, pero por alguna razón no las has creado, y estas son las necesidades básicas de la biblioteca junto con los símbolos y las cuentas, y ya has dejado ya

lejos en las mejoras de la biblioteca (recursos, sonidos, etc.) y creo que te has saltado las tareas básicas.

Gracias, la biblioteca es muy necesaria.

Hola. El trabajo con el cristal se implementará más tarde - después de la creación de la clase de comercio.

Creo que en esta parte de la descripción de la biblioteca hay una posibilidad de establecer los valores correctos de caducidad de forma automática:

CTrading::SetCorrectTypeExpiration(const ENUM_ORDER_TYPE_TIME type=ORDER_TIME_GTC,const string symbol=NULL);
CTrading::SetCorrectTypeFilling(const ENUM_ORDER_TYPE_FILLING type=ORDER_FILLING_FOK,const string symbol=NULL);

Si hay (no recuerdo acerca de esta parte, por desgracia), a continuación, en OnInit() llamar a estos dos métodos con los valores de la mente, y todos los objetos de comercio para cada símbolo utilizado se debe establecer valores correctos de los tipos de relleno y de caducidad.

Si no aquí, a continuación, esperar a que el próximo artículo para salir - que ha estado en el cheque por un tiempo - que está ahí.

 

En OnInit del asesor Part23 escribí 2 líneas

engine.TradingSetCorrectTypeExpiration();

engine.TradingSetCorrectTypeFilling();

nada sirvió, escribe lo mismo en el log.

 
Alexander:

En OnInit del asesor Part23 escribí 2 líneas

engine.TradingSetCorrectTypeExpiration();

engine.TradingSetCorrectTypeFilling();

nada ayudó, escribe lo mismo en el registro.

Vale, ya lo solucionaré. Gracias.

 
Alexander:

En OnInit del asesor Part23 escribí 2 líneas

engine.TradingSetCorrectTypeExpiration();

engine.TradingSetCorrectTypeFilling();

nada ayudó, escribe lo mismo en el registro.

¿Dónde se insertan estas líneas?

Deberían insertarse en OnInit() después de crear la lista de símbolos de trabajo:

//--- Rellenar el array de símbolos usados
   used_symbols=InpUsedSymbols;
   CreateUsedSymbolsArray((ENUM_SYMBOLS_MODE)used_symbols_mode,used_symbols,array_used_symbols);

//--- Establecer el tipo de lista de símbolos utilizada en la colección de símbolos
   engine.SetUsedSymbols(array_used_symbols);

//--- Aquí es necesario establecer los valores correctos de los tipos de ejecución y expiración a los objetos de comercio de todos los símbolos

//--- Отображение выбранного режима работы с коллекцией объектов-символов
   Print(engine.ModeSymbolsListDescription(),TextByLanguage(". Número de caracteres utilizados: ",". The number of symbols used: "),engine.GetSymbolsCollectionTotal());
 
¿Nadie se ha dado cuenta de que el tipo de orden es StopLimit?
 
Алексей Тарабанов:
¿Nadie prestó atención al hecho de que el tipo de orden es StopLimit?

Sí, no me di cuenta de eso. ¿Hay algo más para ello? En esencia, una orden stop-limit es una orden stop que activa una orden limitada. ¿No son las condiciones para esta combinación las mismas que para el uso por separado de órdenes stop y limitadas?

 
Artyom Trishkin:

Sí, no estaba prestando atención. ¿Hay algo más para eso? Básicamente, una orden stop-límite es una orden stop que activa una orden límite. ¿No son las condiciones para esta combinación las mismas que para el uso por separado de órdenes stop y limitadas?

Los límites son diferentes. Y el tiempo de espera.

 
Алексей Тарабанов:

Los límites son diferentes. Y el tiempo de espera.

¿Dónde está esto en la especificación de caracteres? ¿Cómo averiguar los datos necesarios?
 
A ninguna parte. Ni a los desarrolladores, ni a la lógica.
 
Alexander:

En OnInit del asesor Part23 escribí 2 líneas

engine.TradingSetCorrectTypeExpiration();

engine.TradingSetCorrectTypeFilling();

nada ayudó, escribe lo mismo en el registro.

En general, he comprobado en CFDs en el Binary.com-Servidor. Pone órdenes pendientes de stop-limit (click para ver video):

¿Cómo lo compruebo en Discover? ¿Debo abrir una cuenta?