Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления - страница 28

 
Forester #:

Ну там OnTick будут генерироваться - логично, что мат. вычисления быстрее. Или я не понял вашу идею.

Правильно поняли. Нет пока числовых показателей.

 
fxsaber #:

Если получится, буду делать оптимизацию только в мат. режиме. Сплошные плюсы - и скорость и экономия на памяти. Т.е. можно гораздо бОльшую историю тиков использовать.

Тоже думаю об этом, при 15 Гб на агента - комп будет на 30% только использоваться.
 
fxsaber #:

Правильно поняли. Нет пока числовых показателей.

Для сравнения взял 1 блок памяти, 3 блока (как лучший вариант из вчерашних тестов) и 36 (по 1 на агена):

Мат вычисления
 По реал. тикам
1 блок памяти
Agents = 36
Performance = 3.7 Ticks(millions)/sec.
Total time in sek: 87
 1 блок памяти
Agents = 36
Performance = 15.3 Ticks(millions)/sec.
Total time in sek: 123 - в 1,4 раза медленнее
3 блока памяти
Agents = 36
Performance = 20.1 Ticks(millions)/sec.
Total time in sek: 16
3 блока памяти
Agents = 36
Performance = 19.7 Ticks(millions)/sec. - соизмеримо
Total time in sek: 118 - в 7,4 раза медленнее

 36 блоков памяти
Agents = 36
Performance = 5.5 Ticks(millions)/sec.
Total time in sek: 62
36 блоков памяти
Agents = 36
Performance = 20.4 Ticks(millions)/sec.
Total time in sek: 99

По общему времени теста - во всех случаях замедление на реал тиках. Видимо из за формирования OnTick() и др.
По Performance:
для 3 блоков памяти соизмеримо, а для 1 и 36 блоков - отличие в 4 раза. Причина неясна, (для перепроверки 2 раза перезапускал).

 
hini #:
Я помню, что разные процессы тоже могут использовать общую область памяти, но реализация этого довольно сложная
В базе есть https://www.mql5.com/ru/code/10872
FileMappingMT4.dll
FileMappingMT4.dll
  • www.mql5.com
Библиотека предназначена для работы с файловыми отображениями в среде МТ4.
 
Aleksey Vyazmikin #:

Нет...

Вот пример. Цена 83985 не была непосредственно перед сделкой Bid/Ask.

Объём может быть больше, чем есть на уровне Bid/Ask в стакане, и это так же будет причина смещения в моменте цены Last за границы Ask/Bid. При это ММ может закрыть сразу это смещение за один тик, в один матчинг.

Через какого брокера торгуете на мт5 на ММВБ?
 
Sergei Samokhin #:
Через какого брокера торгуете на мт5 на ММВБ?

В РФ только Финам предоставляет доступ к бирже через MT5.

 
Sergei Samokhin #:
Через какого брокера торгуете на мт5 на ММВБ?

В Финаме свои нюансы бывают, например странности/тонкости с расчетом ГО(гарантийного обеспечения) для фьючеров из-за возвращаемых сервером коэффициентов взимания маржи SymbolInfoMarginRate() (у меня вместо типичных 0.24, 0.25 - недавно единицу возвращал, впрочем это в тестере было).

Так что там нужно внимательно руку на пульсе держать.

 
Igor Zakharev #:

В Финаме свои нюансы бывают, например странности/тонкости с расчетом ГО(гарантийного обеспечения) для фьючеров из-за возвращаемых сервером коэффициентов взимания маржи SymbolInfoMarginRate() (у меня вместо типичных 0.24, 0.25 - недавно единицу возвращал, впрочем это в тестере было).

Так что там нужно внимательно руку на пульсе держать.

Единица - это на истёкших контрактах, на склейках. Плюс, услуга "Пониженное ГО" добавляет странностей )

 
Rorschach #:
В базе есть https://www.mql5.com/ru/code/10872
Спасибо большое!
 
hini #:
Спасибо большое!

Для старта берите это:

#import "kernel32.dll"
ulong MapViewOfFileFromApp(HANDLE hFileMappingObject,ulong DesiredAccess,ulong FileOffset,ulong NumberOfBytesToMap);
HANDLE CreateFileMappingFromApp(HANDLE hFile,long lpFileMappingAttributes,uint flProtect,ulong MaximumSize,const string lpName);
bool UnmapViewOfFile(ulong lpBaseAddress);
#import
#import "KernelBase.dll"
HANDLE OpenFileMappingFromApp(uint dwDesiredAccess,bool bInheritHandle,const string lpName);
#import

Это для MT5.

Не работает на Windows 7