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

 

Легли все тексты со шрифтом Виджинс и ему подобными...


 

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

MQL5\Libraries\testQuickReport.mq5(1,11) : error 106: file 'MQL5\Include\MT4Orders.mqh' not found - это не моя библиотека

MQL5\Libraries\testQuickReport.mq5(7,11) : error 106: file 'MQL5\Include\MT4Orders_QuickReport.mqh' not found - почему то и мой загруженный файл не видит

Раньше проверка проходила успешно.

 

Есть идея для выноса на рассмотрение: разрешить компилировать mqh файлы для включения их в mq5 файлы. А при компиляции mq5 указывать имя скомпилированного mqh как ресурса или нечто подобное (например в mq5 передавать ссылку на объект из скомпилированного mqh - который весь функционал инкапсулирует).

Иногда приходится отдавать крутые исходники(которые ИИ сделать не может) из-за небольшого функционала, который нужно сделать в недорогом задании. А так вопрос этой утечки будет закрыт.

В результате заказчику будет передаваться mq5 и скомпилированный mqh. И c DLL возиться не надо и т.д.

 
Igor Zakharev #:

Есть идея для выноса на рассмотрение: разрешить компилировать mqh файлы для включения их в mq5 файлы. А при компиляции mq5 указывать имя скомпилированного mqh как ресурса или нечто подобное (например в mq5 передавать ссылку на объект из скомпилированного mqh - который весь функционал инкапсулирует).

Иногда приходится отдавать крутые исходники из-за небольшого функционала, который нужно сделать в недорогом задании. А так вопрос этой утечки будет закрыт.

В результате заказчику будет передаваться mq5 и скомпилированный mqh. И c DLL возиться не надо и т.д.

Хе-хе. В таком случае можно будет весь код запихнуть в скомпилированный mqh, а в mq5 оставить только строку вызова точки входа. Получается, что и исходник передан, и у заказчика нет кода, который можно будет изменить.  )))
 
Igor Zakharev #:

Есть идея для выноса на рассмотрение: разрешить компилировать mqh файлы для включения их в mq5 файлы. А при компиляции mq5 указывать имя скомпилированного mqh как ресурса или нечто подобное (например в mq5 передавать ссылку на объект из скомпилированного mqh - который весь функционал инкапсулирует).

Иногда приходится отдавать крутые исходники(которые ИИ сделать не может) из-за небольшого функционала, который нужно сделать в недорогом задании. А так вопрос этой утечки будет закрыт.

В результате заказчику будет передаваться mq5 и скомпилированный mqh. И c DLL возиться не надо и т.д.

т.е. заказчик заказал код, а вы ему черный ящик

можно сказать заказчику - ничего страшного, код там фигня, но он делает важную работу и его сложно выдернуть из библы своей)))

 
Ihor Herasko #:
Хе-хе. В таком случае можно будет весь код запихнуть в скомпилированный mqh, а в mq5 оставить только строку вызова точки входа )))

Да. И бывает когда даже так и нужно. Оставить доступным для правок лишь например исходный код таймера, инита, деинита и меню - а всё остальное в стелс режим упаковать.

lynxntech #:

т.е. заказчик заказал код, а вы ему черный ящик

можно сказать заказчику - ничего страшного, код там фигня, но он делает важную работу и его сложно выдернуть из библы своей)))

Код почти никогда не заказывают, обычно советник или индикатор заказывают. 

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

 
Учебник по MQL5: Создание ex5-библиотек и export функций / Расширенные средства языка
Учебник по MQL5: Создание ex5-библиотек и export функций / Расширенные средства языка
  • www.mql5.com
Для описания библиотеки следует добавить в исходный код главного (компилируемого) модуля директиву #property library (обычно, в начало файла)...
 

Ок, это понятно и известно. Но могло бы быть и как альтернативная версия через #resource , без всяких import/export. Что бы без разных ограничений.

Сейчас есть ограничения. В той ссылке что вы прислали они описаны. Когда важно время, нужно, что бы было упрощено, что бы процесс был без лишней возни. 


 
Igor Zakharev #:

Да. И бывает когда даже так и нужно. Оставить доступным для правок лишь например исходный код таймера, инита, деинита и меню - а всё остальное в стелс режим упаковать.

Код почти никогда не заказывают, обычно советник или индикатор заказывают. 

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

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

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

input int inRange = 0;

double OnTester()
{
  while (!IsStopped())
    Sleep(100);
    
  return(inRange);
}


Воспроизведение 1.

Запустить одиночный проход этого советника. Под конец прохода кнопка Stop будет продолжать гореть (причина в исходнике). Нажать на Stop и попробовать заново запустить одиночный.

В ответ будут такие короткие записи.

"fxsaber\EAToMath_Example.ex5" X64
XAUUSD.pro: ticks data begins from 2020.02.27 00:00
connecting to 127.0.0.1:3000
connected
disconnected
connection closed

Т.е. запустить одиночный не получится. Это будет продолжаться несколько секунд.


Воспроизведение 2.

А этот метод делает нерабочим Тестер где-то на минуту (видимо, какой-то таймаут на столько стоит).

Запустить оптимизацию в мат. режиме советника. Затем нажать на Stop. И попробовать запустить одиночный проход не в мат .режиме.

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


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

Просьба убрать данную блокировку Тестера. Проблема многолетняя, но впервые удалось найти способ воспроизведения.


Если у кого-то работают эти два метода воспроизведения, дайте знать здесь (для MQ).

Строка для поискаOshibka 153.