[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1033

 
Понял))) Ушёл читать!))))
 
fergios:
Ну свой код выкидывать не буду, а возьму какой нить скаченный!Который так же не работает!

Вот рабочий, проверил.

В некоторых дц сначала открываем сделку только потом модификация (выставление стопов тейков).

 
costy_:

Вот рабочий, проверил.

В некоторых дц сначала открываем сделку только потом модификация (выставление стопов тейков).


Библиотеку забыл добавить

 
fergios: Ну свой код выкидывать не буду, а возьму какой нить скаченный!Который так же не работает!
а шо.. этот (немного модифицированный) использует в Чемпионате Ттаузо - занимает правда всего 5 место... но это изза отсутствия модификации лотов...
 
Vinin:


Библиотеку забыл добавить

Упс, без нее.
Файлы:
botp1ma.mq4  8 kb
 
В любом случае спасибо ребята, если я не смог понять, что он рабочий, то читать надо вдвойне)
 
а ObjectsTotal() это объекты всех графиков или текущего?
 
eddy:
а ObjectsTotal() это объекты всех графиков или текущего?

Текущего.

ObjectsTotal Возвращает общее число объектов указанного типа на графике.

Озакамливаемся https://book.mql4.com/ru/functions/objects https://docs.mql4.com/ru/objects/ObjectsTotal

Язык мкюл4 привязан к одному окну, текущему.

 
Roman.:


Данный цикл служит для удержания выполнения ф-ии модификации ордера (если с первой попытки модифицировать ордер в реал рынке не удалось (такое бывает) и возможная ошибка не является критической: например № 136 - нет цен - ждем новый тик ), т.е. данный цикл удерживает управление у себя до тех пор, пока предварительно выбранный ордер не будет модифицирован или не будет получена критическая ошибка - все это может происходить в течение нескольких тиков, а то и секунд (десятков секунд), другими словами все остальное в эксперте не работает, т.е. если в это время сработал торговый критерий на открытие ордера, то ордер не будет открыт, т.к. управление удерживается ф-ей модификации всех выбранных ордеров, пока она не завершится, после чего, если условие на открытие очередного ордера в эксперте все еще выполняется, то будет предпринята попытка открыть очередной ордер на следующем тике - это так к примеру... "Если торговая операция завершилась успешно, то оператор break в блоке 6-7 заканчивает исполнение цикла while, что приводит к окончанию текущей итерации цикла перебора ордеров for (и на следующей итерации начинается обработка очередного ордера) - все это время ф-ия удерживает управление у себя, пока не будет модифи последний ордер, подлежащий модифи . Если же торговая операция закончилась неудачей, то производится обработка ошибок. В случае, когда ошибка оказывается не критической, попытка повторить торговую операцию повторяется. Если же ошибка оценивается как критическая, то управление передаётся за пределы цикла модификации для обработки следующего ордера (в цикле for) - после чего выполняются другие ф-ии эксперта.

Думаю, объяснил коряво, зато понятно. :-)))


Спасибо, это проясняет что там происходит.
 
costy_:

В скриптах и советниках можно держать цикл долгое время не завершенним, не боясь тормозить интерфейс. поток.

Т.е. в индикаторе while (true) наглухо подвиснет, т.к. Sleep не работает.

Посмотрите скрипт ниже станет понятнее


спасибо!