Как стать автором
Поиск
Написать публикацию
Обновить
549.97

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Тестировании торговой системы со случайными сигналами на вход для фьючерсов Московской биржи при помощи Python

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.3K

В этой статье расскажу о том, как воспроизвел и протестировал торговую систему для фьючерсов Московской биржи, основанную на идеях Александра Резвякова. Недавно, просматривая раздел алготрейдинга на Смартлабе, я наткнулся на видео с его выступления на конференции 2024 года под названием "5-6 идей для построения прибыльной торговой системы на фьючерсах". Меня привлекла четкость и понятность предложенных им правил торговли.

Поскольку я активно занимаюсь автоматизацией процессов и стремлюсь глубже изучить возможности Python библиотеки backtesting.py, мне показалось это хорошей идеей для практического применения.

Хотя я лично не знаком с Александром, полагаю, что публичное представление идеи предполагает возможность её независимого анализа и тестирования сообществом трейдеров и программистов.

Код тестов на Гитхаб

Игра в имитацию: используем Python для генерации синтетических данных для ML и не только

Уровень сложностиСредний
Время на прочтение46 мин
Количество просмотров5.1K

Ручной сбор данных — это всегда боль. Он съедает время, деньги и нервы, особенно в таких областях, как медицина или финансы, где затраты могут быть космическими, а юридические барьеры — непреодолимыми. По прогнозу Gartner, к 2030 году синтетические данные полностью затмят реальные данные в моделях ИИ.Почему? Потому что это работает.

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

Читать далее

Оптимизация работы с REST API: когда и как использовать пагинацию (+ простой пример на Python)

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров8.3K

Итак, пользователи вашего приложения уже жалуются на долгую загрузку данных, а серверы едва справляются с нагрузкой. Одна из возможных (и частых) причин в том, что API пытается выгрузить тысячи записей за один запрос. Без пагинации базы данных захлебываются под тяжестью SELECT-запросов, а клиенты уходят к конкурентам, не дождавшись ответа.

Почему пагинация — это не опция, а must-have для любого API? Как избежать типичных ошибок при ее внедрении? И почему даже стартапам с небольшим трафиком стоит задуматься о ней уже сегодня? Ответы — в разборе принципов, которые превращают пагинацию из технической детали в инструмент роста бизнеса.
Читать дальше →

Шардирование гео-данных в Redis

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.9K

В интернете много статей о том, как можно использовать Redis для реализации задач гео-поиска (поиск объектов поблизости, поиск объектов внутри определенной области и т..д). Во многих упоминается о том, что редис можно легко масштабировать горизонтально, добавляя шарды в кластер, при этом логика распределения данных по шардам он берет на себя, без необходимости реализовывать ее на уровне приложения. На деле же все оказывается не совсем так или совсем не так.

Для тех, кто не хочет много читать про то, как мы реализовывали гео-поиск - ключевые слова: geoadd, georadius, пространственные индексы h3. Всем остальным - добро пожаловать под кат.

Читать далее

Настраиваем паука для сбора данных: как работает фреймворк Scrapy

Время на прочтение6 мин
Количество просмотров4.4K

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

Читать далее

5 листингов для лучшего понимания Python

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров17K

На протяжении нескольких лет я занимаюсь программированием на Python. За это время мне удалось собрать несколько занятных листингов кода. Какие-то из этих листингов я находил в литературе, посвященной Python, некоторые листинги я встречал на собеседованиях, а на какие-то натыкался во время выполнения рабочих задач. Однако все эти листинги объединяет одно: на мой взгляд они имеют неплохой образовательный потенциал и помогают лучше понять некоторые концепции Python. В этом посте привожу пятерку из моего списка листингов.

Читать далее

Боремся с токсичными комментариями с помощью ИИ, FastAPI и React

Время на прочтение12 мин
Количество просмотров1.7K

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

Мы воспользуемся FastAPI для бэкенда, React для фронтенда, заставим их между собой общаться через RESTful API, а бизнес-логику реализуем путём обращения к ИИ через gRPC.

Читать далее

Задача про n-ое число Фибоначчи

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.6K

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

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

Читать далее

Программный код в Big data и Power law

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров899

В статье приводятся оригинальные модули Python и даётся пояснение по их применению в задачах распределённой децентрализованной сети по типу блокчейн или, другими словами, в процессах самоорганизованной критичности (SOC). В научных публикациях чаще встречается физический термин SOC в качестве концепции, включающей процессы турбулентности, детонации, землетрясения, нейросети, фондовая волатильность, социальный рейтинг и другие.

Для процессов SOC характерно отсутствие управляющих параметров и масштабная инвариантность. Универсальность сложных процессов SOC со степенным законом Power law имеет тот же характер, как и универсальность простых линейных систем, не обладающих масштабной инвариантностью, по отношению к закону нормального распределения вероятности.

Зависимость от масштаба возникает при аналого-цифровом преобразовании битов в позиционную систему счисления и проявляется в законе нормального распределения вероятности в виде дисперсии и математического ожидания. Потеря масштабной инвариантности в позиционной системе счисления компенсируется приобретением принципа причинности. Например, в Древнем Риме, где была принята непозиционная система счисления, вычисляли, что «после того - не вследствие того» и сильно удивились бы истории с падающим на Ньютона яблоком.

Значительные достижения в анализе Big data заставляют предположить связь с распределением вероятности Пуассона: чем больше данных, тем чаще должны встречаться пуассоновские события и вопрос лишь в поиске подходящей метрики и системы счисления.

Читать далее

CPython C API: 5 вопросов на собеседовании

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.4K

Привет, Хабр!

В этой статье разберём несколько вопросов на собеседованиях, связанных с устройством CPython и его C API.

Читать далее

Как мы искали должников при помощи Pandas

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров9.4K

Петербургский Фонд капитального ремонта опубликовал документы, в которых указана задолженность за каждую квартиру в городе по итогам 2024 года. Мы изучили эти файлы, чтобы ответить на вопрос: где и почему хуже всего платят за ремонт в своём доме.

Я занимаюсь анализом данных и дата‑журналистикой в газете «Деловой Петербург». Расскажу о том, как объединяли информацию из множества локальных html‑таблиц и приведу примеры кода на «Питоне».

Читать далее

Как мы ускорили ванильную FreeIPA в 20 раз!!! (почти)

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров8.2K

В статье речь пойдет об ALD Pro (Astra Linux Domain Pro).
Один заказчик попросил предоставить инструмент нагрузки LDAP-запросов, да не простой, а с GUI и графиками.

Наша команда в своей работе активно использует open source инструмент нагрузочного тестирования Locust (англ. Саранча). Сам по себе Locust является ядром нагрузки с минимальным функционалом из коробки, но этот функционал расширяется за счет использования Locustfiles, которые пишутся на чистом Python, что позволяет не ограничиваться набором инструкций, как, например, в Dockerfile/Containerfile/Vagrantfile, а писать отдельные Python-модули.
На создании инструмента нагрузки ничего не закончилось, а все только началось.

Мы нагрузили ALD Pro, получили графики и...обнаружили катастрофу.

Читать далее

Производительность интерпретатора Python 3.14 с оптимизацией хвостовых вызовов

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров12K

Примерно месяц назад проект CPython смерджил новую стратегию реализации интерпретатора байт-кода. Первоначальные результаты были очень впечатляющими, продемонстрировав среднее повышение производительности на 10-15% в широком спектре бенчмарков на различных платформах.
Читать дальше →

Ближайшие события

OpenSearch как сервис: обзор и тривиальный пример использования на Python

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров12K

Привет, Хабр! Проблема традиционных реляционных баз данных в том, что они не всегда справляются с обработкой огромных объемов информации. Вот вам нужно быстро найти, проиндексировать и проанализировать логи, события или метрики, но вы упираетесь в ограничения масштабируемости, автошардирования и скорости обработки запросов специфического профиля нагрузки. Знакомо?

Меня зовут Гришин Александр, я продакт-менеджер в Selectel и отвечаю за развитие объектного хранилища и облачных баз данных. В этой статье расскажу, как описанные проблемы решает OpenSearch, как развернуть кластеры этой платформы за несколько минут и начать с ней работать в Python.
Читать дальше →

Как

Уровень сложностиСредний
Время на прочтение1 мин
Количество просмотров2.1K

Если в компании есть сотрудники, работающие из дома через удалённый доступ, можно усилить безопасность, ограничивая разрешенные IP адреса.

На первый взгляд, можно разрешить только адреса из одной страны если все сотрудники в одной стране. И такие решения есть.

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

Эта задача разбивается на две. Во первых, нужен список всех провайдеров. Во вторых, нужны все IP префиксы этих провайдеров.

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

Читать далее

Machine learning на ESP32

Уровень сложностиСредний
Время на прочтение34 мин
Количество просмотров14K

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

В этом примере используются измерения акселерометра MPU 6050 и машинное обучение (ML) для распознавания трех жестов рукой с помощью ESP32. Данные из сенсора распознаются на микроконтроллере и результат выводится в консоль в виде названия жеста и вероятности результата. Модель ML использует TensorFlow и Keras и обучается на выборке данных, представляющей три различных жеста: "circle" (окружность), "cross" (пересечение) и "pad" (поступательное движение).

Разработка проекта начнется с получения данных из акселерометра для построения набора жестов. Затем мы проектируем полносвязную нейронную сеть для распознавания жестов, и подключим модель в проекте ESP32.

В следующей части рассмотрим как настроить Bluetooth LE (BLE) на ESP32 и Android устройстве. Передадим квантированный набор ускорений сенсора по BLE. Настроим Модель ML для распознания жестов на Android.

Читать далее

Taigram: как мы решали проблемы данных и пришли к бете

Время на прочтение15 мин
Количество просмотров1.9K

Продолжаем рассказывать о разработке нашего Open Source проекта Taigram.

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

Также затронем тему бета-тестирования и расскажем, как вы можете помочь нам сделать Taigram лучше.

Читать далее

Как я научил
 буфер обмена думать

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров16K

Я научил буфер обмена думать, и теперь всё вокруг стало быстрее. А что если выделенный текст мгновенно станет грамотным, переведётся на нужный язык или расшифрует картинку? Одно нажатие — и ИИ исправляет ошибки в Telegram, объясняет код в VS Code или переводит иностранные мемы.

Читать далее

Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo

Время на прочтение52 мин
Количество просмотров13K

Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота.

В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js. Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).

Читать далее

Как работают dict, slots и weakref в Python (и зачем это знать)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров9.3K

Привет, Хабр!

Сегодня рассмотрим как slots, dict и weakref помогают нам выжимать максимум из Python: экономить память, ускорять доступ к атрибутам и бороться с утечками.

Читать далее

Вклад авторов