Servicios. ¿Ya están en marcha? - página 2

 
Los servicios deben ser capaces de comunicarse con cualquier programa en cualquier gráfico. Memoria compartida de los programas.
 
Реter Konow:
Los servicios deben ser capaces de comunicarse con cualquier programa en cualquier gráfico. Memoria de programa compartida.
Ya existen recursos a través de los cuales se pueden intercambiar datos
 
Renat Fatkhullin:
Existen recursos a través de los cuales se pueden intercambiar datos ahora

El intercambio de datos de tipo cadena es muy necesario. Un tipo universal. Para cualquier propósito.

Una matriz de cadenas común para todos los programas - solución ideal para el intercambio rápido de cualquier información, sin OnChartEvent() o carga de disco. Todo asíncrono. Escrito en un programa, leído en otro.

 

Los mecanismos de intercambio están muy atrasados.

Existen variables globales para intercambiar valores de cadena.

 
Vladimir Pastushak:

Los proyectos no son muy fáciles de usar, no hay manera de ordenar todo en carpetas. Y no hay forma de desarrollar código para dos plataformas a la vez.

Tal vez no entienda algo, por supuesto.

Por ejemplo, todo lo desarrollo a través de proyectos. Es aún más conveniente intercambiar código entre MQL4/5. Ni que decir tiene que al principio intenté desarrollar todo para ambas plataformas a la vez. Por cierto, puedo compilar fácilmente para 4 en MQL5, aunque a veces puede causar un fallo. Así que es mejor compilarlos de todos modos.

P.D. Este proyecto está abierto, puedes conectarte y echar un vistazo.
 
Renat Fatkhullin:

Pensaremos en los mecanismos de intercambio, ya es hora.

Existen variables globales para intercambiar valores de cadena.

datetime  GlobalVariableSet( 
   string  name,      // имя 
   double  value      // устанавлимое значение 
   );

Aunque hay una solución de@fxsaber, pero no es obvia y no la encontrarás inmediatamente.

 
Mikhail Dovbakh:

Aunque hay una solución de@fxsaber pero no es obvia y no se encuentra inmediatamente.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Bibliotecas: TradeTransactions

fxsaber, 2018.12.17 23:48

Puedes intercambiar cualquier cosa a través de Recursos.

// Пример обмена любыми данными (включая строковые массивы).

#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166

#define  PRINT(A) Print(#A + " = " + (string)(A));

void OnStart()
{    
  // Произвольные данные для примера
  string Str[] = {"123", "Hello World!"};
  double Num = 5;
  MqlTick Tick = {0};
  Tick.bid = 1.23456;

  const RESOURCEDATA<uint> Resource; // Ресурс для обмена данными
  CONTAINER<uint> Container;         // Создаем контейнер - все будет храниться в массиве простого типа (в примере выбран uint)
  
  // Заполняем контейнер разными данными
  Container[0] = Str;
  Container[1] = Num;
  Container[2] = Tick;
    
  // Распечатаем типы хранимых в контейнере данных
  for (int i = 0; i < Container.GetAmount(); i++)
    PRINT(Container[i].GetType())

  Resource = Container.Data;  // Отправили данные на обмен
  
  CONTAINER<uint> Container2; // Сюда будем получать данные
  
  Resource.Get(Container2.Data); // Получили данные
      
  // Получим данные в исходном виде
  string Str2[];
  Container[0].Get(Str2);                // Получили массив
  ArrayPrint(Str2);

  PRINT(Container[1].Get<double>())      // Получили число
  PRINT(Container[2].Get<MqlTick>().bid) // Получили структуру  
}

 
Renat Fatkhullin:

No habrá ni OnTimer ni OnTick en los servicios. Sólo OnStart.

Se trata de un tipo de programa especial para procesos en bucle en segundo plano (alimentación de datos, análisis, enlaces externos, etc.) y no de un sustituto de los expertos.


La beta 1963 ha salido y puedes actualizarla a través del menú.

Usted es una especie de maestro Yoda aquí, )) Me gustaría saber de primera mano lo que es OnStart y cuál es la diferencia entre esta bestia y el mismo OnTick ?

 
Renat Fatkhullin:

No habrá OnTimer ni OnTick en los servicios. Sólo OnStart.

Se trata de un tipo de software especial para los procesos de bucle en segundo plano (alimentación de datos, análisis, enlaces externos, etc.), no un sustituto de los expertos.


La beta 1963 ha salido, puedes actualizarla a través del menú.

¿Y cuál es la diferencia entre los servicios y los guiones, aparte de que no se necesita un calendario separado para ellos?

 
Renat Fatkhullin:

No habrá OnTimer ni OnTick en los servicios. Sólo OnStart.

Se trata de un tipo especial de programas para procesos en bucle en segundo plano(alimentación de datos, análisis, enlaces externos, etc.)

La ausencia de un modelo de eventos cuando se trabaja con fuentes de datos parece una especie de muleta.

Como ejemplo de este tipo de muletas, podemos considerar la implementación actual de los símbolos de las fórmulas, que no se basan en un modelo de eventos, sino en un temporizador (bucle). Por lo tanto, se saltan las garrapatas.


Anteriormente se dijo sobre el multisímbolo OnTick en Servicios. ¿Por qué han abandonado y recortado buenas ideas como ésta?