Умная логика обработки информации MQL - страница 3

 
-Aleks-:

Я пишу ТЗ для советника на MT4 с приоритетом на ускоренную обработку данных.

Прошу Вас подсказать, имеет ли значение для ускорение работы последовательность выполнения расчета или  выборочное (как правильно называется - репрезентативное?).

Прикладываю два варианта в виде картинок, на которых отображены блок схемы (примитивно).

Если можно, то напишите как должен выглядеть код, если выборочное исполнение блоков будет происходить - чисто примитивный макет, и даст ли это существенный прирост скорости если одно из промежуточных условий будет верно!?

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

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

Если одна ситуация появляется чаще других - проверку ставить первой.

В-третьих, "существенный прирост в скорости" чего? Если операций сравнения, то лишь минимизация количества операций сравнения даст прирост (не думаю что он будет заметен). Если же речь о скорости работы функции Start, то операция закрытия ордера будет выполняться намного дольше чем штатные операции сравнения.

В-четвертых, если для проверки ваших условий требуется загрузка данных из файла, из базы данных или с сайта, то именно обращение к ресурсам займет большую часть времени. Помните, самое медленное устройство ПК - жесткий диск.

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

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