
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
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading
Bibliotecas: MT4Orders
fxsaber, 2023.07.07 13:12
Rendimiento.
Tabla de rendimiento (tiempo de ejecución en milisegundos) para b3815 y b2958.
MT4Orders del 20.07.2022 se utilizó en todas partes.
Utilizando la misma metodología, una tabla comparativa de dos builds de MT5: b4040 y b4057.
En b4057+ el rendimiento de MT4Orders al trabajar con históricos no es inferior al nativo de MQL5.
En consecuencia, la recomendación dada anteriormente ya no es relevante (para MT5 b4057+).
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Bibliotecas: MT4Orders
fxsaber, 2023.07.07 13:12
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading
Bibliotecas: MT4Orders
fxsaber, 2017.06.14 11:30 AM.
Si usted necesita entender, el terminal hizo un rechazo en la orden de comercio o el servidor.
Real. Utilizo MT4Orders, entorno virtual a través de Virtual, sincronizo virtual con real. Para ello, en cada tick paso varias veces por las órdenes abiertas en real. Para ello, en la primera pasada formo una lista de órdenes de interés, y en las otras pasadas trabajo con esta lista.
Antes tenía un código de este tipo:
La práctica ha demostrado que no es una buena manera de hacerlo. Un limitador parcialmente lleno generará 2 órdenes con el mismo ticket, y en la segunda pasada será una desgracia.
Ahora he cambiado a este código
Además, se hace una instantánea antes de trabajar. ¿Funcionará esto correctamente o puede surgir algo más?
El código solía ser así:
La práctica ha demostrado que esta no es una buena forma de hacerlo. Un limitador parcialmente lleno generará 2 órdenes con el mismo ticket, y en la segunda pasada será una desgracia.
No habrá tristeza si lo hace de esta manera.
AddToArray(OrderTickets, (OrderType() <= OP_SELL) ? OrderTicket() : - OrderTicket());
Esta es una característica de MT4Orders. Sin embargo, SELECT_BY_TICKET no es un mecanismo rápido en MT4/5 y virtualización. Una de las razones es que si no encuentra entre los vivos, irá al historial (MODE_TRADES-flag es sólo una indicación de prioridad de dónde buscar primero).
Ahora he cambiado a este código
Además, se hace una instantánea antes de trabajar. ¿Funcionará esto correctamente o puede surgir algo más?
Aquí ya estamos hablando del complemento de Virtual.mqh. Por supuesto, las instantáneas acelerarán el trabajo muy bien si hay muchos personajes/magias que se intercambian.
Las instantáneas reducen al mínimo el trabajo con el entorno externo al Asesor Experto (API de trading). Es decir, las funciones más lentas se llaman una vez para la lectura inicial, y luego todo el trabajo con el entorno de trading va dentro del EA sin que el programador se dé cuenta, porque es el mismo estilo MT4.
Tiene sentido utilizar una de estas variantes de snapshot.
Puede llamar a VIRTUAL::Snapshot() mil veces seguidas, pero no interactuará con la API externa de trading más a menudo de lo establecido en VIRTUAL_SNAPSHOT_REFRESHTIME (en el ejemplo es un milisegundo - para mí es suficiente). Así que nada tiene que ser memorizado, el código más o menos se convierte en esto.
Aquí está mi código de sincronización (llamado para cada subTS) con entornos virtuales.
Desde el resaltado, se puede ver la creación de la instantánea. Debe ser llamado después de las funciones de frenado. Por ejemplo, OrderSend. Si se llama una vez más, no es un gran problema, como se muestra en el código anterior.
Sin embargo, el código fuente se da por otra razón. Puse todas las funciones potencialmente lentas en una macro que detiene la sincronización completamente si un nuevo tick (SymbolInfoTick o CopyTicks) llega durante la sincronización, porque los nuevos ticks deben ser lanzados primero a través de todos los virtuales y sólo entonces sincronizados con el real. Todo es exactamente igual a como debería funcionar para los copiadores de operaciones y las bolsas de criptomonedas externas.
No hay problema.
algún fallo
algún fallo
Es normal.