Блог им. 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:
Фото
CAD/JPY: Готовы ли медведи крупно рискнуть?
Валютная пара CAD/JPY повторно (в третий раз) протестировала пробитую линию восходящего тренда (построенного по точкам 1 и 2), а также верхнюю...
Фото
💡 Ваш второй разум на фондовом рынке
Представляем «Интеллект» — новый сервис инвестиционного консультирования на базе ИИ. Как работают его нейроны? Вы заполняете анкету — ИИ...
Фото
🎬Вторая серия «Бизнес-рост с А101»: от убытков до 1 млн рублей чистой прибыли

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

....все тэги



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