Помогите!!! Советник съедает всю память!!! - страница 3

 
lexandros писал(а) >>
Скромно вклинюсь, на правах автора сего советника... Память он жрать не может. Машину грузит сильно, это да. Это кстати написано в описании к нему в кодебазе. Причем машину грузит не сам советник, а индюки от Семен Семеныча, там их сразу два... и каждый из них достаточно тяжел. Это и понятно, анализирует сразу 7 пар. Кроме того... в кодебазе выложен не окончательно рабочий вариант, а так сказать "заготовка", поэтому и приписка "beta". Для тестирования...
Его безусловно надо оптимизировать на предмет именно более экономной работы и как можно меньшего количества обращения к индюкам... Об этом тоже написано в кодебазе.

Но тем не менее... Советник не жрет никакую память, больше положенного, и вы первый, кто жалуетесь на такие проблемы. Тем более если на локальной машине все работает нормально, а именно на удаленной - проблемы... То собака порылась не здесь... а проблемы именно в VPS. В Windows c VPS действительно есть проблемы с распределением памяти. это всем известно...
Это говорит о некачественном хостинговом решении... Предъявляйте претензии хостерам, либо пользуйтесь хостингом специально заточенным под MT. Слава богу такие существуют. Они по крайней мере гарантируют, что именно МТ и советники будут работать без проблем.


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

Советник на мой взгляд перспективный - есть пару идей, но для этого надо сначала набрать статистики по работе, а из за возникших проблем не получается :(
Индиктор я просто не выложил (исправился). Есть в советнике такой момент - когда поступает торговый сгнал по CCFp, то советник начинает ждать подтверждения по CFP и с каждым тиком делается запрос к индикатору (соответственно он каждый раз пересчитывает) с выдачей сообщения что торговый сигнал не подтвержден, и все это пишется в лог-файл. Просматривая лог за день заметил что в определенное время он перестает писаться и в принципе время совпадает с временем зависания удаленной машины. Может вставить паузу между повторными запросами на подтверждение торгового сигнала? Поможет?

 
Вот... и докопались до истины... У вас просто дисковое пространство переполняется на удаленной машине... лог то в МТ - ничем не ограничен. Будет писаться на диск, пока места хватит...
Залезте в код, и закоментируйте строки Print
В которых выводится информация о том что сигнал не подтвежден... Да и другие принты, если они там есть... Это отладочные принты... их можно смело закоментить...
 
ЗЫ: т.к. в МТ4 нет дебагера - приходится вот такие принты втыкать при отладке... в МТ5 обещают дебаггер нормальный... ждемс
 
Limon >>:


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

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

К примеру вы подсчитываете 100 последних точек индикатора, с новым баром вы удаляете 100 член, смещаете все члены на 1, и добавляете новый нулевой член

 
>> Limon

Проверить набирает ли эксперт оперативную паямть очень легко ... запустите всё ваше хозяйство, откройте диспетчер виндовс и понаблюдайте за параметрами память и виртуальная память ... если непрерывно растет то проблема есть ... естественно в активное торговое время ...
 
vasya_vasya >>:

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

К примеру вы подсчитываете 100 последних точек индикатора, с новым баром вы удаляете 100 член, смещаете все члены на 1, и добавляете новый нулевой член


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