Новая версия клиентского терминала MetaTrader 4 build 215

 
Выпущен новый клиентский терминал MetaTrader 4 build 215.

Список изменений:

1. MQL4: Исправлена ошибка конкатенации константных строк (необходима перекомпиляция экспертов и скриптов, скомпилированных в 213 билде).

2. MQL4: Исправлена ошибка переинициализации глобальных и статических переменных MQL4-библиотек.

3. MQL4: Исправлена утечка памяти при изменении размеров строковых массивов.

4. MQL4: Исправлена утечка памяти при обращении за пределы строковых массивов.

5. Tester: Исправлена ошибка генерации тиков в свечах с объёмом 4–6 с отсутствующей одной тенью.


Автоматическое обновление доступно через систему LiveUpdate.
 
что-то в последнее время перестали тут давать прямые ссылки на скачивание
 
1. В 215 мой зацикленный эксперт стал работать на 15-20% быстрее.
2. Нет зависимости скорости исполнения программы от ICQ и Skipe (см. https://www.mql5.com/ru/forum/105461).
 
Выпущен новый клиентский терминал MetaTrader 4 build 215.

Есть тема посвежее - о МТ5)
Я там задал свой вопрос о имеющемся и сознательно допускаемом разработчиками недостатке программы.
Касается закачки избыточных данных. Дублировать не буду. Можно смотреть)
 
Привет,

У меня всо таки остаотся старая проблема, описсана в http://www.alpari-idc.ru/ru/articles_mql4/12.html кокда вызываю кастомный индикатор из експерта(там из индикатора). Каждый раз он загружает новую копию индикатора через iCustom(), и если ето запускать через тестер, получяем милионы копии индикатора в памяти. Запускать кастомны индикаторы как функции експерта нелогично, так как их может быть до 20, и их код может менятса. Как сделать чтобы индикатор загружался толко один раз и патом просто можно было жызовить их main() функции ж таком принципе как ети индикаторы работают самостаятелно прямо на графиках?

Если нету жозмоности загрузить индикатор толко один раз и патом просто жызоват ево main() функцию через iCustom(), профиксите пожалста.
 
Привет,

У меня всо таки остаотся старая проблема, описсана в http://www.alpari-idc.ru/ru/articles_mql4/12.html кокда вызываю кастомный индикатор из експерта(там из индикатора). Каждый раз он загружает новую копию индикатора через iCustom(), и если ето запускать через тестер, получяем милионы копии индикатора в памяти. Запускать кастомны индикаторы как функции експерта нелогично, так как их может быть до 20, и их код может менятса. Как сделать чтобы индикатор загружался толко один раз и патом просто можно было жызовить их main() функции ж таком принципе как ети индикаторы работают самостаятелно прямо на графиках?

Если нету жозмоности загрузить индикатор толко один раз и патом просто жызоват ево main() функцию через iCustom(), профиксите пожалста.



Только сегодня разбирали такую же проблему. Оказалось, что вызов пользовательского индикатора был организован неправильно. Пользователский индикатор имел 15 внешних параметров, а при вызове его через iCustom() задавалось 16 параметров.

Причем на 6 параметре тип был сбит - требовалось передавать параметр типа int со значением 21, а передавался тип bool, в итоге значение 21 (true) приводилось к значению 1 (единица). И каждый раз при новом обращении звучал вопрос - "а дайка мне индикатор, у которого шестой параметр имеет значение 21". На что следовал ответ - "такого у меня почему то нет, могу его рассчитать". И так постонянно происходил заново расчет.

А так как количество пользовательских индикаторов в кеше ограничено, то происходило переполнение и последующая выгрузка лишних копий этого индикатора. В итоге пользователь виде в логах записи о постоянных загрузках и выгрузках этого индикатора. Самое интересное, что этот горе-писатель данного индикатора пишет их за деньги под заказ.
 
Пользователский индикатор имел 15 внешних параметров, а при вызове его через iCustom() задавалось 16 параметров.


А можете в следущем булде сделать так, чтобы при компиляции индикатора делалса експорт прототипа функции start() в коде со всеми входящими параметрами (extern ... , extern ...) и выходящими типами/количеством резултатов чтобы патом могли проверять правилно ли iCustom() применяетса в других индикаторов/експертов/библиотеках при их компиляций?
 
Эксперт обращается к импортируемой функции (момент обращения идентифицируется по факту передвижения граф. объекта). В момент обращения при тестировании неоднократно вылетает терминал.

There has been a critical error
Time : 2008.04.09 21:53
Program : Client Terminal
Version : 4.00 (build: 215, 27 Mar 2008)
OS : Windows XP Professional 5.1 Service Pack 2 (Build 2600)
Processors : 1 x X86 (level 15)
Memory : 777712/322856 kb
Exception : C0000005
Address : 7C918FEA
Access Type : write
Access Addr : 00000010

Registers : EAX=00000000 CS=001b EIP=7C918FEA EFLGS=00010246
: EBX=00000000 SS=0023 ESP=02C7B8FC EBP=02C7B970
: ECX=00000180 DS=0023 ESI=01233A60 FS=003b
: EDX=01233A70 ES=0023 EDI=00000000 GS=0000

Stack Trace : 7C90104B 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000

Modules :
1 : 00400000 002A9000 d:\mt4_ag_3\terminal.exe
2 : 10000000 00014000 c:\windows\system32\drwebsp.dll
3 : 20000000 002CD000 c:\windows\system32\xpsp2res.dll
4 : 5B260000 00038000 c:\windows\system32\uxtheme.dll
5 : 61EC0000 0000E000 c:\windows\system32\mfc42loc.dll
6 : 698B0000 00058000 c:\windows\system32\hnetcfg.dll
7 : 71A30000 00040000 c:\windows\system32\mswsock.dll
8 : 71A70000 00008000 c:\windows\system32\wshtcpip.dll
9 : 71A80000 00008000 c:\windows\system32\ws2help.dll
10 : 71A90000 00017000 c:\windows\system32\ws2_32.dll
11 : 73D90000 000FE000 c:\windows\system32\mfc42.dll
12 : 746E0000 0004B000 c:\windows\system32\msctf.dll
13 : 76350000 00005000 c:\windows\system32\msimg32.dll
14 : 76380000 00049000 c:\windows\system32\comdlg32.dll
15 : 76B20000 0002E000 c:\windows\system32\winmm.dll
16 : 77110000 0008C000 c:\windows\system32\oleaut32.dll
17 : 773C0000 00102000 c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll
18 : 774D0000 0013C000 c:\windows\system32\ole32.dll
19 : 77C00000 00058000 c:\windows\system32\msvcrt.dll
20 : 77D30000 00090000 c:\windows\system32\user32.dll
21 : 77DC0000 000AC000 c:\windows\system32\advapi32.dll
22 : 77E70000 00091000 c:\windows\system32\rpcrt4.dll
23 : 77F10000 00046000 c:\windows\system32\gdi32.dll
24 : 77F60000 00076000 c:\windows\system32\shlwapi.dll
25 : 7C800000 000F6000 c:\windows\system32\kernel32.dll
26 : 7C900000 000B1000 c:\windows\system32\ntdll.dll
27 : 7C9C0000 00818000 c:\windows\system32\shell32.dll
Причина обращения: