void vTablLevel(double& tsarr[][4])
Сразу бросилось в глаза с бодуна....)
Сразу бросилось в глаза с бодуна....)
void vTablLevel(double& tsar)без всяких [ ]
Видимо точно с бодуна :) Все в порядке, по ссылке передан адрес массива, это соответствует соглашениям стандарта MQL4.
Так вы в формальных параметрах функции забили конкретный элемент массива. Неправильно это...
Вообще это не конкретный элемент массива а размерность по второму измерению и многомерные массивы могут передаваться так без ошибок. Но в данной теме речь не об этом.
Кстати администраторы форума бдят, даже название темы изменили, а ведь ошибка именно в функции MQL4. Если посмотреть вывод, то видно смещение баров и соответственно несогласованность их в последствии.
А что Вам мешает просто объявить массив на глобальном уровне и незаморачиваться с передачей ссылок? Тем более в коде я вижу ArrayResize. По моему нету никакой ошибки. Нафика Вы этих VOIDов накрутили?
Если Вы смотрите код, то обратите внимание, что ArrayResize используется для массива который в файл записывает несовпадения и ни коим образом ArrayResize не влияет на работу ArrayCopyRates и вообще передаваемой тайм-серии. Насчет VOIDов - читайте первые строчки первого поста, тема не для объяснения для чего это нужно!!!
Я ведь и пишу как раз о том, что при обращении к тайм-серии обнаруживается несоответствие баров. Скорее всего нарушена структура самой тайм-серии. Вы вывод файла посмотрите, можете в цикл добавить больше баров к примеру 65000 (как по умолчанию в терминале), я 4000 сделал для скорости обработки и показа до первой ошибки. Кстати в часовом интервале на М15, параметру тайм соответствует параметр Open, они на одном временном периоде находятся и соответственно М15 открывается в одно время с Н1. Если функцию перевода в Н1 переделать под полные параметры OCHLV и Time, то смещение баров у Time Open и Time Close произойдет одинаково.
Barbarian:
Вы вывод файла посмотрите
а самому посмотреть не судьба? порядок данных таймсерии проверил?
Вопросом на вопрос, как будто сейчас начнут камнями закидывать :) Я вывод файла смотрел иначе не писал бы тут. Если видите мою ошибку то напишите.
А ведь прав товарищ,
int ArrayCopyRates( void dest_array[], string symbol=NULL, int timeframe=0)Это из документации. Я просто в такие дебри не залезал)))
Вопросом на вопрос, как будто сейчас начнут камнями закидывать :)
и таки начнут.
Я вывод файла смотрел
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написал такой код, не спрашивайте для чего, просто нужен и получил результат несоответствия баров после выполнения ArrayCopyRates:
В чем может быть причина, может в нарушении целостности памяти или в неправильной отработке самой функции ArrayCopyRates?
Гуру форума пока молчат, наверное заняты или не знают сами ответа.
PS. код подправлен для удобства