Gracias por el artículo - ¡ha sido interesante!
Una pregunta, ¿cómo es posible obtener información rápidamente - sobre el hecho de abrir/cambiar una posición/orden en cualquier símbolo?
La necesidad de crear una base de datos de posiciones actuales y virtuales - es necesario para la compensación cuando muchos Asesores Expertos trabajan en un símbolo.
¿O es mejor incrustar el código en cada EA?
La necesidad de crear una base de datos de posiciones actuales y virtuales es necesaria para la compensación cuando muchos Asesores Expertos trabajan en un símbolo.
¿O es mejor incrustar el código en cada EA?
Alexey, no funcionará. Después de todo, el servicio es como un script, con la única diferencia de que se pone en marcha simultáneamente con el lanzamiento de la terminal....
Iniciado el terminal, el servicio saltó, trabajó y se fue a la parte inferior....
Por supuesto, se puede ejecutar en un bucle infinito, pero la eficacia que será, usted debe decidir por ti mismo....
Alexey, no funcionará. Después de todo, el servicio es como un script, con la única diferencia de que se lanza simultáneamente con terminal launch....
Iniciado el terminal, el servicio saltó, trabajó y se fue a la parte inferior....
Por supuesto, se puede ejecutar en un bucle infinito, pero la eficacia que será, usted debe decidir por ti mismo....
Por un lado, falta OnTrade(), por otro lado, si el servicio simplemente resumirá las órdenes y escribirá en la base de datos las operaciones permitidas, puede funcionar. Pero de nuevo, el tema de la sincronización es relevante. Para las estrategias que no son críticas para el retraso y trabajan en la apertura de la barra, parece realista hacerlo. ¿Es posible operar a través del servicio? No veo ninguna restricción. Entonces es posible recibir órdenes de expertos, agregarlas y operar independientemente con una frecuencia especificada.
La necesidad de crear una base de datos de posiciones actuales y virtuales es necesaria para la compensación cuando muchos Asesores Expertos trabajan en un símbolo.
¿O es mejor incrustar el código en cada EA?
Alexey, ¡gracias por tu opinión!
Buena pregunta. Aquí tenemos que sopesar todos los pros y los contras. Por un lado, como señaló mi colega Alexey Viktorov, el servicio para tal tarea debe ser lanzado en un bucle infinito. Pero, por otro lado, el servicio funciona en segundo plano y escribe/lee de la propia base de datos. Si añades la capacidad de trabajar con la base de datos a cada robot, tienes que entender que puede haber un conflicto de sincronización. Algo como un mutex probablemente ayudará aquí.
Y los EAs pueden procesar instantáneamente los eventos de negociación, mientras que el servicio no puede....
La necesidad de crear una base de datos de posiciones actuales y virtuales es necesaria para la compensación cuando muchos Asesores Expertos trabajan en un símbolo.
¿O es mejor incrustar el código en cada EA?
Cada robot tiene en cuenta sus posiciones virtuales por sí mismo. En principio, ni siquiera sabe de las reales. El único problema para MM es con la definición del lote, pero tengo un lote fijo establecido a través de parámetros. La única alternativa a un lote fijo es asignar a cada robot algún porcentaje del depósito.
Alexei, ¡gracias por tu opinión!
Es una buena pregunta. Aquí tenemos que sopesar todos los pros y los contras. Por un lado, como ha señalado mi colega Alexey Viktorov, el servicio para esa tarea debe lanzarse en un bucle infinito. Pero, por otro lado, el servicio funciona en segundo plano y escribe/lee de la propia base de datos. Si añades la capacidad de trabajar con la base de datos a cada robot, tienes que entender que puede haber un conflicto de sincronización. Algo como un mutex probablemente ayudaría aquí.
Y los EAs pueden procesar instantáneamente los eventos de negociación, mientras que el servicio no puede....
¿SQLite no sabe trabajar con colas de transacciones? No he tratado este tema, pero usted escribió un artículo, por eso pregunto :)
Puedes escribir en cada sección de la base (una tabla separada), o incluso cada asesor puede crear su propia base, y el servicio comprobará la disponibilidad de la base y la conectará para trabajar.
Por supuesto, el problema son los retrasos, pero por otro lado se compensa con el spread ahorrado.
En mi caso, cada robot tiene en cuenta sus posiciones virtuales por sí mismo. En principio, ni siquiera conoce las reales. El único problema para MM es la definición del lote, pero yo tengo un lote fijo establecido mediante parámetros. La única alternativa a un lote fijo es asignar a cada robot algún porcentaje del depósito.
Quiero que sea universal, para poder crear cestas de Asesores Expertos con distinta lógica. Si un Asesor Experto está hirviendo en su propio jugo, entonces sí - es un poco más fácil allí - lo hice yo mismo, pero experimentalmente - sin guardar los datos en un archivo / base de datos.
- 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
Artículo publicado Recetas MQL5 - Servicios:
Este artículo describe las capacidades versátiles de los servicios, como los programas MQL5 que no requieren un gráfico vinculante. Asimismo, se detallan las diferencias de los servicios respecto a otros programas MQL5, enfatizando los matices del trabajo del desarrollador con los servicios. Como ejemplos, el lector podrá estudiar varias tareas que abarcan una amplia gama de funcionalidades que pueden implementarse como un servicio.
Vamos a imaginar que nos encontramos ante la siguiente tarea. Es necesario que los gráficos de aquellos símbolos que se comercien estén abiertos en el terminal, es decir, donde hay posiciones.
Las reglas para abrir los gráficos son muy simples. Si hay una posición abierta para uno de los símbolos, abriremos el gráfico de este símbolo. Si no hay posición, no habrá gráfico. Si hay varias posiciones para un símbolo, solo abriremos un gráfico,
y añadiremos algunos colores más. Si la posición es rentable, el color de fondo del gráfico será azul claro y, si no es rentable, será rosa claro. El beneficio cero se indicará con el color lavanda.
Autor: Denis Kirichenko