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

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ни малейшего желания гуглить и читать у меня нет, вот открыл файл D:\1.txt
как лучше сделать в индикаторе, запустить таймер 1сек или в OnCalculate сравнивать время (секунды)
<1сек, выход
или есть другие рабочие варианты?
нужно обновлять HistorySelect за месяц + работа с объектами
или в OnCalculate сравнивать время (секунды)
<1сек, выход
секунды маловато будет, дело в datetime - он меньше секунды не может быть
сравнивайте хотя бы милисекунды
как лучше сделать в индикаторе, запустить таймер 1сек или в OnCalculate сравнивать время (секунды)
по моему не принципиально где делать, единственное OnCalculate привязан к тикам - не будет тика, соответственно не будет вызова OnCalculate
нужно обновлять HistorySelect за месяц + работа с объектами
HistorySelect быстрый, а вот заходите обекты перемещать или создавать тут могут быть лаги, если обьектов под 1000 +
и будете каждую секунду эти обьекты модифицировать
в общем пишите код, там по ходу сразу и всплывут подводные камни )))
секунды достаточно мне будет и реже пока тик не пришел
мне для отображения сделок на графике + результат сделки над барами, и некоторая полустатическая инфа типа тренда глобального
может price смотреть изменение из
или тайм из второго варианта
Подскажите пожалуйста!
Каким образом возможно произвести сравнение текущего символа графика с нужным мне?
Мне нужно, чтобы программа понимала, что нужно открыть ордер по паре AUD/USD и она его открывает(это работает как надо), но при этом она пытается открыть этот ордер и по другим открытым графикам(робот запущен на нескольких валютных парах), что возвращается ошибкой цен соответственно для других валютных пар, где запущен советник. Вот мне надо сделать сравнение, если Symbol() == равен тому символу по которому необходимо открыть ордер, то открываем, а если нет, то выходим. Что-то я нигде не наковырял как переменной задать имя символа из терминала и произвести сравнение.
Подскажите пожалуйста!
Каким образом возможно произвести сравнение текущего символа графика с нужным мне?
Мне нужно, чтобы программа понимала, что нужно открыть ордер по паре AUD/USD и она его открывает(это работает как надо), но при этом она пытается открыть этот ордер и по другим открытым графикам(робот запущен на нескольких валютных парах), что возвращается ошибкой цен соответственно для других валютных пар, где запущен советник. Вот мне надо сделать сравнение, если Symbol() == равен тому символу по которому необходимо открыть ордер, то открываем, а если нет, то выходим. Что-то я нигде не наковырял как переменной задать имя символа из терминала и произвести сравнение.
Там в конце есть пример получения правильных цен.
Спасибо, но мне правильные цены не нужны. С ценами все хорошо. Мне нужно чтобы советник не открывал ордера, если валютная пара по которой происходит открытие ордера не совпадает с текущим открытым графиком к которому присоединен робот. Возможно получиться реализовать путем открытия нового графика с таймфреймом, в нем открыть ордер нужный и затем закрыть этот график, щас попробую
не, так не канает.
У меня программа обращается к текущему графику, присваивает ей имя текущего инструмента и запечатывает её в переменную, потом сравнивает значение этой переменной с текущим символом на графике. Собственно оно само с собой сравнивается))) надо как-то преобразовать Sympol() в любое значение с которым можно сравнить любую другую переменную. Например:
string AUDUSD;
(Symbol() == AUDUSD)
то парам пам пам .. у меня как-то получилось, пока радовался и менял все как надо - уже ничего не работает))
не, так не канает.
У меня программа обращается к текущему графику, присваивает ей имя текущего инструмента и запечатывает её в переменную, потом сравнивает значение этой переменной с текущим символом на графике. Собственно оно само с собой сравнивается))) надо как-то преобразовать Sympol() в любое значение с которым можно сравнить любую другую переменную. Например:
string AUDUSD;
(Symbol() == AUDUSD)
то парам пам пам .. у меня как-то получилось, пока радовался и менял все как надо - уже ничего не работает))
string AUDUSD = "AUDUSD";
Хотябы так.
не, так не канает.
У меня программа обращается к текущему графику, присваивает ей имя текущего инструмента и запечатывает её в переменную, потом сравнивает значение этой переменной с текущим символом на графике. Собственно оно само с собой сравнивается))) надо как-то преобразовать Sympol() в любое значение с которым можно сравнить любую другую переменную. Например:
string AUDUSD;
(Symbol() == AUDUSD)
то парам пам пам .. у меня как-то получилось, пока радовался и менял все как надо - уже ничего не работает))
Советник, скрипт, индикатор не обращаются, а работают в текущем окне. И глобальные переменные разных окон / чартов не пересекаются. Поэтому должно работать)
string AUDUSD; // Это текстовая переменная, к тому же изначально пустая т.е. равная ""
(Symbol() == AUDUSD) // эта строка к переменной AUDUSD отношения не имеет.
Но критерии открытия ордеров не должны быть одинаковыми для разных инструментов / окон. Если они будут одинаковыми, то действительно во всех окнах откроется.