Serviços. Eles já estão em funcionamento? - página 2

 
Os serviços precisam ser capazes de se comunicar com qualquer programa em qualquer gráfico. Memória compartilhada dos programas.
 
Реter Konow:
Os serviços precisam ser capazes de se comunicar com qualquer programa em qualquer gráfico. Memória de programa compartilhada.
Existem recursos através dos quais os dados podem ser trocados agora
 
Renat Fatkhullin:
Há recursos através dos quais você pode trocar dados agora

A troca de dados do tipo string é extremamente necessária. Um tipo universal. Para qualquer finalidade.

Uma matriz de cordas comum para todos os programas - solução ideal para troca rápida de qualquer informação, sem OnChartEvent() ou carga em disco. Todos assíncronos. Escrito em um programa, lido em outro.

 

Os mecanismos de intercâmbio há muito tempo já eram esperados.

Existem variáveis globais para a troca de valores de string.

 
Vladimir Pastushak:

Os projetos não são muito fáceis de usar, não há como classificar tudo em pastas. E não há maneira de desenvolver código para duas plataformas ao mesmo tempo.

Talvez eu não entenda alguma coisa, é claro.

Por exemplo, eu desenvolvo tudo através de projetos. É ainda mais conveniente trocar o código entre MQL4/5. Escusado será dizer que inicialmente tentei desenvolver tudo de uma só vez para ambas as plataformas. A propósito, posso compilar facilmente para 4 em MQL5, embora às vezes isso possa causar uma falha. Portanto, é melhor compilá-los de qualquer maneira.

P.S. Este projeto está aberto, você pode se conectar e dar uma olhada.
 
Renat Fatkhullin:

Vamos pensar em mecanismos de intercâmbio, já é hora.

variáveis globais para trocar valores de string.

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

Embora haja uma solução de@fxsaber, mas não é óbvia e você não a encontrará imediatamente.

 
Mikhail Dovbakh:

Embora exista uma solução do@fxsaber, ela não é óbvia e não foi imediatamente encontrada.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Bibliotecas: TradeTransactions

fxsaber, 2018.12.17 23:48

Você pode negociar qualquer coisa atravé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:

Não haverá nem OnTimer nem OnTick em serviços. Somente OnStart.

Este é um tipo especial de programa para processos em loop de fundo (datafeeds, análises, links externos, etc.) e não um substituto para especialistas.


Beta 1963 está fora e você pode atualizar através do menu.

Você é uma espécie de mestre Yoda aqui, )) Eu gostaria de saber em primeira mão o que é OnStart e qual é a diferença entre esta besta e o mesmo OnTick ?

 
Renat Fatkhullin:

Não haverá OnTimer ou OnTick em Serviços. Somente OnStart.

Este é um tipo especial de software para processos de looping de fundo (datafeeds, análises, links externos, etc.), e não um substituto para especialistas.


Beta 1963 está fora, você pode atualizar através do menu.

E qual é a diferença entre Serviços e Roteiros, além do fato de que você não precisa de um horário separado para eles?

 
Renat Fatkhullin:

Não haverá OnTimer ou OnTick nos serviços. Somente OnStart.

Este é um tipo especial de programa para processos em loop de fundo(datafeeds, análises, links externos, etc.)

A ausência de modelo de evento quando se trabalha com datafeeds se parece com algum tipo de muleta.

Como exemplo de tal muleta, podemos considerar a implementação atual de símbolos de fórmula, que não se baseiam em um modelo de evento, mas em um timer (loop). Por isso, há carrapatos saltados.


Anteriormente, foi dito sobre a OnTick em Serviços com múltiplos símbolos. Por que eles abandonaram e cortaram boas idéias como esta?

Razão: