Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1422
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто знает почему советник в тестере работает прекрасно, выставляет заявки и т д , а на реальном счету , заявки не выставляются хотя робот активный
Нужно читать журнал, там может быть ответ
Подскажите пожалуйста , как из этого -
получить это -
Подскажите пожалуйста , как из этого -
получить это -
Явное приведение типа.
А еще можно целое (round) от не целого., но в дабл будет 18.0
Тогда продублирую вопрос.
выражение
if (izmb>b ||izmb<b || izms>s || izms<s)
тождественно этому:
if (izmb!=b || izms!=s)
А если Вы хотите что-то сохранить, то сделайте это в глобальной переменной.
Эта та, которая объявляется вне тела функции.
Всем доброго времени суток!
Вопрос по MQL4. Вот простой код
В нем создается двумерный массив и программа заполняет его значениями. В коде две интересующие меня функции ArrayFill(LoY,0,31,0.5555); и ArraySort(LoY,WHOLE_ARRAY,0,MODE_ASCEND); Судя по Справочнику обе работают с двумерными массивами. ArrayFill() работает строго с массивами заполненными по горизонтали , в Справочнике указывается , что она заполняет массивы значениями строго слева направо (а не сверху вниз или снизу вверх). ArraySort() сортирует двумерный массив по первому измерению. В Справочнике не говориться сортирует он горизонтально заполненные массивы или вертикально заполненные. Судя по исполнению моего кода ArraySort() сортирует только вертикально заполненные массивы. Кажется , что эти две функции не могут работать с одним и тем же массивом в одной программе.
ВОПРОС. Для меня важно что бы корректно работала функция ArraySort() Исходя из этого можно ли настроить ArraySort() на то что бы она сортировала горизонтально заполненные массивы, с которыми работает ArrayFill()? Или вместо нее мне может помочь функция сортировки из MQL5, которая работает на MQL4? Или есть функция , которая преобразует горизонтально заполненный массив со всеми его значениями в вертикальный. Одним словом как заставить мою программу сортировать массив по горизонтали
Примечание. Вместо ArrayFill() использовать цикл - мне не подходит.
Спасибо за помощь
Всем доброго времени суток!
Вопрос по MQL4. Вот простой код
В нем создается двумерный массив и программа заполняет его значениями. В коде две интересующие меня функции ArrayFill(LoY,0,31,0.5555); и ArraySort(LoY,WHOLE_ARRAY,0,MODE_ASCEND); Судя по Справочнику обе работают с двумерными массивами. ArrayFill() работает строго с массивами заполненными по горизонтали , в Справочнике указывается , что она заполняет массивы значениями строго слева направо (а не сверху вниз или снизу вверх). ArraySort() сортирует двумерный массив по первому измерению. В Справочнике не говориться сортирует он горизонтально заполненные массивы или вертикально заполненные. Судя по исполнению моего кода ArraySort() сортирует только вертикально заполненные массивы. Кажется , что эти две функции не могут работать с одним и тем же массивом в одной программе.
ВОПРОС. Для меня важно что бы корректно работала функция ArraySort() Исходя из этого можно ли настроить ArraySort() на то что бы она сортировала горизонтально заполненные массивы, с которыми работает ArrayFill()? Или вместо нее мне может помочь функция сортировки из MQL5, которая работает на MQL4? Или есть функция , которая преобразует горизонтально заполненный массив со всеми его значениями в вертикальный. Одним словом как заставить мою программу сортировать массив по горизонтали
Примечание. Вместо ArrayFill() использовать цикл - мне не подходит.
Спасибо за помощь
Вы обратили внимание на
примечание
Многомерный массив при обработке функцией ArrayFill() представляется одномерным, например, массив array[2][4] обрабатывается как array[8], поэтому при работе с этим массивом допустимо указать индекс начального элемента равным 5. Таким образом, вызов ArrayFill(array, 5, 2, 3.14) для массива array[2][4] заполнит значением 3.14 элементы массива array[1][1] и array[1][2].
Эта строка
заполнит массив ровно одну строку.
Что касается вертикальности\горизонтальности, это как вы будете держать голову глядя на запись. Посмотрите на таблицу Excell и всё станет понятно. Если столбец «А» заполнить значениями, то получится одномерный массив. Как он расположен? Правильно… горизонтально, потому, что я смотрю на это лёжа на диване………
Вы обратили внимание на
примечание
Эта строка
заполнит массив ровно одну строку.
Что касается вертикальности\горизонтальности, это как вы будете держать голову глядя на запись. Посмотрите на таблицу Excell и всё станет понятно. Если столбец «А» заполнить значениями, то получится одномерный массив. Как он расположен? Правильно… горизонтально, потому, что я смотрю на это лёжа на диване………
Спасибо за ответ. Понял все что Вы написали. Но не понял смысла написанного с точки зрения моей проблемы.
Под горизонтальным двумерным массивом в моем коде я имею в виду когда есть 2 строки под индексом 0 или 1 и столбцы под индексами от 0 до 30. Первое измерение обозначается как [0] [0], [0] [1], [0] [2], ...[0] [30] Второе измерение обозначается как [1] [0], [1] [1], [1] [2], ...[1] [30]
Под вертикальным двумерным массивом в моем коде я имею в виду когда есть 31 строка под индексами от 0 до 30 и 2 столбца под индексами 0 и 1. Первое измерение обозначается как [0] [0], [1 [0], [2] [0], ...[30] [0] Второе измерение обозначается как [0] [1], [1] [1], [2] [1], ...[30] [1]
Если исполнить мой код то массив заполнится по вертикали. И функция ArraySort() будет сортировать массив как ей и положено.
ВОПРОС Почему при этом функция ArrayFill() работать не будет? Ведь я попросил ее что бы она на двадцатой минуте заполнила первое измерение массива (31 элемент) одинаковыми значениями 0.5555.
Спасибо за помощь.
Я бы так попробывал
Спасибо за помощь. Попробую.
выражение
тождественно этому:
А если Вы хотите что-то сохранить, то сделайте это в глобальной переменной.
Эта та, которая объявляется вне тела функции.
Тут была такая задумка, чтобы условия по поиску входа советника проверялись не каждый тик, а только, если открывается или закрывается очередной ордер другим советником или в ручную (чтобы не было лишней нагрузки на процессор) . Поэтому и нужна проверка соответствия количества ордеров с каждым тиком.
Можно ли использовать статистическую переменную - static? Будет ли программа в таком виде рабочей?