Servizi. Sono già in funzione? - pagina 2

 
I servizi devono essere in grado di comunicare con qualsiasi programma su qualsiasi grafico. Memoria condivisa dei programmi.
 
Реter Konow:
I servizi devono essere in grado di comunicare con qualsiasi programma su qualsiasi grafico. Memoria di programma condivisa.
Ci sono risorse attraverso le quali i dati possono essere scambiati ora
 
Renat Fatkhullin:
Ci sono risorse attraverso le quali è possibile scambiare dati ora

Lo scambio di dati di tipo stringa è molto necessario. Un tipo universale. Per qualsiasi scopo.

Un array di stringhe comune per tutti i programmi - soluzione ideale per lo scambio veloce di qualsiasi informazione, senza OnChartEvent() o carico del disco. Tutti asincroni. Scritto in un programma, letto in un altro.

 

I meccanismi di scambio sono attesi da tempo.

Ci sono variabili globali per scambiare valori di stringa.

 
Vladimir Pastushak:

I progetti non sono molto user-friendly, non c'è modo di ordinare tutto in cartelle. E non c'è modo di sviluppare codice per due piattaforme contemporaneamente.

Forse non capisco qualcosa.

Per esempio, io sviluppo tutto attraverso progetti. È ancora più conveniente scambiare codice tra MQL4/5. Va da sé che sto cercando di sviluppare tutto per entrambe le piattaforme contemporaneamente. A proposito, posso facilmente compilare per 4 in MQL5, anche se a volte può causare un problema. Quindi è meglio compilarli comunque.

P.S. Questo progetto è aperto, potete collegarvi e dare un'occhiata.
 
Renat Fatkhullin:

Penseremo ai meccanismi di scambio, è giunto il momento.

Ci sono variabili globali per scambiare valori di stringa.

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

Anche se c'è una soluzione di@fxsaber, ma non è ovvia e non la troverete subito.

 
Mikhail Dovbakh:

Anche se c'è una soluzione di@fxsaber ma non è ovvia e non si trova subito.

Forum sul trading, sistemi di trading automatico e test di strategia

Biblioteche: TradeTransactions

fxsaber, 2018.12.17 23:48

Puoi scambiare qualsiasi cosa attraverso le Risorse.

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

#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:

Non ci saranno né OnTimer né OnTick nei servizi. Solo OnStart.

Questo è un tipo speciale di programma per i processi in loop in background (datafeed, analytics, link esterni, ecc.) e non un sostituto degli esperti.


La Beta 1963 è uscita e si può aggiornare tramite il menu.

Sei una specie di maestro Yoda qui, )) vorrei sapere in prima persona cos'è OnStart e qual è la differenza tra questa bestia e lo stesso OnTick?

 
Renat Fatkhullin:

Non ci saranno OnTimer o OnTick nei servizi. Solo OnStart.

Questo è un tipo speciale di software per i processi di looping in background (datafeed, analytics, link esterni, ecc.), non un sostituto degli esperti.


La Beta 1963 è uscita, puoi aggiornare tramite il menu.

E qual è la differenza tra i servizi e gli script, a parte il fatto che non c'è bisogno di un programma separato per loro?

 
Renat Fatkhullin:

Non ci saranno OnTimer o OnTick nei servizi. Solo OnStart.

Questo è un tipo speciale di programmi per processi in loop in background(feed di dati, analisi, link esterni, ecc.)

L'assenza di un modello di eventi quando si lavora con i datafeed sembra una specie di stampella.

Come esempio di tale stampella, possiamo considerare l'attuale implementazione dei simboli di formula, che non sono basati su un modello di eventi, ma su un timer (loop). Quindi, ci sono delle zecche che saltano.


Prima è stato detto di OnTick multisimbolo nei servizi. Perché hanno abbandonato e tagliato le buone idee come questa?