[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 353

 
Zhunko:

Сначала оптимизацию надо сделать. Скорость MQL4 для большинства задач подходит.

Для DLL есть пример в папке МТ4.


Я имею ввиду индивидуальные задачи, где одно исполнение скрипта несколько часов. Что Вы подразумеваете под оптимизацией?
 
Ну несколько часов это много, обычно есть варианты сделать работу расчетов быстрее за счет переделки алгоритма расчетов, вынесение повторяющихся действий за пределы цикла, избежание медленно обрабатываемых конструкций, многомерных массивов и т.п.
 
splxgf:
Ну несколько часов это много, обычно есть варианты сделать работу расчетов быстрее за счет переделки алгоритма расчетов, вынесение повторяющихся действий за пределы цикла, избежание медленно обрабатываемых конструкций, многомерных массивов и т.п.

А может есть у Вас ответ на вопрос: хранить характеристики открытых ордеров оптимальнее в многомерном массиве или в нескольких одномерных, по одному на характеристику? Пробовал и так, и так. Разницы в скорости не заметил. Как оптимальнее (ордера разные, и рыночные и отложенные, мб даже разнонаправленные, локовые)?

Скажете, наверное, "по условию задачи"?

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

Если не трудно, можете показать пример подобной оптимизации. Например, рассмотреть все периоды индикатора Аллигатор iAlligator от 1-100 (7 периодов), сами математические операции простые (сложение,вычитание).

 
snail09:

А может есть у Вас ответ на вопрос: хранить характеристики открытых ордеров оптимальнее в многомерном массиве или в нескольких одномерных, по одному на характеристику? Пробовал и так, и так. Разницы в скорости не заметил. Как оптимальнее (ордера разные, и рыночные и отложенные, мб даже разнонаправленные, локовые)?

Скажете, наверное, "по условию задачи"?


Пока не сталкивался, не знаю. Но если ваш код правильный и выполняет поставленные задачи, то, на мой взгляд, какая разница в каком массиве.
 
khorosh:
Существует ли такой индикатор эквити, чтобы у него во внешней переменной можно было задавать дату и чтобы все ордера открытые ранее этой даты при расчёте эквити не учитывались?


эти посмотрите... Begin_Monitoring и Draw_Begin...

Файлы:
 
FelixFX:

Я имею ввиду индивидуальные задачи, где одно исполнение скрипта несколько часов. Что Вы подразумеваете под оптимизацией?
Имеется ввиду модифицироватиь код так, чтобы он стал быстрее работать. Есть особенности MQL4, зная, которые, можно ускорить вычисления в несколько раз. Без Вашего кода сказать, что можно оптимизировать, никак нельзя.
 
Zhunko:
Имеется ввиду модифицироватиь код так, чтобы он стал быстрее работать. Есть особенности MQL4, зная, которые, можно ускорить вычисления в несколько раз. Без Вашего кода сказать, что можно оптимизировать, никак нельзя.

Например, рассмотреть все периоды индикатора Аллигатор iAlligator от 1-100 (7 изменяющихся параметров), сами математические операции простые (сложение,вычитание - для примера можно взять сумму разности максимальной и минимальной цены каждого бара цена закрытия которого выше всех линий индикатора).
 
FelixFX:

Пока не сталкивался, не знаю. Но если ваш код правильный и выполняет поставленные задачи, то, на мой взгляд, какая разница в каком массиве.
Правильны оба варианта. Потому и спросил. А Вы как отслеживаете "свои" ордера? Поделитесь.
 
FelixFX:

Если не трудно, можете показать пример подобной оптимизации. Например, рассмотреть все периоды индикатора Аллигатор iAlligator от 1-100 (7 периодов), сами математические операции простые (сложение,вычитание).

К примеру была задача сколько раз цена пересекала заданные уровни за последние два года.

1. Можно брать каждый уровень и просматривать данные за два года. Затраты: количество баров умножаем на количество уровней.

2. Можно создать отдельный массив уровней. И достаточно перебрать все бары проверяя и инкрементируя нужные элементы массива. В этом случае вычисления будут производиться быстрее.

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