Блог им. mirus3000

Прошу помощи у питонистов по QuantConnect

Убрал явные мелкие ошибки коде и получил такой файл:
Прошу помощи у питонистов по QuantConnect

При бектесте, какое то время все идет ОК. Но потом вываливается ошибка pandas:

Прошу помощи у питонистов по QuantConnect
Видимо ошибка где то внутри. Почему выскакивает за пределы масcива Pandas? Для дебага их IDE не очень подходит, а изучать Doker для установки на локальную машину не очень хочется. 

15 комментариев
если никто не поможет, отключай участки кода и ищи триггер ошибки
avatar
Да тут очевидно в какой переменной ошибка:
Строчка self.df = self.History(i,2). Это запрос истории по инструменту за два дня. Переменная self.df содержит в себе тип массив Pandas. Не понятно почему выскакивает за её пределы массива. Я же просто по индексу обращаюсь. И перед этим делаю проверку что в массиве не менее 2-х элементов.
Dancing Orange Hyena, могу предположить следующее (принципиально), если код исполняется, а ошибка возникает только при определенных значениях подаваемых данных. Это значит, что массив Pandas не заполняется вообще, так как не срабатывает ни одно условие в коде или массив заполняется неверно. Например, массив становится в этот момент одномерным, а вы обращаетесь к двумерному массиву или в массиве всего 1 элемент, а обращаемся мы в этот момент времени ко второму, которого естественно нет, или тип заполняемых данных неверный, отсюда и ошибка.
avatar
Dancing Orange Hyena, найдите время когда возникает ошибка, за это время посмотрите на данные которые приходят в алгоритм. Сделайте дебаг по этим данных, подставляя их алгоритм вручную, сравнивая со значениями которые должны быть получены на выходе. 
avatar
Dancing Orange Hyena, QuantConnect не использую, но могу предположить. В Питоне все нумеруется с нуля, поэтому если  существует два элемента, то у последнего номер 1, а не 2. При попытке прочитать прочитать элемент 2 будет ошибка, как у вас возникает.
avatar
Михаил, если вы про self.History(i,2), то вторым аргументом идет int, который запрашивает количество периодов истории. Здесь я прошу историю за 2 дня. Вернуться должен многомерный массив.
В нем я беру данные о значении high последнего торгового дня. self.YesterdayHigh=self.df.high[1] где [1] последний индекс из двух[0,1]
Возможно нашел ошибку. Добавил третий аргумент в запрос истории, self.df = self.History(i,1,Resolution.Daily). Без него история приходила по дефолту в минутах. 
Господи, ну пишите вы все сами, и не будет у вас никаких проблем. Нет ничего такого в QuantConnect, что действительно жизненно необходимо. Или надо вообще не владеть программированием, но тогда и QuantConnect бесполезен.
Загорелся я как-то S#, начал смотреть. Оказалось, что там нет ничего, что реально нужно и делается больше чем за полчаса, а наворочено много и требует еще и изучения.
Немного знакомился с MQL — там есть базовые классы для торговых систем. В итоге оказалось, что все это совершенно не нужно и даже бесполезно. Как-то развить это в принципе невозможно.
Можно было бы еще примеров накидать с такими вот доморощенными библиотеками — много раз сталкивался.
avatar

3Qu, в квантконекте есть то что, жизненно необходимо:

1 Встроенные исторические данные(акции, опционы, форекс, крипта)
2 Встроенная фундаментальная информация по компаниям(отчеты и тд)
3 Бесплатная виртуалка для бэктестов(хоть и слабая) 

Dancing Orange Hyena, бэктесты — это вообще фигня, делается в три притопа.
Ну, остальное не знал.
Нужную историю с Финам, да вся она и не нужна. Фундаментал меня вообще не интересует.
Ну, это, типа, на вкус и цвет…
avatar
3Qu, я же не профессиональный программист. То что для вас делается в три притопа, для меня не так просто. 
Dancing Orange Hyena, я тоже совсем не программист.) Программирование сейчас, это как раньше умение пользоваться логарифмической линейкой. Вы видели профессионалов по пользованию логарифмической линейкой?
avatar
3Qu, возможно вы просто умнее меня или ваш мозг быстрее работает. 
Про линейку согласен.
Dancing Orange Hyena, в одном из своих топиков я сделал простенькую ТС на Python и ее протестировал. Посмотрите, если интересно. В оглавлении он и другие в разделе Python.
avatar
3Qu, ок. Спасибо.

теги блога Неолиберальный тоталитаризм

....все тэги



UPDONW
Новый дизайн