Постов с тегом "python": 237

python


Качаем Питоном данные ООН по продовольствию

    • 08 июля 2020, 17:02
    • |
    • Albus
  • Еще
В составе ООН есть продовольственная организация. Она называется FAO. Там публикуется много интересной статистики по мировому сельскому хозяйству. Можно посмотреть урожаи и посевные площади в разных странах мира.
Вот ссылка
http://www.fao.org/faostat/en/#data/QC
Там в разделе Bulk Downloads лежит файл
http://fenixservices.fao.org/faostat/static/bulkdownloads/Production_Crops_E_All_Data.zip

Мы его будем качать и распознавать с помощью языка Питон. 
Найдём страну, которая является мировым лидером по валовому сбору той или иной культуры.
Скрипт полностью автоматический. Он сам качает архив с данными с сайта ООН, сам его обрабатывает, отправляет в Гугл для перевода с английского на русский и сам пишет результаты в файл.
---------
1. Качаем и устанавливаем Питон: https://www.python.org/downloads/
2. В чёрном окошке cmd.exe устанавливаем библиотеку pandas для быстрой работы с данными:
pip install pandas


( Читать дальше )

Качаем цены с Росстата и строим графики

    • 07 июля 2020, 22:00
    • |
    • Albus
  • Еще
Росстат каждую неделю публикует цены на основные товары из потребительской корзины. Сейчас в ней 112 наименований.
https://www.fedstat.ru/indicator/37426
Данные собираются по всей России. Цены можно посмотреть для каждого региона, вплоть до малых городов. НО! по городам почему-то качается только текущий 2020 год, как бы хитро вы ни выставляли птички в фильтрах. А вот для субъектов Федерации типа г. Москва, Ростовская область все данные отдаются корректно. 
Качаем цены с Росстата и строим графики

Страница грузится долго, сайт глючный, при работе с ним требуется ангельское терпение.
---
Публикую скрипт, который на основе скачанных данных строит красивые графики. Работа будет полуавтоматическая: данные в формате эксель вы качаете руками, а потом скрипт подхватывает скачанный файл и рисует графики.
Качаем цены с Росстата и строим графики

( Читать дальше )

Что же такое бэктестинг и есть ли у него сердце?

    • 02 июля 2020, 10:23
    • |
    • Grin
  • Еще
Не понятно, к чему это все? Почитай тут

Доброго дня! 
Вашему вниманию представляется продолжение потуг начинающего программиста / аналитика по созданию самопальной системы бэктестинга на python. 
Настала пора поближе понять, что же такое backtesting торговых стратегий. Расскажу как обычно своими словами.

Вот сидел я, смотрел на графики и прозрел! Все же просто в этих ваших инвестициях, покупай на дне, продавай на пике! Изи же! 

Осталось понять, когда оно на дне, когда на пике.

И вот тут раскрывается все море возможностей, трейдеры разворачивают сети осцилляторов, средних и нарисованных фигур, стоимостные инвесторы сдувают пыль с мультипликаторов и сравнивают со средними значениями по отраслям и историческими средними, пассивные инвесторы расчехляют свои корреляции, собирают портфель и ждут перекосов для ребалансировки. Тысячи инструментов, миллионы идей, миллиарды комбинаций и это я еще не сказал про рынок производных инструментов. 

Ну и как водится, истина где то там, в безбрежном океане информации и пока не попробуешь, не узнаешь. 
А пробовать то надо за деньги, а деньги жалко! 

И тут снова приходит великолепная идея, есть же данных о прошлых значениях, цен, объемов, мультипликаторов, осцилляторов, корреляций. Что если сформировать портфель в прошлом и посмотреть, как все было бы сейчас, если бы мы все купили/продали тогда?  

Это и есть backtest. Ответ на вопрос, что было бы, если бы мы в соответствии с подсказками, которую дает наша стратегия, купили / продали в прошлом. 
Такое тестирование можно делать смотря на графики, табличками в экселе используя специально предназначенные для этого инструменты. 

А можно написать код, который будет проверять на сколь угодно больших объемах данных и выдавать результат. Как долго он будет то делать и как точно у него получится, вопрос уже к коду. 

Ну и хватит потока мыслей, переходим к реализации. 
То, что я пытаюсь написать называется событийно — ориентированным бэктестом. 

( Читать дальше )

Скачиваем историю дивидендов со Смартлаба

    • 01 июля 2020, 16:03
    • |
    • Artem
  • Еще
Всем привет!

При работе с историческими данными часто бывает удобно сгладить дивидендые гэпы. Делюсь скриптом, которые скачивает таблицы с датами гэпов и дивидендами по акциям и сохраняет их в csv файл. Скрипт может быть полезен тем, кого интересуют конкретно эти данные либо тем, кто хочет разобрать пример простого скрэппинга данных (и, возможно, адаптировать его под свои нужды). Я постарался прокомментировать большую часть кода.

Код использует библиотеку pandas (устанавливается с помощью команды pip install pandas).

https://pastebin.com/N3G4fupa

В параметре syms в кавычках через запятую указываем список интересующих инструментов. Скрипт запускаем командой
python smartlab_dividends.py

Спасибо Смартлабу за собранные данные!

Нейросети в торговых системах. 1.

    • 25 июня 2020, 22:59
    • |
    • 3Qu
  • Еще

Вначале о грустном. Не понимая теорию нейросетей (НС) у вас вряд ли получится построить на ней ТС. Поэтому лучше для начала почитать теорию, например, Хайкин Саймон. «Нейронные сети. Полный курс». Книга уже достаточно старая и в ней нет новомодных веяний, но она дает базовые представления о НС.

И второе, мы будем далее для построения систем использовать пакет scikit-learn для Python. рекомендую ознакомиться. Есть и более продвинутые пакеты, скажем, TensorFlow и др., но их использовать мы не будем, и ограничимся более простым scikit-learn.
Теперь о том, чего здесь не будет. Здесь не будет теории НС, разве эпизодически и оч кратко. Здесь не будет описания пакетов Python, работы с графикой и пр. Обо всем этом вы можете прочесть в интернете, книгах, и документации Python.
В топике мы будем обсуждать только применение НС к ТС и их построению.
Так как тема достаточно велика, в один топик не влезет, сегодня мы займемся самыми общими вопросами. Следующая часть будет недели через две, раньше не получается.



( Читать дальше )

Python - можно ли загружать модули как файл?

Всем привет!

По каким-то неведомым человечеству причинам не удается устанавливать модули общепринятыми способами.

Вопрос  -можно ли инсталлировать модули в питон через файл?

В R такой вариант возможен — скачивается зип с последущей установкой через прогу.

Python-->Lua-->Квик. Управление заявками в Квике из Питона.

Всем привет!
То о чем так долго мечтали большевики — свершилось!
Представляю QLua-сервер для управления заявками в Квике Квиком. Как обычно, в несколько строк кода.


( Читать дальше )

Python. Делаем тестер стратегий и... зарабатываем на случайном блуждании.

    • 19 июня 2020, 16:32
    • |
    • 3Qu
  • Еще

Если вам кто нибудь скажет, что на случайном блуждании (СБ) нельзя зарабатывать, бросьте в него камень. Как говорил Паниковский — это жалкие ничтожные люди. На СБ можно зарабатывать с результатами не хуже, чем на реальном рынке. У СБ, по сравнению с реальным рынком, только один недостаток — за игры с СБ никто деньги платить не будет.
А если бы платили? Никто бы ничего не заметил. По прежнему 95% СБ-трейдеров сливало бы депозиты, а 5% регулярно выигрывало и считало бы себя Гуру. По прежнему на графики наносились бы каббалистические знаки и индикаторы, угадывались бы направления движения, каналы, и линии поддержки/сопротивления. Все так же начинающие трейдеры искали Учителя для обучения, а аналитики предсказывали будущее. И, ровным счетом, абсолютно ничего бы не поменялось. Может только АГ заметил бы подвох, но тоже не сразу, а только через несколько месяцев, а, может, и через год-другой. Но, легко сделать, чтобы и АГ остался в неведении.)

Однако, прежде чем играть на СБ, нам необходима стратегия и тестер. Ими мы и займемся.
Для начала стратегия: нам нужны три функции
— одна для пошагового слежения за рыночными котировками и определения момента входа в сделку — DealEntryAnalysis(i) и пусть на ее выходе будет: 0-если сделки нет, 1 — необходим вход в лонг, и -1 — необходим вход в шорт. i — номер отсчета массива котировок.
— вторая для сопровождения сделки лонг — DealControlL(i), отвечающая за контроль и закрытие сделки.
— и третья, для сопровождения сделки шорт — DealControlS(i).
Теперь у нас все готово для разработки тестера стратегий, а это всего лишь цикл while() последовательно перебирающий котировки.
Вот наша стратегия уже в тестере:

while i < Ie:
    deal_type = DealEntryAnalysis(i)
    if deal_type == 1:
        j, rep = DealControlL(i)
        deals_report.append(rep)
        i = j+1
        continue
    elif deal_type == -1:
        j, rep = DealControlS(i)
        deals_report.append(rep)
        i = j+1
        continue
    i = i+1


( Читать дальше )

Автоматизация - ключ к успешному инвестированию. Python и SQL приходят на помощь!

Как и любой исследователь-инвестор, я сталкиваюсь с необходимостью обрабатывать огромное количество различных данных, чтобы принять взвешенное инвестиционное решение.

И одна из самых трудоемких частей работы — это сбор данных, их систематизация и подготовка для работы. Конечно, очень хочется как можно больше автоматизировать данную работу, чтобы тратить на это как можно меньше времени.

Я уже рассказывал, что на самоизоляции осваивал Python, и демонстрировал, что мне удалось написать профессиональный инвестиционный калькулятор, который рассчитывает различные финансовые показатели и сравнивает между собой два актива. Кстати, в последней его версии я добавил возможность учета комиссий и налогов. Это позволяет намного легче сравнивать NET результаты для инвестора, особенно если в стратегии по ДУ есть вознаграждение управляющего за успех, а в ПИФах комиссия за приобретение и погашение паев.

Все первичные данные для сравнения приходилось формировать в ручном режиме — скачивать котировки в файл, потом их обрабатывать, и уже потом считать результаты. И даже немало известная программа



( Читать дальше )

Минимальный набор аналитика для бэктеста

    • 16 июня 2020, 20:56
    • |
    • Grin
  • Еще
Вот тут написано, к чему это вообще и содержание

Если уж начинать рассказ про проект по анализу данных, нельзя не упомянуть про инструментарий, который поможет в этом нелегком деле. 
Для тех кто в теме, буду краток, для тех кому вдруг интересно мое видение, расскажу подробнее. 

Отдельной ремаркой, немаловажной для данного сайта, все инструменты описанные ниже совершенно open source, то есть даром! 
Используемый инструментарий:

Python 3.8 + Pycharm + anaconda + git(необязательно)

В комменты накидали еще инструментов, грех упускать случай.
Что еще используют пользователи smart-lab:
Язык R
jupyter notebook
Collab google


Если вы хотя бы немного умеете в программирование, не читайте дальше, вам не понравится.

Я предупреждал. 


( Читать дальше )

....все тэги
UPDONW
Новый дизайн