Советники: e-PSI@PROC

 

e-PSI@PROC:

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

Author: TarasBY

 
Красиво! Вступлю в пул по покупке для mql5 :)
 
пишет почему-то e-PSI@PROC EURUSD,H4: f_CalculatePribul(): Ошибка № 4053: Ошибка массива. :(
 

Спасибо за ваши разработки!

Скажите данный советник в тестере работает или нет. Загнал его в тестер, а он вот чего выдает

Хотя сделки открывает.

На демо счете выдает ошибку 4099 "Конец файла".

 
AndreyZak:

Спасибо за ваши разработки!

Скажите данный советник в тестере работает или нет. Загнал его в тестер, а он вот чего выдает


Хотя сделки открывает. На демо счете выдает ошибку 4099 "Конец файла".

ВНИМАНИЕ !!!

Для тех, кто не внимательно прочёл анонс\шапку (описание) к советнику в начале этой страницы...
Кому, не интересно вникать в суть - при описанных трудностях:

Найдите в настройках советника переменную (она находится почти в самом низу) Allowed_Magics, скопируйте отсюда следующую строку - 878;879;880;881;882;882;884;885 - конец строки; и запускайте хоть тестирование, хоть оптимизацию...

Для тех, кому нужны объяснения - зачем произведены предыдущие действия:
Что делает данный советник - в нём прописаны 8 совершенно различных стратегий, которые работают не зависимо друг от друга, но чтобы они так работали им нужен индификатор, коим является OrderMagicNumber, который для ордеров каждой из стратегий свой. Как он образуется? Имеем параметр Base.Magic = 878. Первая стратегия будет иметь Магик = 878, вторая - 879, третья - 880 и т.д. до восьмой стратегии, которая будет иметь Магик = 885 (878+7). Когда у человека ордера выставляются - это означает, что по озвученной программе советник РАБОТАЕТ! Затем - мы имеем возможность организовать "финансирование" каждой из стратегий по результатам её работы за отчётный период (в данном случае - 30 дней). Для организации этого процесса нужно указать в строке

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

Постарался объяснить, как можно подробнее.

"На демо счете выдает ошибку 4099 "Конец файла"." - при первом запуске не в тестере советник пытается прочитать файл настроек (для виртуальной торговли), которого ещё нет, при деинициализации советника такой файл будет создан и при повторной инициализации этой ошибки не будет!

ПОЖЕЛАНИЕ!!! Прежде чем сокрушаться, что у Вас что-то не работает - быстрее будет ещё раз перечитать аннотацию!!! ;)

P.S. Для тех, кто дочитал: сделал для тестера автоматическое заполнение параметра Allowed_Magics и не отменял для желающих ручное (заполнение) - перезалил в шапку (завтра после модерирования обновится - нужно перезакачать include.zip).

P.P.S. Если при компиляции в эдиторе вы получите результат:

Function "VirtualSelect" is not referenced and will be removed from exp-file    
Function "SELLSleep" is not referenced and will be removed from exp-file        
Function "BUYSleep" is not referenced and will be removed from exp-file 
Function "fCCV_S" is not referenced and will be removed from exp-file   
Function "IIFd" is not referenced and will be removed from exp-file     
Function "DSDig" is not referenced and will be removed from exp-file    
Function "fPrintAndShowComment" is not referenced and will be removed from exp-file     
не спешите хвататься за мышку\клаву\валидол - ничего страшного в этом нет - это бывает тогда, когда в коде есть не задействованные функции, при компиляции они не будут включены в скомпилированный файл, о чём вас компилятор и уведомляет...
 

Виноват был не внимателен.Спасибо за разъяснения!

 

И всё таки ошибка вылезает "На демо счете выдает ошибку 4099 "Конец файла". Сто раз включал/отключал, ставил на график, удалял и снова ставил - все равно выдает эту ошибку(2011.07.12 17:16:23 e-PSI@PROC EURUSD,H1: fTrailling(): ошибка 4099 "Конец файла". .2011.07.12 17:16:23 e-PSI@PROC EURUSD,H1: Closings(): ошибка 4099 "Конец файла".) .

Разясните пожалуйста еще разок, как правильно сделать, что бы такой ошибки не было. Заранее спасибо!

 
AndreyZak:

И всё таки ошибка вылезает "На демо счете выдает ошибку 4099 "Конец файла". Сто раз включал/отключал, ставил на график, удалял и снова ставил - все равно выдает эту ошибку(2011.07.12 17:16:23 e-PSI@PROC EURUSD,H1: fTrailling(): ошибка 4099 "Конец файла". .2011.07.12 17:16:23 e-PSI@PROC EURUSD,H1: Closings(): ошибка 4099 "Конец файла".) .

Разясните пожалуйста еще разок, как правильно сделать, что бы такой ошибки не было. Заранее спасибо!

До прогонки на демке я не добрался - приношу свои извинения. Я рассказал Вам теорию, а на практике не всегда получается по теории... :(
Подправил и перезалил весь комплект.
 
TarasBY:

До прогонки на демке я не добрался - приношу свои извинения. Я рассказал Вам теорию, а на практике не всегда получается по теории... :(
Подправил и перезалил весь комплект.

Спасибо завтра потестю, а сейчас спать.
 

Скачал, переустановил, а результат тот же, плюс ещё одна ошибка:

 
AndreyZak:

Скачал, переустановил, а результат тот же, плюс ещё одна ошибка:

Перезалитые файлы ещё до сих пор не прошли модерацию. Контролировать факт проверки модератором можно по наименованию библиотек в архиве - я их изменил на VirtualTrendForPROC.mqh и RealTrendForPROC.mqh. Тут, уж, я бессилен - нужно ждать...

P.S. Спасибо за адекватность - в любом коде могут быть ошибки, тем более, когда используешь в своих проектах сторонние разработки, далеко не каждый автор вообще заморачивается по вопросу "отлова" и устранения ошибок, а ещё структура MQL4 иногда другого варианта на проверку, как возврат ошибки не предлагает, что и было в данном случае в такой конструкции:

        //---- Считываем файл
        while (!FileIsEnding (handle))
        {
            buffer[Count] = FileReadString (handle);
            Count++;
        }
где FileIsEnding (handle) (см. справку)


bool FileIsEnding( int handle) 
Возвращает TRUE, если файловый указатель находится в конце файла, иначе возвращает FALSE.
Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError(). В случае достижения конца файла в процессе чтения 
функция GetLastError() вернет ошибку ERR_END_OF_FILE (4099). 
ничего другого не предлагает...
При работе в тестере запись в файл обычно отключена (FastTest = true), чтобы не тормозить работу кода, поэтому эта ошибка сразу и не "вылезла"...
Причина обращения: