Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 618
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите пожалуйста, от чего такое может быть? :
Функции Fun_1() и Fun_2() аналогичные.
Подскажите пожалуйста, от чего такое может быть? :
Функции Fun_1() и Fun_2() аналогичные.
академично - функции не являются чистыми и изменяют глобальное состояние.
кратко - обе функции читают и записывают глобальную переменную или файл.
академично - функции не являются чистыми и изменяют глобальное состояние.
кратко - обе функции читают и записывают глобальную переменную или файл.
Да, каждая из них записывает файл. И что?
и не работают совместно :-)
PS. точнее сказать об источнике подземных стуков невозможно без исходников. Где-то там есть ошибка - правьте её
Для экономии места и улучшения восприятия - в одной функции. Всё равно не работает.
на будущее - если результат функции (хотя-бы сработала/нет) может понадобиться, то не делайте её void. Беглым взглядом сложно определить что есть критерий "сработки" - оно же void, как ни кинь всё хорошо.
на правах debugger:
у вас куча глобальных переменных Count_XXX, Range_XXX, которые вы перевычисляете ( плюс массивы dSSxx[]), на их основе решаете писать/нет в журнал и потом куда-то передаёте толи по ссылке, то-ли по значению..
очевидно что при повторном вызове что-то не так с их перевычислением - Count_dSS получается 0. Print может помочь разобраться или точки останова и watch.
на будущее - если результат функции (хотя-бы сработала/нет) может понадобиться, то не делайте её void. Беглым взглядом сложно определить что есть критерий "сработки" - оно же void, как ни кинь всё хорошо.
на правах debugger:
у вас куча глобальных переменных Count_XXX, Range_XXX, которые вы перевычисляете ( плюс массивы dSSxx[]), на их основе решаете писать/нет в журнал и потом куда-то передаёте толи по ссылке, то-ли по значению..
очевидно что при повторном вызове что-то не так с их перевычислением - Count_dSS получается 0. Print может помочь разобраться или точки останова и watch.
Упрощённый вариант:
// Есть два динамических массива А[][2] и B[][2]
// Ищем совпадения по первому измерению индекс "0"
// Массив А Массив В
// 31 25 19 66
// 44 15 62 30
// 62 47 54 71
// 31 94
// Хотим получить:
// Массив dSSd[][4] Массив dSSw[][4]
// 31 25 31 94 31 94 31 25
// 62 47 62 30 62 30 62 47
Какой повторный вызов Вы имеете ввиду?
Упрощённый вариант:
имею в виду функцию аналогичную первой (отличающуюся может быт деталями). У вас же такой был вопрос - почему эти функции по отдельности работают, а одна за другой (вне зависимости от очерёдности) нет. Точнее срабатывает и что-то там записывает только первая.
ну так вот - пох@#ено глобальное состояние, то есть при первом-же вызове первой из этих функций изменились или глоб.переменные или содержание массивов. Почему? вам наверное виднее, зачем это менять при записи в файл :-) Честно - прорываться через
и подобное, мне например тяжело и неохота. Возьмите уже отладчик или поставьте принтов на все подозрительные места. Вам понятна и логика наименований и есть какое-то представление как оно должно работать (не совпавшее правда с реальностью :-) )
PS/ из пояснения что на входе и что на выходе, вижу что вместо двух массивов dSSx[][4] довольно и одного dSS[][3] :-)
имею в виду функцию аналогичную первой (отличающуюся может быт деталями). У вас же такой был вопрос - почему эти функции по отдельности работают, а одна за другой (вне зависимости от очерёдности) нет. Точнее срабатывает и что-то там записывает только первая.
ну так вот - пох@#ено глобальное состояние, то есть при первом-же вызове первой из этих функций изменились или глоб.переменные или содержание массивов. Почему? вам наверное виднее, зачем это менять при записи в файл :-) Честно - прорываться через
и подобное, мне например тяжело и неохота. Возьмите уже отладчик или поставьте принтов на все подозрительные места. Вам понятна и логика наименований и есть какое-то представление как оно должно работать (не совпавшее правда с реальностью :-) )
PS/ из пояснения что на входе и что на выходе, вижу что вместо двух массивов dSSx[][4] довольно и одного dSS[][3] :-)