Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1463

 
SuhanovDM94 #:

Lo haría yo mismo con mucho gusto, pero no sé por qué lado acercarme) ¡agradecería una pista! ¿Quizás haya alguna información en el foro sobre este tema?

La forma más fácil es escribir comillas a un archivo en un terminal en una carpeta compartida y tratar de leer este archivo por otro terminal. Pero hay muchas trampas. En el modo de escritura la lectura no está disponible. Es decir, es necesario hacer una cola de alguna manera. Los terminales trabajan sólo en sus cajas de arena y la transferencia de información entre terminales tampoco es una cuestión sencilla. Se soluciona escribiendo de un fichero a otro, por ejemplo, mediante un batnik o algo parecido en algún lenguaje. Puedes copiar un archivo, pero no es una opción si sólo escribes y no borras nada del archivo. Simplemente se hará grande y copiarlo llevará demasiado tiempo. Digamos que no es para principiantes.

 
Valeriy Yastremskiy #:

La forma más fácil es escribir comillas en un archivo en un terminal en una carpeta compartida y tratar de leer este archivo por otro terminal. Pero hay muchos escollos. La lectura no está disponible en el modo de escritura. Es decir, es necesario hacer una cola de alguna manera. Los terminales trabajan sólo en sus cajas de arena y la transferencia de información entre terminales tampoco es una cuestión sencilla. Se soluciona escribiendo de un fichero a otro, por ejemplo, mediante un batnik o algo parecido en algún lenguaje. Puedes copiar un archivo, pero no es una opción si sólo escribes y no borras nada del archivo. Simplemente se hará grande y copiarlo llevará demasiado tiempo. Digamos que no es para principiantes.

En uno abrimos con FILE_READ|FILE_WRITE|FILE_SHARE_READ, en otro con FILE_READ|FILE_SHARE_READ y normalmente escribimos (sólo uno) y leemos (muchos) a la vez.

El acceso entre terminales se resuelve mediante symlink.

 
Valeriy Yastremskiy #:

La forma más fácil es escribir comillas en un archivo en un terminal en una carpeta compartida y tratar de leer este archivo por otro terminal. Pero hay muchos escollos. La lectura no está disponible en el modo de escritura. Es decir, es necesario hacer una cola de alguna manera. Los terminales trabajan sólo en sus cajas de arena y la transferencia de información entre terminales tampoco es una cuestión sencilla. Se soluciona escribiendo de un fichero a otro, por ejemplo, mediante un batnik o algo parecido en algún lenguaje. Puedes copiar un archivo, pero no es una opción si sólo escribes y no borras nada del archivo. Simplemente se hará grande y copiarlo llevará demasiado tiempo. Digamos que no es para principiantes.

Estaba pensando en hacerlo a través de MMF. Pero la única pregunta es ¿cómo hacer un gráfico dibujar en estas cotizaciones?

 
JRandomTrader #:

En uno abrimos con FILE_READ|FILE_WRITE|FILE_SHARE_READ, en el otro con FILE_READ|FILE_SHARE_READ y normalmente escribimos (sólo uno) y leemos (muchos) al mismo tiempo.

El acceso entre terminales se resuelve mediante symlink.

En el momento de escribir, vinda no le dejará leer, allí la cola de vinda estará sin error, y si va a escribir durante mucho tiempo, devolverá un error. Symlink tampoco llegará a todas partes, sólo a la carpeta común, y en los trabajadores o probadores no tuve éxito.

Y la sintaxis del enlace también puede ser congelado, a continuación, la barra está mal, entonces necesitan un par de ellos)
 
Valeriy Yastremskiy #:

En el momento de escribir, el vindex no dejará leer, la cola de vindex estará sin error, y si escribe durante mucho tiempo, devolverá un error. Simlink tampoco llegará a todas partes, sólo a la carpeta común, y en workers o tester no lo conseguí.

Y la sintaxis del enlace también se puede congelar, a continuación, la barra está mal, entonces necesitan un par de ellos)

Es un poco más fácil para mí con enlaces simbólicos - No tengo vinda.

 
Lo intentaré de la siguiente manera: crearé un símbolo con una fórmula como USDRUB/USDRUB - se creará un gráfico con el precio 1. Luego crearé un indicador que leerá el archivo con las cotizaciones de USDTRY de la memoria compartida. Luego crearé un indicador que leerá un archivo con cotizaciones USDTRY de la memoria compartida, luego calculará el spread y lo dibujará en este gráfico "único" como una línea regular. Todavía no se me ha ocurrido nada mejor. Gracias a todos por vuestros consejos :)
 
Valeriy Yastremskiy #:

En el momento de escribir, el vindex no dejará leer, la cola de vindex estará sin error, y si escribe durante mucho tiempo, devolverá un error. Simlink tampoco llegará a todas partes, sólo a la carpeta común, y en workers o tester no lo conseguí.

Y la sintaxis del enlace también se puede congelar, a continuación, la barra está mal, entonces necesitan un par de)

Escribir en la carpeta común de todos los terminales. Uno escribe - los otros leen y crean un gráfico. Esta es una generalización aproximada.

 
Artyom Trishkin #:

Escribe en una carpeta común de todos los terminales. Uno escribe, los demás leen y crean un gráfico. Esto es una generalización aproximada.

está claro, pero en vindex cuando un archivo se utiliza para la modificación, es decir, en el momento de la escritura de acceso a la lectura está cerrada, y si la carga en la CPU es grande, puede ser largo, debe tenerse en cuenta de alguna manera.

Cuando en word360 o google acceso general y edición general allí el problema con la cola se resuelve. Escribir no está escribiendo, autoguardar y guardar manualmente. Y hay cola.

Y así, sí, por supuesto, la carpeta Commons no está en la caja de arena, que está fuera.

 
SuhanovDM94 crearé un indicador que leerá un archivo con cotizaciones USDTRY de la memoria compartida, luego calculará el spread y lo dibujará en este gráfico "único" como una línea regular. Todavía no se me ha ocurrido nada mejor. Gracias a todos por los consejos ;)

Leer: https://www.mql5.com/ru/articles/115

Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
  • www.mql5.com
Данная статья знакомит с реализацией межпроцессного взаимодействия между терминалами MetaTrader 5 посредством именованных каналов (named pipes). Предложен класс CNamedPipes, реализующий возможность использования именованных каналов. Рассмотрен тиковый индикатор для тестирования связи между двумя клиентскими терминалами MetaTrader 5 и измерения общей пропускной способности системы. Представленный метод взаимодействия оказался пригодным для отправки котировок в реальном времени.
 
Связь с MetaTrader 5 через именованные каналы без применения DLL
Связь с MetaTrader 5 через именованные каналы без применения DLL
  • www.mql5.com
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное клиент-серверное взаимодействие между программами. Посмотрите практические примеры на C++ и MQL5 в виде сервера, клиента, обмен данными между ними и замер производительности.