MetaTrader 4 Client Terminal build 610 - страница 53

 
alsu:

Неважно где. Если пользуетесь new, то, согласно правилам языка, обязаны использовать delete в тот момент, когда объект уже не нужен.

Еще может быть проблема с объявлением, кажется, деструктор объявляют обычно без типа возвращаемого значения, то есть без void



ну, это понятно.. в моей задаче "как бы" класс работает всегда..
 
alsu:

В каком порядке осуществляется обработка различных событий во время выполнения эксперта?

Более конкретно, если OnTick() и OnTimer() вызывают одну и ту же функцию Func1(), должен ли я позаботиться самостоятельно о создании критической секции?


Я думаю, что не надо. OnTick и OnTimer вероятно синхронизируются внутри через оконную процедуру и очередь сообщений.

Точно знают только разработчики. :)

 
RickD:

Я думаю, что не надо. OnTick и OnTimer вероятно синхронизируются внутри через оконную процедуру и очередь сообщений.

Точно знают только разработчики. :)


К ним и вопрос... Мне важно не что я думаю, а как на самом деле будет, если в рабочем эксперте получится перекрытие. Терминал вполне может обрабатывать события асинхронно, разработчикам ничто не мешало это сделать.

Пока жду ответа, но уже подстраховался...

 
Zhunko:
Что такое "metaviewer.dll" и зачем в 32-разрядном МТ4 библиотека "metaviewer64.dll"?

64 битный компонент вьювера книг и журналов распространяется тоже, так как МТ4 может (что часто происходит) устанавливается на 64 битных операционках.

На 64 битных версиях Windows инсталлируется именно этот компонент, так как он более родной.

Больше деталей по ссылке: https://www.mql5.com/ru/forum/23/page17#comment_775746

Уже в 613 билде МТ4 доступны журналы в Маркете.

 
keekkenen:

с классами совсем не работал, может что не так написал ?!

деструктор не вызывается и файл не удаляется

Динамически созданный объект требует явного удаления через delete.

У статически созданных объектов деструктор вызывается автоматически при выходе за границы видимости.

 
alsu:

К ним и вопрос... Мне важно не что я думаю, а как на самом деле будет, если в рабочем эксперте получится перекрытие. Терминал вполне может обрабатывать события асинхронно, разработчикам ничто не мешало это сделать.

Пока жду ответа, но уже подстраховался...

Алексей, события обрабатываются синхронно (т.е. строго в порядке очереди). Неявных прерываний с передачей управления в ту же программу гарантированно не бывает, т.е. в каждом эксперте, скрипте или индикаторе в один момент времени может работать обработчик только одного события. Схема довольно проста (и надёжна). Каждый эксперт (или скрипт) выполняется в одном выделенном для него потоке. У каждого эксперта поток свой собственный. Индикаторы выполняются группами, один поток на все индикаторы одного торгового инструмента.

Тема обсуждалась как-то на mql5.com. Слегка побузили, потом мирно разошлись, согласившись в итоге с разработчиками, что это правильно. Если тебе нужна параллельность (для равномерной загрузки ядер), сделай в основном эксперте скорострельный менеджер событий, из него раскидывай юзерские события по другим экспертам. Вообще поройся на mql5-форуме (поиск рулит), поищи обсуждения. Там немного, но есть.

Если же твоя цель только для предотвратить "паразитную" параллельность в эксперте, то можешь больше не волноваться (см. начало поста).

 
MetaDriver:

Алексей, события обрабатываются синхронно (т.е. строго в порядке очереди). Неявных прерываний с передачей управления в ту же программу гарантированно не бывает, т.е. в каждом эксперте, скрипте или индикаторе в один момент времени может работать обработчик только одного события. Схема довольно проста (и надёжна). Каждый эксперт (или скрипт) выполняется в одном выделенном для него потоке. У каждого эксперта поток свой собственный. Индикаторы выполняются группами, один поток на все индикаторы одного торгового инструмента.

Тема обсуждалась как-то на mql5.com. Слегка побузили, потом мирно разошлись, согласившись в итоге с разработчиками, что это правильно. Если тебе нужна параллельность (для равномерной загрузки ядер), сделай в основном эксперте скорострельный менеджер событий, из него раскидывай юзерские события по другим экспертам. Вообще поройся на mql5-форуме (поиск рулит), поищи обсуждения. Там немного, но есть.

Если же твоя цель только для предотвратить "паразитную" параллельность в эксперте, то можешь больше не волноваться (см. начало поста).

Дайте две, спасибо.
 
Renat:

Выпустили для тестов новый 613 билд на сервере MetaQuotes-New MT4 Test (адрес demo.metaquotes.net:444)



Лучше б в место журналов и прочей лабуды Вы сделали возможность вести журнал трейдера...

Возможность записывать комментарии к ордерам и делать анализ торговли за день, неделю, месяц ...

 
VOLDEMAR:


Лучше б в место журналов и прочей лабуды Вы сделали возможность вести журнал трейдера...

Возможность записывать комментарии к ордерам и делать анализ торговли за день, неделю, месяц ...


Кстати - в идеале было бы увеличить длинну комментария ордера. До 128 символов например.

В комментарий не всегда вмещается нужная инфа при сложной логике эксперта.

 
RickD:

Кстати - в идеале было бы увеличить длинну комментария ордера. До 128 символов например.

В комментарий не всегда вмещается нужная инфа при сложной логике эксперта.


Какой смысл хранить нужную информацию в комментарии ордера, если ДЦ может править его по своему усмотрению?


Если уж нужна какая-то дополнительная информация, то лучше записать её в файл с именем (string) OrderTicket() плюс ещё появилась возможность записи файлов .txt

Причина обращения: