Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 413

 

Можно ли такой код прописывать?

(расстояние между линиями должно быть 10 пунктов)

int OnInit()
{

ObjectCreate("Средняя линия",OBJ_HLINE,0,0,Bid); 

ObjectCreate("Верхняя линия",OBJ_HLINE,0,0,Bid+0.0010); 

ObjectCreate("Нижняя линия",OBJ_HLINE,0,0,Bid-0.0010); 


return(INIT_SUCCEEDED);
}


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

Может быть такое, что бид меняется во время исполнения советника? Или значение Bid изменится только если RefreshRates запустить?


Может так будет правильнее?

int OnInit()
{

sredn=Bid;
verhn=sredn+0.0010;
nizhn=sredn-0.0010;


ObjectCreate("Средняя линия",OBJ_HLINE,0,0,sredn); 

ObjectCreate("Верхняя линия",OBJ_HLINE,0,0,verhn); 

ObjectCreate("Нижняя линия",OBJ_HLINE,0,0,nizhn); 



return(INIT_SUCCEEDED);
}
 
igrok333:

Можно ли такой код прописывать?

(расстояние между линиями должно быть 10 пунктов)


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


Так будет правильнее?

Bid не изменится, если нет посредине вызова RefreshRates,

НО ! использовать Bid в OnInit() не вполне корректно. во первых связи может не быть или рынок может быть закрыт, это раз; Сама по себе поддержка Bid в OnInit это фича, которая может и поменяться, это два :-) И наконец - цель OnInit() провести инициализацию, то есть проверить всё ли готово к дальнейшей работе и ответить ДА/НЕТ. Опираться на торговые функции или создавать там граф.объекты - не комильфо. Допустимо, но не правильно

 
Maxim Kuznetsov:

Bid не изменится, если нет посредине вызова RefreshRates,

НО ! использовать Bid в OnInit() не вполне корректно. во первых связи может не быть или рынок может быть закрыт, это раз; Сама по себе поддержка Bid в OnInit это фича, которая может и поменяться, это два :-) И наконец - цель OnInit() провести инициализацию, то есть проверить всё ли готово к дальнейшей работе и ответить ДА/НЕТ. Опираться на торговые функции или создавать там граф.объекты - не комильфо. Допустимо, но не правильно

да, действительно.

у меня потом сделка открывается по средней линии.

а от функции онинит до функции онтик один тик пройдет (потому что функция онтик ждет нового тика) и получится так что сделка откроется не на линии.

лучше все таки построение линий перенести вначало функции онтик

 

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

 
RomanRott:

Возможно ли сделать так, чтобы скрипт в тестере отрабатывался?

Нет и нет необходимости. Всё можно проверить на любом графике или в режиме отладки.
 
RomanRott:

Я имею в виду прописать какой то код в моем индюке/советнике, которой при включении сразу бы подключал какие то другие индикаторы
Что и как дописать?


Чтоб другой индикатор сам набрасывался, так нельзя!

Чтоб рядом с вашим индикатором рисовался другой, можно. Для этого можно использовать функцию iCustom и через неё подтягивать данные которые вам нужны.

 

Подскажите, в МТ4 создал три советника с разными "магиками" и стратегиями, объединил в один советник, по отдельности каждая стратегия работает, но когда включаешь три сразу, то третья стратегия модифицирует не свои "магики" ПОЧЕМУ??? всё в тестере.

И ещё, должен ставить один селлимит, а ставит равное количеству селлов. (если 2 села, то 2 селлимита ставит, если 5 селов, то ставит 5 селлимитов).

 
ZZuretc:

Подскажите, в МТ4 создал три советника с разными "магиками" и стратегиями, объединил в один советник, по отдельности каждая стратегия работает, но когда включаешь три сразу, то третья стратегия модифицирует не свои "магики" ПОЧЕМУ??? всё в тестере.

И ещё, должен ставить один селлимит, а ставит равное количеству селлов. (если 2 села, то 2 селлимита ставит, если 5 селов, то ставит 5 селлимитов).


Что сказать, неправильно определяет свои ордера,позиции по каждой из стратегий.

Нужно код смотреть.

 
ZZuretc:

Подскажите, в МТ4 создал три советника с разными "магиками" и стратегиями, объединил в один советник, по отдельности каждая стратегия работает, но когда включаешь три сразу, то третья стратегия модифицирует не свои "магики" ПОЧЕМУ??? всё в тестере.

И ещё, должен ставить один селлимит, а ставит равное количеству селлов. (если 2 села, то 2 селлимита ставит, если 5 селов, то ставит 5 селлимитов).

Когда объединяете 3 ---> 1 то надо следовать определенному правилу. У каждой стратегии есть голова, туловище, ноги. Головы берете все три. А туловище и ноги - выбираете лучшие из трех. Три туловища и шесть ног - это излишество...

 
ZZuretc:
Выкладываю файлы expert, libraries и include, проверьте на ошибки,  по началу работает без ошибок, но потом каждый раз может выдавать разные. (Для тестирования поставить тейк и лось 20)

Для начала:

переменные,видимость переменных

как объявляются,где? 

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