Алготрейдинг на Python. Торговые роботы.
277 subscribers
16 photos
1 file
32 links
Канал блога алготрейдинг.рф
В 48 начал изучать Python с нуля. Здесь делюсь знаниями и рассказываю о том, что получается сделать.
админ: @Severland
чат "Алготрейдинг АлгоКоллектива" t.me/algotrading_ru
чат "Flet-GUI для Python программ" t.me/flet_GUI
Download Telegram
Уважаемые подписчики! Хочу всех Вас пригласить в созданный мной чат "Алготрейдинг АлгоКоллектива России" https://t.me/algotrading_ru
У многих есть какие-либо вопросы, хочется что-то обсудить, чем-то поделиться, что-то спросить. Коллективный разум - это здорово. Буду рад, если примите это приглашение! 🤘
https://t.me/algotrading_ru/21/110
И все же Искусственный Интеллект не перестает удивлять! Программирует, рисует, теперь еще и поет. Выдал прямо хит по теме. Приятного прослушивания.
Всем привет! Не так давно я сделал свою первую минипрограмму на Python для получения исторических данных с Мосбиржи. Это консольный вариант и не совсем то, что хотелось получить и чем было бы удобно пользоваться. Поэтому я решил освоить хотя бы в базовом объеме какой-нибудь инструмент для создания графического интерфейса на пайтон. Освоить его для того, чтобы любые будущие программы можно было оформлять в виде удобного и красивого программного софта. Это может быть и та же программа для получения исторических данных, программа для анализа этих данных, программа - обертка для торгового робота и т.д. Однозначно это затягивает и осложняет путь погружения в алготрейдинг. Это из серии чего-то прикладного, без чего точно можно обойтись, но тем не менее я все же решил захватить и это направление тоже.
(Есть еще желание освоить создание ботов в телеграмм и немного начать разбираться в базах данных.Время покажет - будет ли оно для изучения этих направлений. )
Сейчас я хочу поделиться информацией по инструментам для создания GUI на python.
Во первых я достаточно много посмотрел роликов и публикаций чтобы выбрать для себя что-то из разряда: 1)современного и красивого 2)функционального 3)мультиплатформенного 4) простого в освоении.
На каких вариантах было желание остановиться и почему я их отсек:

Tkinter (встроен в стандартную библиотеку языка) - отличный вариант для старта, но морально устаревшее решение. Всеобщее мнение оказало силу влияния.
wxPython. По этой библиотеке пожалуй самое большое количество всевозможных учебных материалов, курсов и книг. Сначала было желание остановиться именно на нем, но стал смотреть в сторону более современных решений, информацию о которых нашел немного позже.
PyQt. Видимо это самая крутая штука, но скорее всего и самая сложная. Сразу отсек именно по этой причине. Если будите изучать - обратите внимание на надстройку PyDracula.
KivyMD - сплошная красота в прямом смысле слова, не зацепило для моих задач.
Streamlit. Очень хороший инструмент для анализа данных и различных исследований. Но мне показалось, что это совсем уж узко инженерный и научный продукт. Не подходит.
reflex. Отличный вариант для веба с красивыми элементами управления.Не стал погружаться в детали.
NiceGUI и PyWebIO - очень даже интересные варианты, но отсек уже на самом финише выбора.
Flet - ну уж совсем молодой фреймворк. Находится в стадии становления. Постоянно новые версии, устранение ошибок - пожалуй это единственный небольшой минус, хотя такое активное развитие - есть жирный плюс. Разработчик из Канады. Как можно догадаться именно на нем я и сделал свой выбор. Чуть позже расскажу почему.

#python_с_нуля
Flet – это новый современный фреймворк, позволяющий создавать мультиплатформенные веб-, мобильные и настольные приложения на Python.

Flet позволяет упаковывать ваши приложения для распространения на всех платформах -  Windows, macOS, Linux, Web, iOS (ipa), Android (apk/aab). Для создания настольных приложений используется не общепринятый для Python PyInstaller, а Flutter SDK, обеспечивающий создание быстрого и автономного исполняемого файла.

С помощью Flet Вы сможете быстро создавать красивые и современные интерфейсы. Flet имеют простую и понятную архитектуру, встроенный веб-сервер, многочисленные встроенные инструменты и в ближайшее время появится поддержка мультиязычности.

Интерфейс программ, созданных с помощью Flet, строится на основе виджетов Flutter. Flet при этом объединяет их в готовые и удобные к использованию «элементы управления». Благодаря этим инструментам приложение выглядит профессионально. (Flutter - это открытый набор инструментов для разработки пользовательских интерфейсов, созданный компанией Google).

В настоящее время Flet поддерживается языком Python, но в стадии разработки еще поддержка языков Go и C#.

#python_с_нуля #flet
Всем привет! Нашел на этой неделе время и протестировал работу с БД SQLlite. Почитал первые главы одного замечательного учебника по SQL и воспользовался шпаргалками с Хабра. Ссылки на эти источники есть в статье моего блога.
Написал в качестве эксперимента два скрипта. С помощью первого все файлы с котировками акций загнал в одну базу данных с транформацией времени в unix время. На все ушло 48мин. Вторым скриптом обратно из базы данных сгенерировал csv файлы с котировками. - на все ушло 15 мин.

#python_с_нуля #sql #sqllite
Впечатления - отличные, за исключением скорости. У меня ssd диск и на hdd видимо время будет еще дольше. С другой стороны это время затрачено вообще на все акции на всей их многолетней истории и с 4 разными таймфреймами. Уверен, что при записи потока живых данных по нескольким акциям вопрос времени вообще не будет препятствием к использованию sqllite. Чтение же данных идет намного быстрее записи и это для анализа и тестирования стратегий очень хорошо.
Еще в ходе эксперимента я нашел одну ошибку в первой версии программы Тахометр трейдера, а именно нашел несколько дублей строк. При записи в БД эти несколько дублей исчезли благодаря соответствующему sql запросу. В самой программе эту проблему также устраню при следующей модернизации.
И последнее. Во время написания скрипта пришла мысль, "а почему бы Мосбирже не отправлять данные, как минимум текущие "живые", по технологии WebSocket?" Почитал про эту технологию подробнее - однозначно должна быть именно такая передача данных, по этой технологии например идут данные на постоянно меняющийся график акций в вашем браузере. А get запросы, создают временные "рывки" в получении данных. Постоянно надо крутить циклы с их отправкой. Вообщем я задал в телеге вопрос представителю мосбиржи, на что получил ответ: "да, все по гет запросам. Про вебсокет ходят только разговоры пока. Конкретики по ним пока нет".

#мосбиржа #Algopack
Уже на первом этапе изучения языка python я думаю все, как и я, озадачиваются вопросом – как быть с секретными данными – логины, пароли, токены и т.п. Как и где их хранить? Ну не прописывать же их явно в тексте программы, а потом еще и на Гитхабе размещать. Особенно эта тема актуальна в сфере алготрейдинга, здесь думать о доступах и секретности паролей надо в первую очередь.
Решением могут стать "переменные среды". Что это такое, как их определять + простые примеры я изложил в новом конспекте знаний на своем блоге.

#python_с_нуля #пароли
Всем привет! Прям замкнутый круг получается у меня... начал изучать Flet, чтобы сделать оболочку программы и заткнулся с пониманием ООП. Стал смотреть курс Сергея Балакирева по ООП. По ходу просмотра вижу СПЛОШНЫЕ пробелы в "поверхностных" знаниях и решил посмотреть его базовый курс "Добрый, добрый Python с Сергеем Балакиревым". 😁
Вроде нелогично все вновь с начала начинать, ведь 5 мес(!) уже прошло с первых попыток что-то изучить в Python 😱. И я знал об этом курсе с самого начала, но не решался к нему приступить, т.к. он казался громоздким и сложным, соответственно жалко и время. Поэтому в конце прошлого года начинал я с различных миниуроков, чтения отдельных глав разных книг, частично смотрел курс по python от Богдана Стащука.  И вроде бы знания основные стали появляться, но все равно какая то бессистемность и недостаточность в понимании. В результате, спустя время, я таки смотрю курс "Добрый, добрый Python с Сергеем Балакиревым". И искренне рекомендую его всем начинающим!!!👍
Если вам сложно сразу пройти этот курс, жалеете время - то вернитесь к курсу через какое-то время после первого погружения в python с помощью других методик. Но спустя время к просмотру этот курс в любом случае будет очень полезен!
Курс выложен на платформе Stepik и он совершенно бесплатный!
Чем хорош этот курс:
1)видеоформат с отличным разъяснением учебного материала,
2) текстовый вариант лекций на сайте автора,
3) практические задания на степике по пройденному материалу (прям крайне полезная штука),
4) по итогу прохождения курса Вы получаете сертификат на платформе Stepik.
И как обычно, в первую очередь для себя, я решил сразу делать краткий конспект, чтобы только "соль" была - самое главное и все на одной странице. Весь материал чтобы был с ссылками на уроки курса - если возникает необходимость внимательного изучения забытого, то не рыться и не искать где это. Конспект наполняю, он закрыт паролем, т.к. часть материала там без рерайта - авторские выдержки с курса. Для сообщества моего канала пароль могу выложить, если будет интерес.

P.S. Сегодня 3й день изучения, постараюсь курс пройти по возможности быстрее, информация воспринимается куда как лучше, чем в самом начале знакомства с Python. Реально агитирую всем новичкам пройти его. Позже отчитаюсь о получении сертификата - для меня сейчас это имеет значение.💪