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

 
GODZILLA:
ias:

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

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

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

Не нашел   в документации сочетание bool&. Sorry,нашел:  &-модификатор.Ставиться после типа данных.Указывает, что параметр передается по ссылке.
 

Правильно ли я понял:- в Exp_3.mq,Exp_4.mq4 в одно время может быть открыто 2 ордера(2 позиции)?

Что необходимо сделать что бы в одно время был открыт только один ордер, при условии использования двух алгоритмов эксперта?

Как модернизировать эксперты при исполнении ордеров как в WHC, где МТ с  исполнением (По Рынку) не позволяет одновременно при выставлении ордера указывать S/L или T/P. Делайть это необходимо в 2 шага. 1эй - выставление ордера. 2ой - установка S/L или T/P. ?

 
ias! Эти аксперты открывают по четыре ордера, с разными магик-номерами! Если во всех функциях для открывания, закрывания позиций и ордеров, в том числе и трейлинстопов поставить один магик-номер, то будет открыта максимум одна позиция. На сервере WHC я экспертов не гоняю, поэтому ничего не могу сказать, но ежели оно так, как вы его представляете, то вам придётся ещё самому дописывать в файл Lite_EXPERT1.mqh функции для модифицации стоплосса и тейкпрофита и обращаться к ним в эксперте!
 
Спасибо за статьи и ответы на вопросы, помогающие начинающему программисту, проникнуть в глубины программироваания.Многократно их перечитываю Да:

"...но ежели оно так, как вы его представляете"-из клиентского соглашения WHC:

"3.4.3.5. При открытии позиции по рынку Клиент не может выставить ордера Stop Loss и Take Profit в связи с

типом исполнения «Market Watch». Выставление ордеров типа Stop Loss и Take Profit происходит по средствам

модификации открытой позиции."

2.В Lite_EXPERT1.mqh в функциях:OpenSellOrder1,OpenSellLimitOrder1,OpenSellStopOrder1 используется условие: if (SPREAD == 0)
                    return(false);

Следует ли из этого, что при спреде=0,функции не будут работать? Для чего введено это условие? Если убрать это условие, то как это повлияет на работу функций? В WHC многие инструменты имеют нулевой спред. 

3.Почему выбран минимальный интервал времени   между двумя торговыми операциями  <11? Это установлено опытным путем? Как вы относитесь к мнению программиста KimIV:

"Между торговыми операциями я задержек не делаю. То есть, если мне нужно выставить два и более ордера, то эти торговые операции я совершаю без паузы между ними. А вот между торговыми попытками, которые приходится повторять, если при обращении к серверу возникает ошибка, делаю паузу согласно рекомендациям разработчиков МТ4

4.В экспертах задается параметр Timeframe... = 240;Какое значение имеет этот параметр?Исполнение советника на определенном таймфрейме? Только для тестирования и оптимитизации?

 
ias писал(а):
Спасибо за статьи и ответы на вопросы, помогающие начинающему программисту, проникнуть в глубины программироваания.Многократно их перечитываю Да:

"...но ежели оно так, как вы его представляете"-из клиентского соглашения WHC:

"3.4.3.5. При открытии позиции по рынку Клиент не может выставить ордера Stop Loss и Take Profit в связи с


типом исполнения «Market Watch». Выставление ордеров типа Stop Loss и Take Profit происходит по средствам

модификации открытой позиции."

2.В Lite_EXPERT1.mqh в функциях:OpenSellOrder1,OpenSellLimitOrder1,OpenSellStopOrder1 используется условие: if (SPREAD == 0)
return(false);

Следует ли из этого, что при спреде=0,функции не будут работать? Для чего введено это условие? Если убрать это условие, то как это повлияет на работу функций? В WHC многие инструменты имеют нулевой спред.

3.Почему выбран минимальный интервал времени между двумя торговыми операциями <11? Это установлено опытным путем? Как вы относитесь к мнению программиста KimIV:

"Между торговыми операциями я задержек не делаю. То есть, если мне нужно выставить два и более ордера, то эти торговые операции я совершаю без паузы между ними. А вот между торговыми попытками, которые приходится повторять, если при обращении к серверу возникает ошибка, делаю паузу согласно рекомендациям разработчиков МТ4

4.В экспертах задается параметр Timeframe... = 240;Какое значение имеет этот параметр?Исполнение советника на определенном таймфрейме? Только для тестирования и оптимитизации?


Для WHC я уже сделал пару функций OpenSellOrder2() и OpenBuyOrder2() с дифференцированной установкой стоплосса и тейкпрофита. Файлы в статьях я уже поменял, так что после замены версий статей на сайте можете ознакомиться. Насчёт спреда тут вот в чём дело: функция MarketInfo() иногда по ошибке возвращает нулевые значения, а проверка на ноль определяет эту ошибку. Просто как-то в требованиях к Чемпионату 2006 предлагалось все значения отMarketInfo() проверять на ноль. Я как-то не задумывался над тем, что спред по логике вещей может быть ещё и нулевым! Так что для спреда эту проверку на ноль можно и убрать, для других возвратов от MarketInfo() она всё равно сработает, когда надо! Насчёт паузы между торговыми операциями могу сказать, что раньше считалось делать такой, какую я выставил, теперь, когда появились рекомендации от MetaQuotes, для более быстрой работы логичнее это сделать как у программиста KimIV. А что касается параметров Timeframe_Up или Timeframe_Dn, так это просто таймфреймы. на которых работают алгоритмы эксперта независимо от того оптимизация это, тестирование или работа на счёте. Просто гораздо удобнее для каждого алгоритма иметь свой таймфрейм.
 

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

Я вот что-то не пойму... При нескольких (на схеме - девяти) проходах будут разные параметры оптимизации. По чём же их сравнивать между собой, какие в итоге выбирать ? Которые дают лучшие показатели при тестировании ? Но ведь для каждой оптимизации - свой один тест (на схеме). Тогда для каждой оптимизации (фиолетовые прямоугольники) нужен не один форвард-тест, а ещё несколько, например, три ? Тогда получится 9 оптимизаций и 27 тестов ? По чём тогда выбирать параметры ?

Причина обращения: