Опять про память...

 
Все-таки хотелось бы узнать, по какому принципу происходит резервирование памяти тестером при оптимизации. Оно пропорционально количеству проходов, количеству подбираемых параметров, квадрату их количества и т.п.? И вообще парадоксы выходят: на компе с 256 Мб ОЗУ тестер соглашается на 100-150 млн. проходов, а на компе с 1 Гб вылетает уже на 20 миллионах. Хотя в обоих местах одинаковая w2k с четвертым сервиспаком.
 
Выделение памяти идет по необходимости - предсказать явно сложно.

Точнее было бы сказать не "тестер соглашается на 100-150 млн. проходов", а "сообщает об общем количестве проходов". Фактически резервирования памяти не происходит. Как не печально, но 256 Мб маловато.

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

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

Точнее было бы сказать не "тестер соглашается на 100-150 млн. проходов", а "сообщает об общем количестве проходов". Фактически резервирования памяти не происходит. Как не печально, но 256 Мб маловато.

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

Кстати, а какой билд Вы используете? В 195 билде мы кардинально изменили работу с памятью в строковых переменных экспертов, что дает сильную экономию и ускорение на огромных перерасчетах.

Под термином "соглашается" я имел ввиду, что его не вышибает после первых 10-40 проходов, и он может дойти до конца оптимизации. Про парадокс памяти я уже упоминал, на 256 Мб результат по максимальному количеству вариантов лучше чем на 1 Гб, хотя комп и тормозит из-за свопинга.
Бесполезные результаты пропускаются по умолчанию, и флажок ГА тоже стоит почти всегда. Вот насчет ширины шага бывают разные варианты. Поэтому и выходит суммарное количество проходов за десятки миллионов. Но зависимость нехватки памяти от прогнозируемого количества проходов четкая. Только когда я уменьшаю его (загрубляя шаг или исключая параметр из оптимизации), тестер не стопорится и доходит до конца. И опять-же: на компе с 1 Гб это происходит, когда количество проходов где-то менее 10 млн. а с 256 Мб может не вылететь и на 100 млн.!
Билд использую последний, скачал только в начале сентября, по ссылке из новостей.

P.S. Вот конкретный пример.
Эксперт: "MACD Sample" (тот, что идет в комплекте с MT);
Период: М1;
Инструмент: GBP/USD;
Модель: Контрольные точки;
Диапазон даты: 2005.09.01 - 2006.09.05;
Режим оптимизации: ГА, Баланс, Long & Short, 2500 USD, без ограничений;

Параметры:
TakeProfit 35 - 100 (шаг=1)
Lots 1 - 6 (шаг=1)
TrailingStop 30 - 80 (шаг=1)
MACDOpenLevel 3 - 8 (шаг=1)
MACDCloseLevel 2 - 7 (шаг=1)
MATrendPeriod 6 - 31 (шаг=1)

Выдано:
число проходов = 18903456, выполнено до отказа только 4.
в журнале запись: "Memory handler: cannot allocate 393191968 bytes of memory"

Т.е. не может выделить около 400 метров, не так уж и много. А у меня файл подкачки только 3072 Мб и ОЗУ 1024 Мб!
 
Если компьютер с 1Gb работает хуже более слабого компьютера, то дело только в одном - этот компьютер безбожно замусорен софтом. Много ведь разного софта одновременно работает в фоне? Сделайте два скриншота окна "Менеджер задач" с показом вкладок "Процессы" и "Быстродействие".

Деинсталлируйте лишний софт, проведите полную дефрагментацию дисков и попробуйте снова.
 
А какие-то ограничения по количеству проходов в тестере все-таки есть?
У меня больше 2млрд. с копейками не получается.
Не зависит от того генетический алгоритм, пропускаются бесполезные результаты, загружена память другими программами или нет. Билд 197 от 12 сентября, W2K SP4 512МБ.
Если нет ограничения, тогда не понятно в каком направлении улучшать характеристики компьютера. Или все зависит от операционки, сколько захотела, столько выделила памяти?
У кого больше 2млрд. проходов получается?
 
Ограничение есть - максимально возможное положительное целое число со знаком. Как раз "2 миллиарда с копейками".
Причина обращения: