Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте всем!
Помогите, пожалуйста, новичку разобраться с использованием массивов в классах. Вырезал ключевой код в маленький кусок для представления проблемы:
При выполнение получаю ошибку Array out of range в строке класса наследника, в родительском классе получаю ожидаемый 0.
2012.02.13 00:41:25 2011.01.01 00:00:00 array out of range in 'test1.mq5' (29,36)
2012.02.13 00:41:25 2011.01.01 00:00:00 array[0]= 0.0
Я так понимаю что неправильно передаю (или обращаюсь) массив в класс наследник, хотя с обычными переменными при таком обращении ошибок не возникает.
Что я делаю не так?
Очень часто в последнее время вижу такое сообщение при запуске файлов *.mq5:
В чём может быть проблема?
Здравствуйте всем!
Что я делаю не так?
Смотрите, при объявлении во второй строчке "second Csecond;" у Вас метод InitArray() не вызывается, правильно? При этом сам по себе объект Csecond уже создан. Вот и получается, что когда в четвёртой строчке обращаетесь к методу "Csecond.Printer();", обращение идёт к неинициализированному и неотразмеренному массиву Stf_ZZ_Val[].
Скажите, пожалуйста, снято ли ограничение в 1000 баров доступной истории с даты старта (как в МТ4) при тестировании?
Поясните, что Вы имеете в виду?
В пятёрке загружаются данные с предыдущего года от начала тестирования. То есть, если Вы тестируете с 2012.02.01 то данные будут подгружатьсяс 2011.01.01
Исключение составляет тестирование на днёвках, недельках и месяцовках - там расчёт начала данных ведётся из необходимости наличия 100 баров перед началом тестирования.
Поясните, что Вы имеете в виду?
При запуске, напр. с 2011.01.01 по дневкам нужна история с, как минимум, 3000 баров. Т.е. приходится задавать заведомо больший период, чем нужно для тестирования, а "точку начала" отслеживать программно. В чем сложность предоставления всей (или по запросу) истории при тестировании?
Сложности нет никакой. Мы не захотели вводить дополнительную галку в настройках тестирования, которая была бы непонятна большинству пользователей и в большом количестве случаев использовалась бы неверно.
Задавать заведомо больший период - это нормальное решение.
Есть ещё решение - заказать тестирование на месяцовке, а индикаторы и ценовые данные использовать дневные (то есть, вместо PERIOD_CURRENT явно выставлять PERIOD_D1)
Кроме того, встает вопрос о доступности истории не при тестировании, а в реальной автоторговле. Как быть в этом случае? Тестер-то можно перехитрить...
Благодарю за разъяснения!
В догонку: тестирую с удаленными агентами через инет. Почему агенты получают полный объем минутной истории, если я тестирую по ценам открытия дневок? Время подготовки перед началом тестов просто неприличное - час, например. Хорошо тем, у кого труба в 10-100 мегабит, а тут сидишь на жалкой мегабитке...