Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
число элементов задается константой
если число 'элементов заранее не известно, то пользуйтесь ArrayResize.
Это азы c++
Если так, то не помогло.
Здравствуйте.
Подскажите, пожалуйста, как настроить выделенную область в MetaTrader 5, чтобы можно было отслеживать текущие ордера?
См. прикрепленный скрин.
Заранее спасибо.
Здравствуйте.
Подскажите, пожалуйста, как настроить выделенную область в MetaTrader 5, чтобы можно было отслеживать текущие ордера?
См. прикрепленный скрин.
Заранее спасибо.
Окно "Инструменты".Вкладка "Торговля".
Вопрос к разработчикам - переворот позиции изменяет время открытия позиции? Если нет, то как получить время переворота позиции?
Получается что переворачиваться можно только в два запроса - закрыть действующую позицию и открыть новую в противоположном направлении, тогда время открытия позиции будет равно времени переворота. А если переворачиваться одним запросом, то получить время переворота с помощью ф-ции PositionGetInteger не получится?...
Взял простейший пример штатного индикатора - Fractals: https://www.mql5.com/ru/code/viewcode/30/5540/fractals.mq5. Там есть такие стоки кода:
Эти буфера динамические типа double.
Далее появилась необходимость хранить не только ценовые данные - High и Low, - но и уточнённые HighTime и LowTime экстремумных баров (как известно, все ТФ, кроме M1, имеют приблизительные значения времени, поэтому пришлось для себя вычислять точное время, чтобы потом складывать в буферы времени и пользоваться в дальнейшем). Капитан Очевидность подсказывает, что необходимо объявить соответствующие массивы типа datetime, затем заполнить аналогично:
и в else:
ExtUpperTimeBuffer[i]=EMPTY_VALUE;
ExtLowerTimeBuffer[i]=EMPTY_VALUE;
но перед этим отправляемся в справку по datetime и обнаруживаем:
"Константы даты и времени..." и "...могут быть представлены в виде литеральной строки". К тому же увязать массивы данного типа с индикаторными буферами возможности не имеем (да и не нужно?), SetIndexBuffer к массивам этого типа данных применять по известным причинам не можем. И не увязываем. Долго рефлексируем, делаем вывод, что ничего вроде бы страшного. Компилируем получившийся код. Получаем предупреждение: "truncation of constant value" в отношении строк в else с =EMPTY_VALUE (печально удивляемся) и ошибку в Эксперт-отчёте терминала: "Array out of range" в отношении тех же строк (в конец огорчаемся). По-видимому, в тип datetime EMPTY_VALUE помещаться не хочет, размер такого массива остаётся нулевым. Меняем EMPTY_VALUE на 0, ошибка исчезает, однако размер массива по-прежнему остаётся нулевым. Странно ещё и другое: размер буферов ExtUpperBuffer и ExtLowerBuffer ненулевой, значит, они всё-таки заполняются, но фракталы не появляются. С чего это вдруг?
Основное, что меня интересует: возможно ли напрямую заполнять временнЫе буферы аналогично ценовым (не прибегая к CopyTime и прочим штатным функциям копирования в массив) и как, а если нет, то почему? Неужели для этой цели придётся заводить другую пару буферов под хранение секунд с начала 1970 года, но с типом не datetime, а каким-нибудь double или long, например, а в необходимые моменты конвертировать через TimeToString в формат времени как литеральной строки?
P.S.: кому лень воспроизводить у себя дополненный код Fractals.mq5, просто подскажите, как вы храните рассчитанные специфические временнЫе данные (без вызова хэндлов встроенных индикаторов и работы с ними)?
Спасибо.