Торговые системы: Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота (Продолжение) - страница 2

 
veles-m писал(а):
DenisL:

Здравствуйте.

Скачал советники Exp_4.5 и все остальные прикрепленные файлы. При компелирование советника вылезает ошибка на строке:

 # include < Lite_Expert_1.mgh>. Может кто нибудь подскажет ,как исправить ?


 
veles-m писал(а):  при  компилировании  возникает  ошибка  ........  #include <Lite_Expert_1.mgh>   хотя  данный  файл  положен  в  папку  советник  \  include
Как вариант. Подобные вещи у меня возникали, когда я по глупости отдельно откомпилировал файл .mgh. При этом его расширение изменилось на .mq4, из-за чего возникала ошибка. Проверьте коммандером, а не через Метаэдитор наличие файла  Lite_Expert_1.mgh в папке  \include.
 
granit77:
veles-m писал(а):  при  компилировании  возникает  ошибка  ........  #include <Lite_Expert_1.mgh>   хотя  данный  файл  положен  в  папку  советник  \  include
Как вариант. Подобные вещи у меня возникали, когда я по глупости отдельно откомпилировал файл .mgh. При этом его расширение изменилось на .mq4, из-за чего возникала ошибка. Проверьте коммандером, а не через Метаэдитор наличие файла  Lite_Expert_1.mgh в папке  \include.


Понимаю  что  глупый  и  неопытный...........сделал  так  как  Вы  и  сказали  теперь  выдает  замечания:

Function "DeleteOrder1" is not referenced  and   will be removed  from exp-file 

и таких пять замечаний на  все  виды  ордеров............

спасибо  за  внимание

 
veles-m писал(а):
granit77:
veles-m писал(а):  при  компилировании  возникает  ошибка  ........  #include <Lite_Expert_1.mgh>   хотя  данный  файл  положен  в  папку  советник  \  include
Как вариант. Подобные вещи у меня возникали, когда я по глупости отдельно откомпилировал файл .mgh. При этом его расширение изменилось на .mq4, из-за чего возникала ошибка. Проверьте коммандером, а не через Метаэдитор наличие файла  Lite_Expert_1.mgh в папке  \include.


Понимаю  что  глупый  и  неопытный...........сделал  так  как  Вы  и  сказали  теперь  выдает  замечания:

Function "DeleteOrder1" is not referenced  and   will be removed  from exp-file 

и таких пять замечаний на  все  виды  ордеров............

спасибо  за  внимание

не заморочивайтесь - это всего лишь означает, что вы не использовали эти функции в основном коде, не обращались к ним..... а МТ просто говорит, что их можно удалить за ненадобностью.. :)
 
rider:
из статьи:
"Я думаю, что данная диаграмма вполне понятна. Например, берём в качестве периода анализа 2007 год. Для первой оптимизации период оптимизации будет с 01.01.2007 по 31.03.2007, а период тестирования с 01.04.2007 по 31.05.2007. После тестирования и фиксации его результатов сдвигаем периоды оптимизации и тестирования на один месяц вперёд: период оптимизации будет с 01.02.2007 по 30.04.2007, а период тестирования с 01.05.2007 по 30.06.2007. И так далее...."

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

Я использую оптимизацию по году, затем тест на 8-10 месяцев вперед, если был в хорошем плюсе и в конце не съехал глубоко в минус или так в плюсе и остался, то дальше шаги по два месяца с оптимизацией от полученных прибыльных параметров. Отсев жестокий получается. А поначалу, как по писаному, так и тестил на демке :(
Честно говоря, пока не в восторге от результатов. А может просто систему хорошую еще не сваял :)

Так может исследовал кто-нибудь. Какой период оптимален для оптимизации и какие параметры использовать?

ну вот и с кодировкой всё наладилось :)

 

Не в пику автору, а как альтернатива. Может быть кому-нибудь это понравится больше.

Функции, ведь, можно и не выносить в отдельный файл, а разместить в коде каждого  советника, где-нить в конце... размер кода увеличится, но незначительно, а компенсация порядочная:

- переменные можно не передавать, а объявив  перед init, в одном месте (приветствуется в программировании), обеспечить их видимость по всему коду;

- нет проблем с возвратом из функций значений НЕСКОЛЬКИХ переменных - их и возвращать-то не надо будет, так "видны";

- меньше заморочек с компиляцией-некомпиляцией, а компилить все равно нужно, хотя бы, чтобы ошибки в коде отловить;

- код работать будет быстрее - это существенно, особенно на оптимизации

ну и по мелочи еще много чего набегает.

 
veles-m писал(а):

...сделал  так  как  Вы  и  сказали  теперь  выдает  замечания:

Function "DeleteOrder1" is not referenced  and   will be removed  from exp-file 

и таких пять замечаний на  все  виды  ордеров...

Если я правильно понял, проблема с файлом Lite_Expert_1.mgh снята. Вы правильно отметили, что компилятор выдает замечания (предупреждения), а не ошибки. Текст означает только то, что функция не используется в теле эксперта (т.е. ни разу не вызывается) и не будет учтена при компиляции и создании исполняемого файла ex4. Это дело автора, обычно некоторые функции включены в эксперт "на всякий случай". Может быть, они будут использованы при модернизации эксперта. В любом случае такие предупреждения не являются ошибками и не влияют на работу эксперта.
 

Что обозначает bool& в Lite_EXPERT1.mqh на ст.14, и далее 7 раз? -Ошибка? Влияеет ли это на работу функций?

+==================================================================+
//| OpenBuyOrder1()                                                  |
//+==================================================================+
bool OpenBuyOrder1
        (bool& BUY_Signal, int MagicNumber,
                double Money_Management, int STOPLOSS, int TAKEPROFIT)

 
granit77:
veles-m писал(а):

...сделал  так  как  Вы  и  сказали  теперь  выдает  замечания:

Function "DeleteOrder1" is not referenced  and   will be removed  from exp-file 

и таких пять замечаний на  все  виды  ордеров...

Если я правильно понял, проблема с файлом Lite_Expert_1.mgh снята. Вы правильно отметили, что компилятор выдает замечания (предупреждения), а не ошибки. Текст означает только то, что функция не используется в теле эксперта (т.е. ни разу не вызывается) и не будет учтена при компиляции и создании исполняемого файла ex4. Это дело автора, обычно некоторые функции включены в эксперт "на всякий случай". Может быть, они будут использованы при модернизации эксперта. В любом случае такие предупреждения не являются ошибками и не влияют на работу эксперта.
 
ias:

Что обозначает bool& в Lite_EXPERT1.mqh на ст.14, и далее 7 раз? -Ошибка? Влияеет ли это на работу функций?

+==================================================================+
//| OpenBuyOrder1()                                                  |
//+==================================================================+
bool OpenBuyOrder1
        (bool& BUY_Signal, int MagicNumber,
                double Money_Management, int STOPLOSS, int TAKEPROFIT)

Это сделано для обнуления внешней переменной сразу после того, как был выставлен ордер! В противном случае возможна ситуация, когда открывается сделка, на этом же баре она закрывется по стоплоссу и, так как внешняя переменная не обнулена, то ставится очередной ордер, что при недурном проливе может неслабо разорить!
Причина обращения: