Блог им. mirus3000

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

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

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

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

483
17 комментариев
если никто не поможет, отключай участки кода и ищи триггер ошибки
avatar
Да тут очевидно в какой переменной ошибка:
Строчка self.df = self.History(i,2). Это запрос истории по инструменту за два дня. Переменная self.df содержит в себе тип массив Pandas. Не понятно почему выскакивает за её пределы массива. Я же просто по индексу обращаюсь. И перед этим делаю проверку что в массиве не менее 2-х элементов.
avatar
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]
avatar
Возможно нашел ошибку. Добавил третий аргумент в запрос истории, self.df = self.History(i,1,Resolution.Daily). Без него история приходила по дефолту в минутах. 
avatar
Господи, ну пишите вы все сами, и не будет у вас никаких проблем. Нет ничего такого в QuantConnect, что действительно жизненно необходимо. Или надо вообще не владеть программированием, но тогда и QuantConnect бесполезен.
Загорелся я как-то S#, начал смотреть. Оказалось, что там нет ничего, что реально нужно и делается больше чем за полчаса, а наворочено много и требует еще и изучения.
Немного знакомился с MQL — там есть базовые классы для торговых систем. В итоге оказалось, что все это совершенно не нужно и даже бесполезно. Как-то развить это в принципе невозможно.
Можно было бы еще примеров накидать с такими вот доморощенными библиотеками — много раз сталкивался.
avatar

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

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

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

Михаил Шардин, привет, сейчас нет, по причине не самой легкой доступности американского рынка. 

Кстати у них preIpo было. Письма одно время присылали, предлагали участвовать. 

С точки зрения функционала, удобно что данные не нужно ни откуда качать, консолидировать тд и тп. 

avatar

Читайте на SMART-LAB:
Фото
Скрипт сегодняшнего размещения Л-Старт (B.ru, 175 млн р., YTM 33,49%)
Скрипт размещения облигаций Л-Старт 001Р-01 📌 B.ru  📌175 млн р. 📌 Купон: 32% — 1-6 купоны, 31% — 7-12 купоны, 30% — 13-18 купоны,...
Рост цен на бензин усиливает инфляционное давление
Бензин АИ-92 на Санкт-Петербургской международной товарно-сырьевой бирже с начала января подорожал на 9,2%, до 59,026 тыс. руб. за тонну. В целом...
Фото
Акции «Русала» подошли к важному рубежу
В прошлом году акции «Русала снизились в цене на 8%, в то время как в Гонконге они выросли на 53%, что стало отражением укрепления рубля к...
Фото
Потенциальные инвестиционные идеи 2026. Мой прогноз по котировкам акций
Я никогда не писал такого общего поста в начале года по всем компаниям, но решил написать, ведь это даже самому интересно и полезно — где я...

теги блога Himno a la paz

....все тэги



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