Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1068

 
burbur87:   ника не могу модифицировать ордер. плохо представляю математику модификации

Тут описана модификация - это глава учебника

 
всем доброго здравия. Подскажите как взять открытие дня со смещением на час. То есть не первый час брать, а второй за день???
 
nikelodeon:
всем доброго здравия. Подскажите как взять открытие дня со смещением на час. То есть не первый час брать, а второй за день???

Примерно так

if(iTime(_Symbol, PERIOD_H1, 1) == iTime(_Symbol, PERIOD_D1, 0))


Но не мешало-бы поставить проверку на новый-ли день, иначе все тики с 1:00 до 2:00 будут соответствовать условию.

 
Доброго времени суток. Помогите решить задачу. Нужно добавить несколько окон одного индикатора на график, в этом индикаторе есть ObjectCreate и вот тут возникает сложность, так как окон этого индикатора несколько и каждый со своими значениями, то индекс окна в ObjectCreate должен быть свой, создавать клоны индикатора с разными именами не хотелось бы. Если же установить, к примеру индекс окна равный 1 то все значки с других окон будут прорисовываться в окне с индексом 1, а не в своем.
 
У меня есть такой оператор iOpen(NULL,PERIOD_D1,1) он показывает открытие дня, а как сделать открытие второго часа этого дня....????
 
Добрый день, уважаемые! Подскажите, где ошибка в моих рассуждениях, и, если её нет, то какие исправления нужно внести в код:       При повторном включении компа после отключении электричества происходит последовательная загрузка всех строк кода и после закрывающей фигурной скобки ф-и  OnTick() идет считывание расположенных за ней пользовательских функций, и, прочитывая код ф-и  CloseAllBuy(), происходит ее исполнение, хоть она и не была вызвана из ф-и OnTick(). То есть, при загрузке эксперта происходит закрытие всех открытых позиций. Как этого избежать?
 
rapid_minus:
Добрый день, уважаемые! Подскажите, где ошибка в моих рассуждениях, и, если её нет, то какие исправления нужно внести в код:       При повторном включении компа после отключении электричества происходит последовательная загрузка всех строк кода и после закрывающей фигурной скобки ф-и  OnTick() идет считывание расположенных за ней пользовательских функций, и, прочитывая код ф-и  CloseAllBuy(), происходит ее исполнение, хоть она и не была вызвана из ф-и OnTick(). То есть, при загрузке эксперта происходит закрытие всех открытых позиций. Как этого избежать?

Попробуй воспользоватся глобальными переменными . Если хочешь чтобы советник запускался с того же состояния когда и был закрыт, то все флаги состоянию нужно хранить в глобальных переменных. Их значение не меняется и храниться уеву тучу дней. как то так....

 
Спасибо за быстрый ответ. Только из-за своей мкловской малограмотности я ничего не понял. Какими глобальными переменными нужно воспользоваться - на уровне эксперта или на уровне терминала? (Правда я и тут плаваю, увы).
 
nikelodeon:
У меня есть такой оператор iOpen(NULL,PERIOD_D1,1) он показывает открытие дня, а как сделать открытие второго часа этого дня....????

 iOpen() - это цена, все же правильней использовать iTime(), как выше уже подсказали. Ну и у разных западных компаний день может открыться в воскресенье вечером, за этим тоже как-то надо следить.

 В общем, изучайте что такое  iBarShift.

 
rapid_minus:
Добрый день, уважаемые! Подскажите, где ошибка в моих рассуждениях, и, если её нет, то какие исправления нужно внести в код:       При повторном включении компа после отключении электричества происходит последовательная загрузка всех строк кода и после закрывающей фигурной скобки ф-и  OnTick() идет считывание расположенных за ней пользовательских функций, и, прочитывая код ф-и  CloseAllBuy(), происходит ее исполнение, хоть она и не была вызвана из ф-и OnTick(). То есть, при загрузке эксперта происходит закрытие всех открытых позиций. Как этого избежать?

А как вы проверяли, что CloseAllBuy() ниоткуда не вызывается?  А может закрытие ещё где-то прописано?

Без кода никто не скажет, кроме автора.

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