Обновление платформы MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer - страница 43

 
Y.A.K._:

А разве события на тестере работают?

Я для тестера специально обходной путь делал, когда мне нажатие кнопки отследить надо было.



работали... до того как инклуды склеил(даже не знаю как это может быть связано)

 
Renat:

Скорее всего это антивирус тормозит с анализом создаваемого файла.

Какой антивирус используете и что происходит в нагрузкой на процессы редактора и самого антивируса в Диспетчере задач во время компиляции?


Проверил влияние антивируса - при компиляции он на долю секунды загружает CPU на 15-20%, а потом "отпускает".
Сейчас обнаружил что если МТ4 выключен то компиляция как и раньше происходит мгновенно, а если МТ4 включен то секунд 8-10. Раньше (возможно перед последним обновлением) и при включенном МТ4 компилировалось мгновенно. Т.е. видимо проблема где-то в передаче данных между МЕ и МТ.
 
chief2000:

Проверил влияние антивируса - при компиляции он на долю секунды загружает CPU на 15-20%, а потом "отпускает".
Сейчас обнаружил что если МТ4 выключен то компиляция как и раньше происходит мгновенно, а если МТ4 включен то секунд 8-10. Раньше (возможно перед последним обновлением) и при включенном МТ4 компилировалось мгновенно. Т.е. видимо проблема где-то в передаче данных между МЕ и МТ.

Возможно, компилируется что-то, что уже запущено на графики? Тогда ответ очевиден - перекомпиляция приводит к пересчету, а это требует времени.

Судя по тому, что "все виснет", речь об индикаторе.

Проверьте

 
Sergey_Mechanic:

Чистой правдой. Свой сервер истории есть, насколько я знаю, только у Альпари (для загрузки с него нужно ставить их терминал). Все остальные качают историю с сайта Метаквотов.
Вы повнимательнее прочитайте, в моем эксперименте Альпари присутствует. В сервисдеск об этом тоже указывал.
 

Не пойму, почему не вызывается "OnDeinit"? Терминал 625, Win7x64, пустой эксперт, ставлю брейкпойнт на "OnInit" и на "OnDeinit", на "OnInit" срабатывает а на "OnDeinit" нет.

Причем срабатывает только в случае если вручную удалить эксперта правой мышкой Expert Advisor - Remove, если закрыть график с экспертом - не срабатывает, если закрыть терминал - не срабатывает, если переключить таймфрейм - терминал наглухо виснет, приходится убивать процесс. Хотя справка говорит что при REASON_CLOSE, REASON_CHARTCLOSE должен вызываться "OnDeinit", или нет? Но вешаться при переключении таймфрейма терминал точно не должен :)

код эксперта

#property copyright "Copyright 2014, "
#property link "https://www.mql5.com"
#property version "1.00"
#property strict


int i_ = 0;

int OnInit()
{
return(INIT_SUCCEEDED); // здесь брейкпойтн
}


void OnDeinit(const int reason)

{
i_ = 1; // здесь брейкпойтн
}


void OnTick()

{

}

 
komposter:

Возможно, компилируется что-то, что уже запущено на графики? Тогда ответ очевиден - перекомпиляция приводит к пересчету, а это требует времени.

Судя по тому, что "все виснет", речь об индикаторе.

Проверьте


На графиках ничего нет, компилировал советники, один из которых содержит десяток строк (пример который я приводил для Терминальных переменных на предыдущей странице), эффект тот же. Сейчас проверил на другой инсталляции той же версии - все как и в предыдущем случае.
 
Eufemio:

Не пойму, почему не вызывается "OnDeinit"? Терминал 625, Win7x64, пустой эксперт, ставлю брейкпойнт на "OnInit" и на "OnDeinit", на "OnInit" срабатывает а на "OnDeinit" нет.

Вдогонку, методом тыка выяснилось, что при обычной работе "OnDeinit" вызывается, но не вызывается под дебагером:

Здесь под дебагером - дебагер скушал OnDeinit
2014.04.13 08:39:44.590 debugging terminated
2014.04.13 08:39:44.578 Test2 GBPUSD,H1: uninit reason 4
2014.04.13 08:39:39.247 Test2 GBPUSD,H1: initialized
2014.04.13 08:39:39.247 Test2 GBPUSD,H1: OnInit!!!
2014.04.13 08:39:28.049 Expert Test2 GBPUSD,H1: loaded successfully
Здесь без дебагера - OnDeinit вызывается
2014.04.13 08:39:00.730 Test2 GBPUSD,H1: OnDeinit!!!
2014.04.13 08:39:00.730 Test2 GBPUSD,H1: uninit reason 4
2014.04.13 08:38:55.907 Test2 GBPUSD,H1: initialized
2014.04.13 08:38:55.907 Test2 GBPUSD,H1: OnInit!!!

2014.04.13 08:38:51.857 Expert Test2 GBPUSD,H1: loaded successfully

Ещё выяснилось, что при переоткрытии удалёного графика с экспертом, он открывается с тем же экспертом, но "OnInit" для него не вызывается, хотя рожица у эксперта "весёлая", в общем бардак какой-то с ключевыми событиями, у меня в них открываются-закрываются файлы, создаются-удаляются объекты синхронизации, если "OnDeinit" не вызвался - всё остаётся висеть пока не прихлопнешь терминал :((

 
Barbarian:
Вы повнимательнее прочитайте, в моем эксперименте Альпари присутствует. В сервисдеск об этом тоже указывал.


Это вы повнимательнее прочитайте, что написал вам я, а до меня - сервисдеск (причём не один раз, как я понял). :)

А про Альпари уточню: для того, чтобы история загружалась с их сервера, нужно установить их терминал. Не просто зайти на их счёт из какого-то терминала, а именно установить терминал, скачанный с их сайта, только тогда история будет загружаться с их сервера, так он настроен. Причём независимо от того, чей счёт открыт в терминале (если чужой, то появится предупреждение, что загрузка истории будет с сервера Альпари, который не соответствует серверу текущего счёта). Все остальные терминалы качают историю с серера Метаквотов и всегда выдают предупреждение об этом.

 
Sergey_Mechanic:


Это вы повнимательнее прочитайте, что написал вам я, а до меня - сервисдеск (причём не один раз, как я понял). :)

А про Альпари уточню: для того, чтобы история загружалась с их сервера, нужно установить их терминал. Не просто зайти на их счёт из какого-то терминала, а именно установить терминал, скачанный с их сайта, только тогда история будет загружаться с их сервера, так он настроен. Причём независимо от того, чей счёт открыт в терминале (если чужой, то появится предупреждение, что загрузка истории будет с сервера Альпари, который не соответствует серверу текущего счёта). Все остальные терминалы качают историю с серера Метаквотов и всегда выдают предупреждение об этом.

Вы хотите поспорить?

2. Почему после установки нового терминала к примеру с InstaForex, при закачке архива котировок выскакивает сообщение, что котировки будут загружены с MetaQuotes? ОС Win7x64, в системе не установлено ни одного терминала, т.е. МТ4 с InstaForex ставился единственным терминалом. То же самое происходит с Альпари.

Обратите внимание на выделенное, это то что я написал. Читайте внимательно пожалуйста.

Про Инсту мне отвечали, но про Альпари я так ответа и не увидел.

 
Barbarian:

Вы хотите поспорить?

Нет. Два раза написал, больше не буду.