![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Любой программист знает, что все данные изначально объявляются, как FALSE
Вот такой подход называется "надеяться на дядю" - то есть Вы в таком случае надеетесь, что КТО ТО за Вас проинициализирует переменную. Это неправильный подход.
Это уже детали, я ошибку заметил, быстро скриптик написал, начал перепроверять, он что творит, записывает данные, все нормально, допустим данные 3-го индекса записывает как положено, затем, при записи 5-го индекса, он вместо цены 3-го индекса втыкает рандомное число, я выходил через break, записывал не прерывая цикл, записывая одну и ту же цену и результат всегда один, прошлая запись перезаписывается на рандом
Мне сложно понять что хотелось-бы получить ввиду того, что по причине лени своей я не глубоко вникаю в задачу. Видимо что-то не так с алгоритмом. Тем не менее, ведь даже обнуляя массив при его объявлении получишь замену содержимого массива, только уже на 0.0
Чтобы не инициализировать массив при каждом тике, его просто надо объявить статическим.
Опять таки: вырванный кусок кода. Если это функция - то нужно прописать передачу в неё переменных my_symbol, bid и ask. Также не ясно, что храниться в переменных bid и ask ДО вызова Вашей функции.
В общем преобразовал код:
Вот такой подход называется "надеяться на дядю" - то есть Вы в таком случае надеетесь, что КТО ТО за Вас проинициализирует переменную. Это неправильный подход.
Что вы городите, какой символ, какой аск? Любой символ и аск получаемый терминалом. Вы с ума сошли? Что может хранится в аск и бид если они вызваны MqlTick. Вы где-то видите void по пути от MqlTick до цикла?
Попридержите коней. Не гоже так на выходных ругаться. Ещё рекомендую изучить, что значит передаваемые параметры:
и понять, почему у перед переменными bid и ask стоит знак &.
Прогоните код в тестере. Посмотрите, будут ли приноваться ошибки.
Читайте внимательно, цена перезаписывается после того, как по циклу записываются уже следующие данные, это конкретный глюк MT, часть данных остается, а часть перезаписывается на рандомные числа, скопируйте код, если лень писать и в выражениях распишите массив
Пожалуйста, добавьте В МОЙ код свою запись в массив. Потом посмотрим, найдём и исправим. Всё по-шагам. Спешить не куда.
Читайте внимательно, цена перезаписывается после того, как по циклу записываются уже следующие данные, это конкретный глюк MT, часть данных остается, а часть перезаписывается на рандомные числа, скопируйте код, если лень писать и в выражениях распишите массив
Попридержите коней. Не гоже так на выходных ругаться. Ещё рекомендую изучить, что значит передаваемые параметры:
и понять, почему у перед переменными bid и ask стоит знак &.
Прогоните код в тестере. Посмотрите, будут ли приноваться ошибки.
Копируйте, убедитесь. Вообще, терминал ужасно написан, любая прога при пуске все числа выдает изначально, как FALSE, т.е. 0 и только МТ втыкает рандомные числа, что-зачем-почему, непонятно и главное - неправильно
Сначала научитесь нормальную программу написать, а потом определите "терминал ужасно написан" или нет.
Не надо так опрометчиво утверждать о глюках мт5. Ваша задача решается "на раз".