Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления - страница 40

 

Не получается сравнивать простые структуры. Версия 5135. Windows 10.

//+------------------------------------------------------------------+
//| Service program start function                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
      MqlTick Ticks[10];
      MqlTick Tick;
      if( Tick == Ticks[1]  ) Print("Равны");   
  }
//+------------------------------------------------------------------+
'==' - illegal operation use    NetSvetaYdalaemOrdera.mq5       40      16

Может я немного языки перепутал, но вроде раньше можно было сравнивать простые структуры.

 
pivomoe #:

Может я немного языки перепутал, но вроде раньше можно было сравнивать простые структуры.

Так можно.

#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void OnStart()
  {
      MqlTick Ticks[10];
      MqlTick Tick;
      if( _R(Tick) == Ticks[1]  ) Print("Равны");   
  }
 
Stanislav Korotky #:

Так если это триальный индикатор из маркета, то он и должен запускаться только в тестере, но не в онлайне.

Это не триальный из маркета - это кастомный индикатор не связанный с маркетом, я уже раздобыл его исходник. Переименовал, запустил, без вызова из советника работает в обоих случаях. При вызове из советника так же выдает 4802 при отладке на текущем графике.

В OnInit() нет проверки на запуск в тестере. Причин для 4802 не заметно, а это странно.

Кстати, в советника его подключаю в качестве ресурса


Igor Zakharev #:

Бывают странные ситуации с хэндлами индикаторов. Не инициализируются именно по error 4802, как будто его нет в каталоге Indicators.

P. S. Индикатор клиентский, исходного кода не имею.

Пример на видео



 
Igor Zakharev #:

Это не триальный из маркета - это кастомный индикатор не связанный с маркетом, я уже раздобыл его исходник. Переименовал, запустил, без вызова из советника работает в обоих случаях. При вызове из советника так же выдает 4802 при отладке на текущем графике.

В OnInit() нет проверки на запуск в тестере. Причин для 4802 не заметно, а это странно.

Нужен исходник с примером вызова из эксперта, по видео всех нюансов не видно. 

 
Stanislav Korotky #:

Нужен исходник с примером вызова из эксперта, по видео всех нюансов не видно. 

Сегодня апдейт был до 5145, только что обновился и проверил - больше такого бага не наблюдается. Он на билде 5142 был. Всё отлично, вопрос закрыт.


 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления

fxsaber, 2025.06.30 15:58

И вот такой результат получил.

Включение компрессии ускоряет оба варианта: RAMDrive и FileMap. Эксперименты с inBlocks и inBlockSize оставил желающим (инструкция, для FileMap желательно убедиться, что не будет использоваться своп-файл).


Вариант с альтернативной компрессией.


Скорость заметно ниже, но и потребление памяти в три раза ниже, поэтому в 4 гига умещается (bid/ask/time) больше 700-та миллионов тиков. Это около 30 лет тиков, поэтому вопрос хранения тиков считаю закрытым. Старые машины с 12GB RAM теперь могут оптимизироваться на любом количестве агентов по реальным тиками за всю доступную глубину истории в моновалютном режиме.

TicksShort
TicksShort
  • 2025.07.04
  • www.mql5.com
Короткий формат хранения тиков.
Файлы:
Math_Ticks2.mq5  25 kb
 
fxsaber #:

Вариант с альтернативной компрессией.


Скорость заметно ниже, но и потребление памяти в три раза ниже, поэтому в 4 гига умещается (bid/ask/time) больше 700-та миллионов тиков. Это около 30 лет тиков, поэтому вопрос хранения тиков считаю закрытым. Старые машины с 12GB RAM теперь могут оптимизироваться на любом количестве агентов по реальным тиками за всю доступную глубину истории в моновалютном режиме.

Не пробовали вместо RAM использовать SSD? Мой тест с обычным SSD на кабеле оказался на 10% быстрее RAM.
RAM себе оставил только для файлов с частой перезаписью, чтобы SSD не изнашивать.
 
fxsaber #:

Вариант с альтернативной компрессией.


Скорость заметно ниже, но и потребление памяти в три раза ниже, поэтому в 4 гига умещается (bid/ask/time) больше 700-та миллионов тиков. Это около 30 лет тиков, поэтому вопрос хранения тиков считаю закрытым. Старые машины с 12GB RAM теперь могут оптимизироваться на любом количестве агентов по реальным тиками за всю доступную глубину истории в моновалютном режиме.

Потрясающие результаты!
 
Forester #:
Не пробовали вместо RAM использовать SSD?

Нет возможности попробовать. Скорее всего, буду использовать FileMap с одним блоком (не хватает компетентности, чтобы понять, почему несколько блоков аварийно завершаются) - быстрее RAM.

Логично теперь советник прикрутить.

 
fxsaber #:
Логично теперь советник прикрутить.

как?