Скачать MetaTrader 5

Параллельная обработка в МТ4

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Используй MQL5 Cloud Network. Тестируй роботов с гиперскоростью!
Евгений
17
Евгений 2010.11.27 16:59 

Есть задача:

Эксперт работает на нескольких торговых инструментах и использует общую DLL.

DLL производит первичную обработку и передает данные на SQL сервер.

Вопрос 1:

Требуется ли в DLL предусмотреть механизм синхронизации параллельных вычислений, типа семафора, или подобный механизм уже реализован в самом МТ4?

Вопрос 2:

Возможно ли реализовать подобный механизм средствами МТ4?

Rustamzhan Salidzhanov
7684
Rustamzhan Salidzhanov 2010.11.27 17:21  

Каждый эксперт или скрипт в МТ работает в собственном потоке, поэтому по идее несколько экспертов повешенных на несколько графиков одной и той же валютной пары, должны работать (ну или начинать работать (по приходу свежего тика)) одновременно, но вообще то это вопрос к метаквотам.

Alexey Subbotin
4998
Alexey Subbotin 2010.11.27 21:33  
еще не стоит забывать, что даже если в нескольких экспертах используется одна и та же ДЛЛ, каждый из них подгружает в память отдельную ее копию
Vadim Zhunko
5226
Vadim Zhunko 2010.11.28 02:19  
alsu:
еще не стоит забывать, что даже если в нескольких экспертах используется одна и та же ДЛЛ, каждый из них подгружает в память отдельную ее копию
Оказывается это не так. Глобальная область DLL общая и доступна для всех экспертов. Стало быть, копия одна.
Dmitry Fedoseev
42877
Dmitry Fedoseev 2010.11.28 04:48  
Zhunko:
Оказывается это не так. Глобальная область DLL общая и доступна для всех экспертов. Стало быть, копия одна.

Ага. Получается, что не советник, а терминал загружает dll, а все ей пользуются, одним экземпляром.
Debugger
2501
Debugger 2010.11.28 16:27  
zem32:

Есть задача:

Эксперт работает на нескольких торговых инструментах и использует общую DLL.

DLL производит первичную обработку и передает данные на SQL сервер.

Вопрос 1:

Требуется ли в DLL предусмотреть механизм синхронизации параллельных вычислений, типа семафора, или подобный механизм уже реализован в самом МТ4?

Вопрос 2:

Возможно ли реализовать подобный механизм средствами МТ4?


На оба вопроса ответ да.

Нужно реализовывать механизм синхронизации.

Синхронизацию можно сделать средствами MT4

Комбинатор
15918
Комбинатор 2010.11.28 16:34  
На второй вопрос ответ "нет". Используйте стандартные виндовые механизмы.
Vadim Zhunko
5226
Vadim Zhunko 2010.11.28 17:28  
По опыту, скажу, что можно синхронизировать средствами MQL4, но лучше этого не делать. Всё гораздо проще и надёжне стандартными средствами.
Комбинатор
15918
Комбинатор 2010.11.28 17:34  
Был уже разговор, с разборами. Можно свести количество коллизий к минимуму, но их вероятность будет пусть 1 на миллион, миллиард, но ненулевой.
Debugger
2501
Debugger 2010.11.28 17:49  
Zhunko:
По опыту, скажу, что можно синхронизировать средствами MQL4, но лучше этого не делать. Всё гораздо проще и надёжне стандартными средствами.

Абсолютно согласен, но у меня работают оба варианта.
Alexey Subbotin
4998
Alexey Subbotin 2010.11.28 21:30  
Integer:

Ага. Получается, что не советник, а терминал загружает dll, а все ей пользуются, одним экземпляром.
Отметил для себя, что последний раз читал раздел справки про импорт функций года этак три назад. Конечно, память может мне и изменять, но раньше там, кажется, было написано как раз наоборот)))) Видимо, соответствующее внесение изменений в терминал прошло для меня незамеченным...
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий