генетический оптимизатор

 
Прогресс есть.
Сначала выпустим 192 билд, а в 193 наверняка будет ГА.

К официальному 192 билду готовим очень хороший механизм кеширования предыдущих результатов в оптимизаторе. Что это дает?

1) теперь можно остановить тестер, а потом заново запустить - он продолжит расчеты с последнего прогона
2) многократные повторные прогоны оптимизатора будут быстрее, так как ранее просчитанные результаты на тех же параметрах будут вытаскиваться из кеша

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

Хотелось бы уточнить правильно ли я понимаю эту фразу? То есть теперь в случае, если при повторном прохождении тестера требуется посчитать какую-нибудь функцию например
iStdDev(NULL,PERIOD_M1,period_deviation_D2W,MODE_SMA,0,PRICE_OPEN,0); для каждого тика
при тех же самых параметрах (NULL,PERIOD_M1,period_deviation_D2W,MODE_SMA,0,PRICE_OPEN,0), то этого расчёта производиться не будет, а будут взяты готовые данные из посчитанного заранее массива для этой функции? Правильно?
Тогда имеется вопрос о порядке внесения новых массивов с другими данными в кеш.
Сколько таких массивов с посчитанными данными может вмещать в себя кеш? То есть будут ли создаваться в нём множество массивов значений посчитанных данных, что быстро забьёт все ресурсы тестера, если нет каких-либо ограничений на их количество, или же тестер будет иметь только массив данных для каждой функции только для ПОСЛЕДНИХ посчитанных данных? И какие ограничения имеются в кеше вообще на количество кешируемых функций? То есть сколько функций он сможет закешировать в себе? Или же это количество соответсвует ВСЕМ функциям, имеющимся в советнике и пределом является лишь физические возможности компьютера?
 
То есть теперь в случае, если при повторном прохождении тестера требуется посчитать какую-нибудь функцию например
iStdDev(NULL,PERIOD_M1,period_deviation_D2W,MODE_SMA,0,PRICE_OPEN,0); для каждого тика
при тех же самых параметрах (NULL,PERIOD_M1,period_deviation_D2W,MODE_SMA,0,PRICE_OPEN,0), то этого расчёта производиться не будет, а будут взяты готовые данные из посчитанного заранее массива для этой функции? Правильно?

Нет. Кешируются результаты прогонов при заданных входных параметрах x, y, z.
Кеширование эффективно при массовых исследованиях, когда зачастую одни и теже входные результаты встречаются при разных прогонах. И это подготовительный этап перед внедрением генетического слгоритма в оптимизаторе. Кеши реально помогут и в этом случае.
 
А я то думал, что под кешированием понимается то, что я описал выше :o(.
То есть кеш в данном случае используется только для того, чтобы просто при тупой оптимизации например 3х параметров по 10 отсчётам (всего 1000 прогонов) не считать например 10% проходов (или около того - просто формулу для подсчёта такой комбинации не помню). Если не сложно то представьте, пожалуйста, более точную цифру прогонов, на которую будет сокращено время оптимизации например для описанного случая.
Причина обращения: