Обновление платформы MetaTrader 4 build 670: виртуальный хостинг, web-запросы и работа с сигналами из MQL-программ - страница 46

 
_Konstantin_:

Как программно узнать количество открытых графиков в терминале?

Не припоминаю отдельной функции (и не смогла найти такой навскидку, поэтому, если она есть, меня поправят, надеюсь). Однако исходя из ограничения в 100 одновременно открытых графиков в терминале и наличия функции ChartNext, при необходимости, можно воспользоваться и имеющимся в ней примером, чуть изменив его в плане вывода итоговой информации.
 
ale002:

Дорогая редакция, я напуган..



Это описание правили еще 17 марта. Каким образом у Вас все еще такая старая справка?
 
Y.A.K._:

Почему локальная справка не просится обновиться?

В примечании к описанию функции ResetLastError вижу на сайте и в локальной справке противоположные высказывания.


На сайте правильное описание. Справка обновится после официального выпуска обновления MT4.
 
zdd:

MT4 build 670: странно работают обращения из функции OnDeinit() к графическим объектам, находящимся не на текущем графике.

В прилагаемом файле пример.

В функции OnInit() создается графический объект на первом графике терминала, функция ObjectsTotal(chart_id) возвращает 1.

В функции OnDeinit функция ObjectsTotal(chart_id) возвращает 0 (почему?), а если советник запущен не на первом графике терминала, то функция ObjectDelete(chart_id,ObjectName) выполняется больше трех секунд и удаляет объект через раз.


Спасибо за сообщение. Исправим.
 
zdd:

MT4 build 670: странно работают обращения из функции OnDeinit() к графическим объектам, находящимся не на текущем графике.

В прилагаемом файле пример.

В функции OnInit() создается графический объект на первом графике терминала, функция ObjectsTotal(chart_id) возвращает 1.

В функции OnDeinit функция ObjectsTotal(chart_id) возвращает 0 (почему?), а если советник запущен не на первом графике терминала, то функция ObjectDelete(chart_id,ObjectName) выполняется больше трех секунд и удаляет объект через раз.

 


Имейте в виду, что параметры, передаваемые в функцию, обрабатываются задом наперёд.

У нас есть ошибка в функции ObjectsTotal при вызове её в деинициализации эксперта (мы попытаемся эту ошибку исправить), однако в Вашем примере эта функция всегда будет вызвана после вызова ObjectDelete

 
Rosh:
Это описание правили еще 17 марта. Каким образом у Вас все еще такая старая справка?

Не знал, что справка с обновлением терминала не обновляется, поэтому на предложение обновить жал ESC..

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

 
stringo:

У нас есть ошибка в функции ObjectsTotal при вызове её в деинициализации эксперта (мы попытаемся эту ошибку исправить), однако в Вашем примере эта функция всегда будет вызвана после вызова ObjectDelete

У меня вопросы по функции ObjectDelete (функцию ObjectsTotal я использовал для диагностики). При вызове из функции OnDeinit функция ObjectDelete выполняется очень долго (более 3-х секунд выполняется один вызов ObjectDelete при удалении объектов, расположенных не на текущем графике, а мне нужно удалить десяток объектов), графические объекты часто так и остаются неудаленными. Кроме того, из-за длительного выполнения функции ObjectDelete часто происходит принудительное завершение работы советника и часть функции OnDeinit остается невыполенной.
 
странно сейчас терминал ведет, подключен демо метаквотовскому с начала часа - разрывы соединения, так это ладно, но почему после отключения автоторговли терминал зависает так, что закрыть его нельзя..
 

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

 
вот еще выползло 2014.09.09 01:28:52.006 Memory handler: cannot allocate 1006632980 bytes of memory

это я индикатор, который новости читает с сайта прицепил, в советнике аналогично читаются новости и торгуется по ним..