
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы написали - Для начала нужно определить бар другого ТФ, который соответствует бару текущего ТФ - а если этот бар (который соответствует моему алгоритму)был неделю или месяц назад, тогда как его индекс и свойства получить?
у вас есть время?
ищите бар с помощью iBarShift
у вас есть время?
ищите бар с помощью iBarShift
"array out of range" сообщает номер строки, открываете редактор, находите где это, исправляете ошибку.
Для понимания можно добавить принт перед строкой с ошибкой, чтобы увидеть какое значение переменной было в этот момент.
Все уже сказано выше - бары на разных периодах не совпадают.
Просто код неправильный. И он, конечно же, приведет к выходу за пределы массива. Во-первых, зачем делать цикл, если CopyRates постоянно запрашивает одни и те же данные? Нужно либо убрать цикл, либо вынести CopyRates из цикла.
Во-вторых, значение a - это полное количество баров на ТФ. Запрашивая данные с бара, имеющего индекс 1, никак не получить "a" данных, только a - 1. Отсюда и вылет.
Проще всего сделать так:
Я так думаю, что причина получения ошибки - обращение к двум элементам массива, которых не существует. Вы игнорируете элемент с индексом 0 (а он Вам нужен, Вы его запросили, в нем данные самого последнего бара в истории), но пытаетесь достучаться к элементам с индексами a (в моем коде nTFBars) и a - 1 (в моем коде nTFBars - 1), которых не существует.