¿Desea controlar los pedidos activos?
Básicamente, la esencia es la siguiente, estoy buscando opciones de código para buscar órdenes.
La tarea es la siguiente:
1 :
Obtenga información sobre la orden máxima por precio y por tipo de orden ( Compra / Venta ) más alta
Para obtener información sobre el pedido mínimo por precio y por tipo de pedido ( Compra/Venta ) más bajo
Obtenga la información de la última orden por tiempo y por tipo de orden ( Compra/Venta )
Obtenga información sobre la primera orden por tiempo y por tipo de orden ( Compra/Venta )
2 :
Obtener información sobre el penúltimo precio máximo y el tipo de orden ( Compra/Venta )
Obtener información sobre la penúltima orden mínima (Compra/Venta) por precio y por tipo de orden ( Compra/Venta )
Obtener información sobre la penúltima orden por tiempo y por tipo de orden (Compra/Venta)
Obtenga información sobre la segunda orden en el tiempo y el tipo de orden (Compra/Venta)
Esta información incluye toda la información sobre la orden (símbolo, lote, precio ......)
El estilo de programación procedimental lo solucionó hace tiempo, ahora quiero simplificarlo y hacer una clase, pero no se me ocurre nada útil...
Sí, Vladimir, es una gran tarea. :-)
¿Puede decirme dónde ir?
Sólo que no todos, sino el máximo/mínimo por precio y el primero y el último por tiempo, 2 de cada uno, es decir, el último y el penúltimo...
No es difícil, porque estás estableciendo órdenes.
Así que, recordarán las dos últimas COMPRAS y las dos últimas VENTAS
Y no tendrás que buscar nada.
struct MEM_ORDER { ulong ticket; long ord_type; double price; }; struct MEM_ORDERS { bool is_first_buy; bool is_first_sell; MEM_ORDER buy_oders[2]; MEM_ORDER sell_oders[2]; };
No es difícil, porque estás estableciendo órdenes.
Así que, recordarán las dos últimas COMPRAS y las dos últimas VENTAS
Y no tendrás que buscar nada.
Pensé en una solución de este tipo, pero no estaba contento con el hecho de que cuando el EA/terminal se recarga, se reinicia y todos los datos del trabajo anterior se pierden.
Creo que la forma más fiable de trabajar es recoger datos sobre el entorno cuando la EA está funcionando.
Pensé en una solución de este tipo, pero no me gustó el hecho de que cuando se recarga el EA/terminal, se vuelve a cargar y se pierden todos los datos del trabajo anterior.
Creo que el método fiable de operación es recoger datos sobre el entorno en el momento de la operación de EA.
¿Y qué le impide guardar los datos en un archivo cuando sale del EA, y cuando lo carga, cargarlo desde un archivo?
//| Expert Load setings function | //+------------------------------------------------------------------+ void LoadSettings() { string file_name = _Symbol + ".dat"; int file_handle; //--- if ( FileIsExist( file_name, 0 ) ) { file_handle = FileOpen( file_name, FILE_READ|FILE_BIN ); if ( file_handle != INVALID_HANDLE ) { e_high = FileReadLong( file_handle ); a_profit = FileReadLong( file_handle ); e_low = FileReadLong( file_handle ); ord_delta_high = FileReadLong( file_handle ); ord_delta_low = FileReadLong( file_handle ); order_delta = FileReadLong( file_handle ); exit_delta = FileReadLong( file_handle ); FileClose( file_handle ); } } } //+------------------------------------------------------------------+ //| Expert Save settings function | //+------------------------------------------------------------------+ void SaveSettings() { string file_name = _Symbol + ".dat"; int file_handle; bool file_found = true; //--- if ( FileIsExist( file_name, 0 ) ) { if ( FileDelete( file_name, 0 ) ) file_found = false; } else { file_found = false; } //--- if ( ! file_found ) { file_handle = FileOpen( file_name, FILE_WRITE|FILE_BIN ); if ( file_handle != INVALID_HANDLE ) { FileWriteLong( file_handle, e_high ); FileWriteLong( file_handle, a_profit ); FileWriteLong( file_handle, e_low ); FileWriteLong( file_handle, ord_delta_high ); FileWriteLong( file_handle, ord_delta_low ); FileWriteLong( file_handle, order_delta ); FileWriteLong( file_handle, exit_delta ); FileClose( file_handle ); } } }
¿Qué le impide guardar los datos en un archivo cuando sale del EA y cargarlos desde un archivo cuando lo carga?
Por supuesto, esto es bueno, pero no es fiable, ya que el entorno puede cambiar durante el reinicio.
Cierre todas las órdenes antes de salir.
Todavía tienes que hacer esto.
Cierre todas las órdenes antes de salir.
De todos modos, es algo tedioso.
Los reinicios imprevistos provocarán problemas...
Escribí una clase...
Los reinicios imprevistos provocarán problemas...
He escrito una clase...
No hagas reír a la gente....
Si ocurre un imprevisto, no hay clases que te salven.
Si el enrollador o el terminal se "cuelgan", el EA se reiniciará,
Sólo "miro" las órdenes activas y las cierro, porque no hay control sobre ellas.

- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Básicamente, la esencia es la siguiente, estoy buscando opciones de código para buscar órdenes.
La tarea es la siguiente:
1 :
Obtenga información sobre la orden máxima por precio y por tipo de orden ( Compra / Venta ) más alta
Para obtener información sobre el pedido mínimo por precio y por tipo de pedido ( Compra/Venta ) más bajo
Obtenga la información de la última orden por tiempo y por tipo de orden ( Compra/Venta )
Obtenga información sobre la primera orden por tiempo y por tipo de orden ( Compra/Venta )
2 :
Obtener información sobre el penúltimo precio máximo y el tipo de orden ( Compra/Venta )
Obtener información sobre la penúltima orden mínima (Compra/Venta) por precio y por tipo de orden ( Compra/Venta )
Obtener información sobre la penúltima orden por tiempo y por tipo de orden (Compra/Venta)
Obtenga información sobre la segunda orden en el tiempo y el tipo de orden (Compra/Venta)
Esta información incluye toda la información sobre la orden (símbolo, lote, precio ......)
El estilo de programación procedimental lo solucionó hace tiempo, ahora quiero simplificarlo y hacer una clase, pero no se me ocurre nada útil...