Ошибки, баги, вопросы - страница 3389

 
Вылетает MT5 для MacOS когда открываю маркет
 
Aleksey Vyazmikin #:

На скрине отключены локальные агенты, но есть те, что в локальной сети - Вы можете добавить свой IP и с агентом работать как с находящимся в локальной сети.

Теперь понял)

Ну да решение выглядит логично. 

Одно НО, теперь котировки дублируются не только терминал + тестер, а терминал + тестер + папка с агентами.

Жёсткий диск будет забиваться котировками намного быстрее.

Субъективно оптимизация идёт медленнее, но это понятно, в терминале участвовали в оптимизации и виртуальные ядра, а в локальных агентах только реальные.

Но это субъективная оценка, сравнительные тесты я не проводил.

 
Почему после компилировать файл с формат ex5 не получается.  Orrors 0, warnings 0
 
Aleksandr Slavskii #:

Теперь понял)

Ну да решение выглядит логично. 

Одно НО, теперь котировки дублируются не только терминал + тестер, а терминал + тестер + папка с агентами.

Жёсткий диск будет забиваться котировками намного быстрее.

Субъективно оптимизация идёт медленнее, но это понятно, в терминале участвовали в оптимизации и виртуальные ядра, а в локальных агентах только реальные.

Но это субъективная оценка, сравнительные тесты я не проводил.

Насчет забивки котировками - тут не понятно, с одной стороны вроде как утверждалось, что есть автоматическая чистка, с другой стороны часто действительно бывало наблюдал десятки парок с котировками от  разных ДЦ. Но, если интернет не очень быстрый, то архив котировок кажется хорошим решением. В общем это индивидуально решается.

Ну а что касается числа агентов, то их можно увеличить, сделав копию терминала...

 

Есть такое понятие как переменная с названием символа, а есть ли переменная с "ВСЕ СИМВОЛЫ ИЗ ОБЗОРА РЫНКА" ? так как такое значение выбирается в окошке символа при выборе оптимизация по всем символам.


Мне нужно чтобы в терминале выбралось именно это значение -  ВСЕ СИМВОЛЫ ИЗ ОБЗОРА РЫНКА а не конкретный символ.

P.S. Почему мои вопросы настолько уникальные, что никто не знает на них ответа.

Решилось банальным выбором любого символа или так же написанием значения "ВСЕ СИМВОЛЫ ИЗ ОБЗОРА РЫНКА"

 
Почему библиотека .ex5 не работает с динамическими переменными?
А если переменной присвоить статичное значение, то работает.
Задача передавать значения любых стандартных типов, из сервиса в другую программу.

Библиотека LibTest
#property library
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

int var;

//----------------------
//Экспортируемя функция
int FooInit(void) export
{
   var = rand();
   
   return(var);
}

//----------------------
//Экспортируемя функция
int FooGet(void) export
{
   return(var);
}

Сервис ServiceTest
#property service
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#import "LibTest.ex5"
   int FooInit(void);
#import

//+------------------------------------------------------------------+
//| Service program start function                                   |
//+------------------------------------------------------------------+
void OnStart()
{
   while(!_StopFlag)
   {
      Print("Сервис FooInit: ", FooInit());
      
      Sleep(10000);   
   }

}


Скрипт ScriptTest

#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#import "LibTest.ex5"
   int FooGet(void);
#import

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   Print("Скрипт FooGet: ", FooGet());

}



Запускаем сервис, он принтует значение глобальной переменной var которая в библиотеке.
Запускаем скрипт, ожидая получить значение переменной var.
Не работает!



Файлы:
[Удален]  
Roman #:
Почему библиотека .ex5 не работает с динамическими переменными?
А если переменной присвоить статичное значение, то работает.
Задача передавать значения любых стандартных типов, из сервиса в другую программу.

Библиотека LibTest

Сервис ServiceTest


Скрипт ScriptTest



Запускаем сервис, он принтует значение глобальной переменной var которая в библиотеке.
Запускаем скрипт, ожидая получить значение переменной var.
Не работает!



Скрипт и сервис - две отдельные программы. И у каждой своя переменная var.

 
Koldun Zloy #:

Скрипт и сервис - две отдельные программы. И у каждой своя переменная var.

Раньше давно другое поведение было и работало.
Библиотека загружалась единожды в окружение. Разве это не ошибка сейчас?
Как тогда обмениваться значениями между программами? Ведь библиотека должна это уметь.

 
Roman #:
Почему библиотека .ex5 не работает с динамическими переменными?
А если переменной присвоить статичное значение, то работает.
Задача передавать значения любых стандартных типов, из сервиса в другую программу.


штатными средствами терминала - только через глобальные переменные терминала и ресурсы. И ещё ChartEvent можно рассылать. Или держать общую SQLite базу

при совмещении доступных средств, можно организовать эффективный "ансамбль". Или DLL если умеете, но тогда отпадут VPS 

 
Maxim Kuznetsov #:

штатными средствами терминала - только через глобальные переменные терминала и ресурсы. И ещё ChartEvent можно рассылать. Или держать общую SQLite базу

при совмещении доступных средств, можно организовать эффективный "ансамбль". Или DLL если умеете, но тогда отпадут VPS 

Это всё не то.
Глобальные переменные терминала, только тип double.
ChartEvent имеет свою общую очередь с событиями графиков, не подходит.
Файлы вообще не вариант.
Как раз задача не использовать dll.