Каким образом возможно произвести сравнение текущего символа графика с нужным мне?
case1 : // кейс для открытия Buy по AUD/USDif(Symbol() == (как обозначить нужный символ для сравнения?)) // если символ текущего графика AUD/USD открываем сделку
{
RefreshRates();
Open_Order = OrderSend("AUDUSD",OP_BUY,Lot(),Ask,0,0,0); // Открытие ордера//----------------------------------------------------------------------------------------------------
В тоже время советник запущен на другом графике и пытается произвести открытие ордера, цены не совпадают и соответственно вылетает ошибка - неверные цены
case2 : // кейс для открытия Bay по GBP/USD if(Symbol() == (как обозначить нужный символ для сравнения?))
// если символ текущего графика не AUDUSD то выходим
{
RefreshRates();
Open_Order = OrderSend("GBPUSD",OP_SELL,Lot(),Bid,0,0,0); // Открытие ордера
Т.е. надо ему дать понять, что тот или иной кейс принадлежит тому или другому графику, но чтот я пока не придумал как
Мне нужно, чтобы программа понимала, что нужно открыть ордер по паре AUD/USD и она его открывает(это работает как надо), но при этом она пытается открыть этот ордер и по другим открытым графикам(робот запущен на нескольких валютных парах), что возвращается ошибкой цен соответственно для других валютных пар, где запущен советник. Вот мне надо сделать сравнение, если Symbol() == равен тому символу по которому необходимо открыть ордер, то открываем, а если нет, то выходим. Что-то я нигде не наковырял как переменной задать имя символа из терминала и произвести сравнение.
Каким образом возможно произвести сравнение текущего символа графика с нужным мне?
Мне нужно, чтобы программа понимала, что нужно открыть ордер по паре AUD/USD и она его открывает(это работает как надо), но при этом она пытается открыть этот ордер и по другим открытым графикам(робот запущен на нескольких валютных парах), что возвращается ошибкой цен соответственно для других валютных пар, где запущен советник. Вот мне надо сделать сравнение, если Symbol() == равен тому символу по которому необходимо открыть ордер, то открываем, а если нет, то выходим. Что-то я нигде не наковырял как переменной задать имя символа из терминала и произвести сравнение.
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. Если функция используется для получения информации о последнем тике, то лучше использовать SymbolInfoTick(). Вполне возможно, что по данному символу с...
Спасибо, но мне правильные цены не нужны. С ценами все хорошо. Мне нужно чтобы советник не открывал ордера, если валютная пара по которой происходит открытие ордера не совпадает с текущим открытым графиком к которому присоединен робот. Возможно получиться реализовать путем открытия нового графика с таймфреймом, в нем открыть ордер нужный и затем закрыть этот график, щас попробую
У меня программа обращается к текущему графику, присваивает ей имя текущего инструмента и запечатывает её в переменную, потом сравнивает значение этой переменной с текущим символом на графике. Собственно оно само с собой сравнивается))) надо как-то преобразовать Sympol() в любое значение с которым можно сравнить любую другую переменную. Например:
У меня программа обращается к текущему графику, присваивает ей имя текущего инструмента и запечатывает её в переменную, потом сравнивает значение этой переменной с текущим символом на графике. Собственно оно само с собой сравнивается))) надо как-то преобразовать Sympol() в любое значение с которым можно сравнить любую другую переменную. Например:
string AUDUSD;
(Symbol() == AUDUSD)
то парам пам пам .. у меня как-то получилось, пока радовался и менял все как надо - уже ничего не работает))
У меня программа обращается к текущему графику, присваивает ей имя текущего инструмента и запечатывает её в переменную, потом сравнивает значение этой переменной с текущим символом на графике. Собственно оно само с собой сравнивается))) надо как-то преобразовать Sympol() в любое значение с которым можно сравнить любую другую переменную. Например:
string AUDUSD;
(Symbol() == AUDUSD)
то парам пам пам .. у меня как-то получилось, пока радовался и менял все как надо - уже ничего не работает))
Советник, скрипт, индикатор не обращаются, а работают в текущем окне. И глобальные переменные разных окон / чартов не пересекаются. Поэтому должно работать)
string AUDUSD; // Это текстовая переменная, к тому же изначально пустая т.е. равная ""
(Symbol() == AUDUSD) // эта строка к переменной AUDUSD отношения не имеет.
Symbol
Возвращает имя символа текущего графика.
stringSymbol();
Возвращаемое значение
Значение системной переменной _Symbol, в которой хранится имя символа текущего графика.
Но критерии открытия ордеров не должны быть одинаковыми для разных инструментов / окон. Если они будут одинаковыми, то действительно во всех окнах откроется.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
ни малейшего желания гуглить и читать у меня нет, вот открыл файл 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 отношения не имеет.
Но критерии открытия ордеров не должны быть одинаковыми для разных инструментов / окон. Если они будут одинаковыми, то действительно во всех окнах откроется.