Глюк в MetaEditorMT5 - страница 2

 
ovak77:

Любой программист знает, что все данные изначально объявляются, как FALSE


Вот такой подход называется "надеяться на дядю" - то есть Вы в таком случае надеетесь, что КТО ТО за Вас проинициализирует переменную. Это неправильный подход.

 
ovak77:

Это уже детали, я ошибку заметил, быстро скриптик написал, начал перепроверять, он что творит, записывает данные, все нормально, допустим данные 3-го индекса записывает как положено, затем, при записи 5-го индекса, он вместо цены 3-го индекса втыкает рандомное число, я выходил через break, записывал не прерывая цикл, записывая одну и ту же цену и результат всегда один, прошлая запись перезаписывается на рандом

Мне сложно понять что хотелось-бы получить ввиду того, что по причине лени своей я не глубоко вникаю в задачу. Видимо что-то не так с алгоритмом. Тем не менее, ведь даже обнуляя массив при его объявлении получишь замену содержимого массива, только уже на 0.0

Чтобы не инициализировать массив при каждом тике, его просто надо объявить статическим.

static double arr_bid[10]={0.0};
 
Vladimir Karputov:

Опять таки: вырванный кусок кода. Если это функция - то нужно прописать передачу в неё переменных my_symbol, bid и ask. Также не ясно, что храниться в переменных bid и ask ДО вызова Вашей функции.

В общем преобразовал код:

Что вы городите, какой символ, какой аск? Любой символ и аск получаемый терминалом. Вы с ума сошли? Что может хранится в аск и бид если они вызваны MqlTick. Вы где-то видите void по пути от MqlTick до цикла?
 
Vladimir Karputov:

Вот такой подход называется "надеяться на дядю" - то есть Вы в таком случае надеетесь, что КТО ТО за Вас проинициализирует переменную. Это неправильный подход.

Читайте внимательно, цена перезаписывается после того, как по циклу записываются уже следующие данные, это конкретный глюк MT, часть данных остается, а часть перезаписывается на рандомные числа, скопируйте код, если лень писать и в выражениях распишите массив
 
ovak77:
Что вы городите, какой символ, какой аск? Любой символ и аск получаемый терминалом. Вы с ума сошли? Что может хранится в аск и бид если они вызваны MqlTick. Вы где-то видите void по пути от MqlTick до цикла?

Попридержите коней. Не гоже так на выходных ругаться. Ещё рекомендую изучить, что значит передаваемые параметры:

bool TestFunction(const string my_symbol,double &bid,double &ask)

и понять, почему у перед переменными bid и ask стоит знак &.


Прогоните код в тестере. Посмотрите, будут ли приноваться ошибки.

 
ovak77:
Читайте внимательно, цена перезаписывается после того, как по циклу записываются уже следующие данные, это конкретный глюк MT, часть данных остается, а часть перезаписывается на рандомные числа, скопируйте код, если лень писать и в выражениях распишите массив

Пожалуйста, добавьте В МОЙ код свою запись в массив. Потом посмотрим, найдём и исправим. Всё по-шагам. Спешить не куда.

 
ovak77:
Читайте внимательно, цена перезаписывается после того, как по циклу записываются уже следующие данные, это конкретный глюк MT, часть данных остается, а часть перезаписывается на рандомные числа, скопируйте код, если лень писать и в выражениях распишите массив
Не надо так опрометчиво утверждать о глюках мт5. Ваша задача решается "на раз".
 
Vladimir Karputov:

Попридержите коней. Не гоже так на выходных ругаться. Ещё рекомендую изучить, что значит передаваемые параметры:

и понять, почему у перед переменными bid и ask стоит знак &.


Прогоните код в тестере. Посмотрите, будут ли приноваться ошибки.

Вы мне можете объяснить, зачем вы сюда функции воткнули? При каких они делах?
 
ovak77:

Копируйте, убедитесь. Вообще, терминал ужасно написан, любая прога при пуске все числа выдает изначально, как FALSE, т.е. 0 и только МТ втыкает рандомные числа, что-зачем-почему, непонятно и главное - неправильно


Сначала научитесь нормальную программу написать, а потом определите "терминал ужасно написан" или нет.

 
Alexey Viktorov:
Не надо так опрометчиво утверждать о глюках мт5. Ваша задача решается "на раз".
Я уже решил, для массивов написал проверки, просто людей предупредить, чтобы завтра депозиты не посливали. Хотя, есть подозрение, что брокер мог код подкорректировать, но опять же сомнительно, что у брокера есть доступ к исходному коду, тогда он мог бы подставить разрабов. В общем, ошибку заметил, проверки дописал
#s3gt_translate_tooltip_mini { display: none !important; }