Как заработать на пайтон

Содержание

Закажите услуги фрилансеров для вашего проекта прямо сейчас!

Размещение заказа на фриланс бирже бесплатно, а предложения поступят уже через несколько минут.

  • Все открытые заказы 42
  • Веб-дизайн и Интерфейсы
  • Дизайн интерфейсов и игр 1
  • HTML-верстка 2
  • Веб-программирование 7
  • Сайты «под ключ» 1
  • Базы данных 5
  • Мобильные приложения 2
  • Прикладное ПО 14
  • Разработка игр 3
  • Системное программирование 2

Используйте
Комиссия всего 5%
самая низкая на рынке
Быстрый рост рейтинга
с каждым платежом

Закажите: python на фрилансе в Киеве, Москве, Минске и в других городах и странах СНГ. На фриланс бирже weblancer вы можете найти широкий выбор проектов и вакансий с лучшими ценами, безопасной сделкой и своевременной оплатой.

Бот на питоне
Магазин на вордпресс
+ сторонная программа для работы с источником
Всё распишу кандидату, оставляйте ТЕЛЕГРАМ

Фриланс на Python | Зарабатываем 300$ за вечер | Выполняем заказ на фрилансе в 2022

11 часов назад

Требуется создать программу на Python для тестирования студентов с редактором вопросов. В редакторе должен быть предоставлен выбор типа вопроса (Текстовый, . Читать дальше

Требуется создать программу на Python для тестирования студентов с редактором вопросов. В редакторе должен быть предоставлен выбор типа вопроса (Текстовый, с флажками, выбор ответа на картинке и т.д.) Также должна быть реализована возможность редактирования формул и добавления картинок в вопрос; добавление областей на картинке, при нажатии на которые будет засчитываться ответ. Желательно добавить функцию вариативности вопроса (Например, имеется определение и мы выбираем из него слова, которые случайным образом будут удалены, что собственно и будет являться ответом) В «ответнике» нужен таймер и счетчик правильных ответов с выбором кол-ва вопросов для теста. Свернуть

1 день назад
решить её на питоне и на паскале
2 дня назад

необходим простой python скрипт который будет выполнять вызов на переданный ему номер телефона через pbx zadarma.

первый этап заключается

необходим простой python скрипт который будет выполнять вызов на переданный ему номер телефона через pbx zadarma.

первый этап заключается

подключаемся к АТС -> делаем звонок -> вывели статус (отвечен.-занято.) Свернуть

3 дня назад

Напишіть клас Python під назвою автомобіль (Vehicle або Auto), який має приватні! (private) атрибути max_speed (максимальна швидкість) та mileage (пробіг) . Читать дальше

Напишіть клас Python під назвою автомобіль (Vehicle або Auto), який має приватні! (private) атрибути max_speed (максимальна швидкість) та mileage (пробіг) та public атрибут ім’я (name), який задається користувачем при створенні. Cтворити методи, які обчислюють середеній час «в дорозі» за умови максимальної швидкості (mileage / max_speed) та визначення классу автомобіля (auto_type) в залежності від максимальнох швидкості (скажімо, задати межі: від 0. x – “спортивний”, від x…y – “стандартний” і т.д.), конструктор та деструктор класу, геттер (показ max_speed та mileage), сеттер (встановлення max_speed та mileage) та делеттер.

Створити метод, який створює атрибут класу кількість місць для сидіння (num_places). Створити метод, який створює атрибут класу типу список (vehicle_attr – має тип Python list), та записує max_speed та mileage, name, num_places, auto_type (5 елементів у списку — ). Створити можливість виводу даних про клас (значення max_speed, mileage, name для даного екземпляру) за допомогою print (перевантажити метод __str__), перевантажити операцію додавання (знак «+») екземплярів класу (при додаванні – складаються значення max_speed, mileage, name та створюєтся новий екземпляр класу), перевантажити операцію += — складаються max_speed, mileage для даного екземпляру (змінюються значення саме цього екземпляру, name не змінюєтьяс).

В класі створити статичний метод print_id – який буде виводити на екран name. Створити ітератор (методи __iter__ та __next__), який буде проходити по елементах списку vehicle_attr та повертати значення кожного елементу в циклі (показати на прикладах як буде працювати цикл for із екземпляром вашого класу).

Створити нащадка класу Vehicle – клас Bus, у якому у конструкторі додати змінну тип автобусу (bus_type – може бути городський, міжнародний, районний, тощо); перевантажити його конструктор. В функції print даного класу видавати на екран тип автобусу. Показати на прикладах як працює кожна з функцій як з класом Vehicle так і Bus! Якщо потрібно, перевизначити функції в похідному класі для коректної роботи.

Роботу зробити максимально просто, наскільки це можливо Свернуть

4 дня назад

Веб-интерфейс с прогнозом погоды. Должно быть 2 страницы: 1-ая — с выбором города, 2-ая — с погодой на сегодняшний день . Читать дальше

Веб-интерфейс с прогнозом погоды. Должно быть 2 страницы: 1-ая — с выбором города, 2-ая — с погодой на сегодняшний день и на завтрашний в выбранном городе. Обязательно на Python, как именно реализовывать значения не имеет. (Можно использовать pyOWM для определения погоды и eel или что-то подобное для создания веб-интерфейса). Свернуть

указан исполнитель
4 дня назад

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

требуется человек, имеющий хороший опыт в создании и работе с телеграмм ботами .языки — питон , пхп если вы помимо них ещё владеете другими языками — то это хороший плюс . если очень кратко , то требуется бот с возможностью привязки доменов ( неограниченное количество ) , после этого в боте должна быть возможность поставить один из дизайнов которые я предоставлю для бота на этот домен . ( т.е человек будет выбирать какой дизайн из предоставленных ботом поставить на домен который он подвязал ) Бот должен работать с API Cloudflare и уметь работать с API Keitaro . это все кратко , все подробности, примеры данного бота — все в личных сообщениях . Свернуть

5 дней назад

Описание задачи:
Задание: Отчет по продажам
Вы разрабатываете онлайн веб-приложение для генерации отчетов от сети продаж. Владельцы торговой сети (конечные . Читать дальше

Описание задачи:
Задание: Отчет по продажам
Вы разрабатываете онлайн веб-приложение для генерации отчетов от сети продаж. Владельцы торговой сети (конечные пользователи системы) хотят оперативно получать отчеты о том как идут дела на их точках продаж, какая выручка, какие товары проданы и т.д. Системы внутри торговых точек (тоже конечные пользователи системы) должны используя ваш сервис отчитываться о совершенных продажах товаров чтобы централизованно происходил сбор таких данных. Продажи совершаются часто по этому имеет смысл заложить в сервис способность справляться с большими нагрузками.
Требованияреализуйте асинхронное веб приложение котороеобрабатывает GET-запрос на получение всех товарных позицийобрабатывает GET-запрос на получение всех магазиновобрабатывает POST-запрос с json-телом для сохранения данных о произведенной продаже (id товара + id магазина)обрабатывает GET-запрос на получение данных по топ 10 самых доходных магазинов за месяц (id + адрес + суммарная выручка)обрабатывает GET-запрос на получение данных по топ 10 самых продаваемых товаров (id + наименование + количество проданных товаров)никакие лишние эндпоинты реализовывать не требуетсянапишите readme.md с кратким описанием эндпоинтов и инструкцией запускаиспользуйте requirements.txt для указания сторонних зависимостей и их версийиспользуйте postgres или sqlite в качестве базы.используйте асинхронный веб-фреймворк на ваш выбор и асинхронный драйвер подключения к бд на ваш выбор.в качестве ориентира модели данных можно(а можно и не) использовать приведенную ниже dbml схему (визуализировать ее можно инструментом dbdiagram.io). однако это не обязательно, можно разработать собственное целевое понимание модели данных (приведенная модель будет приложена в HTML файле).

Ожидаемый результатРеализуйте программу согласно требованиям описанным выше. Свернуть

5 дней назад

Нужно написать Стиллер желательно на питоне с отправкой в телеграмм сообщениями ,если на питоне не умеете тогда в другой программе . Читать дальше

Нужно написать Стиллер желательно на питоне с отправкой в телеграмм сообщениями ,если на питоне не умеете тогда в другой программе только не бат файлом Свернуть

5 дней назад

Необходимо сделать лабораторную работу по нейросетевым технологиям из учебника Саймона Хайкина «Нейронные сети» 2006 года издания, упр.4.16 на стр. 338 . Читать дальше

Необходимо сделать лабораторную работу по нейросетевым технологиям из учебника Саймона Хайкина «Нейронные сети» 2006 года издания, упр.4.16 на стр. 338 (скрин задания в прикрепленном файле). Работа должна быть написана на языке Python с возможностью запустить работу в Google Colab. Желательно писать код максимально просто. Не стоит делать красивый и эффективный код.

Главное — выполненная лабораторная работа и простота в защите, объяснении кода. Свернуть

нет заявок
1 неделю назад

Есть уже написанный код для бота ВК на Python.
Требуется его доработать до принятия проверяющими (получения зачета) согласно условиям задания.. . Читать дальше

Есть уже написанный код для бота ВК на Python.
Требуется его доработать до принятия проверяющими (получения зачета) согласно условиям задания..
Бот должен искать людей, подходящих под условия, на основании информации о пользователе из VK:
Возраст,
пол,
город,
семейное положение.
У тех людей, которые подошли по требованиям пользователю, получать топ-3 популярных фотографии профиля и отправлять их пользователю в чат вместе со ссылкой на найденного человека.
Популярность определяется по количеству лайков и комментариев.
Входные данные
Имя пользователя или его id в ВК, для которого мы ищем пару.
если информации недостаточно нужно дополнительно спросить её у пользователя.
Требования к сервису:
Код программы удовлетворяет PEP8.
Получать токен от пользователя с нужными правами.
Программа декомпозирована на функции/классы/модули/пакеты.
Результат программы записывать в БД.
Люди не должны повторяться при повторном поиске.
Не запрещается использовать внешние библиотеки для vk.
Проект должен быть сдан в Гитхабе. Свернуть

1 неделю назад

Нужен скрипт для того чтобы доить кран
1. Поднять ноду nibiru по гайду:ссылка до пункта №4, дальше делать не нужно.2. . Читать дальше

Нужен скрипт для того чтобы доить кран
1. Поднять ноду nibiru по гайду:ссылка до пункта №4, дальше делать не нужно.2. Написать алгоритм, который будет выполнять указанное кол-во циклов запросов в ноду через shell/bash, создавать кошелек и сохранять результаты (address, mnemonic, name) в результатирующий файл.

Допустимо .txt, .json.Запрос: $NIBIRU_WALLET — название кошелькаnibid keys add $NIBIRU_WALLETПосле ввода команды в терминал, нужно будет ввести пароль и затем ввести его повторно.3. Написать алгоритм, короторый будет перебирать все адреса в результатирующем файле из пунка 2 и выполнять POST запрос:ADDR=». » # адрес кошелька из п.2curl -X POST -d » ссылка не обязательно выполнять curl, можно воспользоваться любой библиотекой на том языке, на котором Вы будете выполнять задачу. (request для Python).

Также для каждого запроса нужно использовать proxy из списка. После выполнения запроса нужно убедиться, что получен положительный ответ и токены высланы на кошелек.

После выполнения запроса нужно отправить токены с кошелька на валидатор, используя запрос в ноду:$NIBIRU_VALOPER — адресс валидатора. (Он будет всегда одинаковый)$NIBIRU_WALLET — название кошелька из п.2nibid tx staking delegate $NIBIRU_VALOPER 9970000unibi —chain-id nibiru-testnet-2 —from $NIBIRU_WALLET —gas-prices 0.025unibiПосле отправки команды нужно будет ввести пароль заданный в п.2. Также нужно проверять, если $NIBIRU_WALLET — не задан на данной машине, то выполнять команду:nibid keys add $NIBIRU_WALLET —recoverТут потребуется ввести mnemonic из п.2, а затем также дважды задать пароль для доступа.

После успешного выполнения, скрипт переходить к следующей иттерации (новый address). 4. После выполнения всех иттераций по списку адресов из п2, скрипт должен уходить в сон на время, которое должно быть рассчитано по следующей форме:6 часов — Дата окончания всех иттераций (текущее) — Дата прохождения первой иттерации. Таким образом алгоритм должен перезапускаться через 6 часов после прохождения первой иттерации. Между иттерациями необходимо сделать задержку в 10-20 секунд.
На весь алгоритм нужно сделать таймер, чтобы каждые 6 часов снова отрабатывал, по сути вот. Ну и желательно взять даже не ровно 6 часов, а 6:15 (потому что там есть рандомные задержки, которые хз как отработают, главное не перегнать прошлые сообщения). Свернуть

1 неделю назад

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

добрый день, у меня есть телеграмм бот который стал допускать ошибки, нужно его исправить и добавить несколько дополнительных функций подробности в тз при переписке
в идеале конечно хорошо бы было переписать с php на python Свернуть

1 неделю назад (повторно)

Нужен конетер 10/10 с рандомными числами от 1 до 9, суть игры находить по два числа, что бы в сумме . Читать дальше

Нужен конетер 10/10 с рандомными числами от 1 до 9, суть игры находить по два числа, что бы в сумме получить 10 Свернуть

1 неделю назад

Нужно внести правки в верстку на сайте написанным на Питоне (Джанго)
ссылка

то что выделено темно зеленым. Все материалы . Читать дальше

Нужно внести правки в верстку на сайте написанным на Питоне (Джанго)
ссылка

то что выделено темно зеленым. Все материалы пришлю.

Столкнулись с проблемой кто при изменении фаила на сайте ничего не меняется.

Кто готов взяться прошу написать контакты (телеграм), стоимость, сроки. Свернуть

1 неделю назад

Необхідно написати парсер на Python для моніторингу усіх товарів одного бренду — 12 позицій в +-30 інтернет-магазинах. Необхідно аби виводилось . Читать дальше

Необхідно написати парсер на Python для моніторингу усіх товарів одного бренду — 12 позицій в +-30 інтернет-магазинах. Необхідно аби виводилось 3 показники у форматі:
1. Посилання на сайт магазину
2. Назва товару
3. Ціна

Увесь код мусить бути доступним для розуміння, аби інша людина в перспективі могла додавати нові магазини/продукцію та обслуговувати софт, вносити правки. Свернуть

1 неделю назад

Бот для игры Forge of Empires
Требуется автокликер с отслеживанием картинки + интерфейс для настроек.
Рабочий пример есть — отправлю . Читать дальше

Бот для игры Forge of Empires
Требуется автокликер с отслеживанием картинки + интерфейс для настроек.
Рабочий пример есть — отправлю видео по запросу.
Пример желаемого интерфейса в приложении. + из скриншота видны необходимые функции, нужен не просто кликер по 1 точке.
Скорость распознавания примерно 5 картинок+кликов за 3 секунды. ( это точно возможно на связке питон+тессеракт, на автокликере clickerman, на яве)
На чём будет написан бот не принципиально, главное скорость и интерфейс для удобства.
От исполнителя желательно опыт работы в этом направлении и пример такой работы.
Цена от 400$+, (на примере кликера clickerman — он работает не универсально, т.е. только на определённом разрешении экрана и цвете конкретного копма — если предложите универсальное решение, то и цена соответственно будет выше) Свернуть

1 неделю назад (повторно)

Нужен специалист по Питону, который умеет работать с web3 библиотеками. В частности важно понимать как взаимодейстWowать с блокчейнами. Необходимо разработать . Читать дальше

Нужен специалист по Питону, который умеет работать с web3 библиотеками. В частности важно понимать как взаимодейстWowать с блокчейнами. Необходимо разработать сервис по переброске через мост. Подробности ссылкаСвернуть

1 неделю назад

Есть сайт обменник с самописной админкой на питоне (Джанго) ссылка
Нужно написать скрипт который будет генерировать xml фаил по . Читать дальше

Есть сайт обменник с самописной админкой на питоне (Джанго) ссылка
Нужно написать скрипт который будет генерировать xml фаил по ссылке для сайта BestChange под их требования ссылка
Дополнительно нужно будет внести на сайт мелкие косметические правки которые описаны тут ссылка (нужные задачи выделены зеленым).

Задачу нужно выполнить максимально срочно.

Кто готов взяться прошу написать стоимость, сроки и контакты. Свернуть

Источник: www.weblancer.net

Python.su

Блог им. Gippocrat → У нас чёткий план реализации. Как зарабатывать на python android

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

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

читать полностью

2 Сентябрь 2015, 17:30 0 Gippocrat

Вакансии

Программист-Python

  • полная занятость
  • Опыт: Не имеет значения

€ 1
в месяц

Разыскивается Программист-Python Обязанности: Доработка и поддержка веб-сайтов на Python (Django) Требования: Отличное знание: Python, Django Framework Опыт работы с реалиционными базами данных MySQL и PostgreSQL Навыки базового системного администрирования VDS на Linux(Ubuntu) (развертывание djangonginx и пр). Использование docker. html, javascript. Умение разбираться в чужом коде Схема работы, условия оплаты: Работаете по удобному для Вас графику, но задача должна быть сдана в срок. Оплата обсуждается в индивидуальном порядке Постоянная работа Тип занятости: Полная занятость, гибкий график

Программист Python

  • полная занятость
  • Опыт: 1-2 года

руб. 120000
в месяц

Обязанности:

• Разработка высоконагруженных серверных решений

• Разработка кластерных систем обработки массиWow данных

• Проектирование и оптимизация баз данных

Необходимые знания, навыки, опыт:

• Опыт разработки на Python под Unix, опыт работы с Tornado, Gevent

• Опыт написания асинхронных и многопоточных приложений

• Опыт работы со сложными структурами базы данных, отличное знание SQL

• Опыт обработки больших объёмов данных, опыт работы с Java и Hadoop

• Опыт организации параллельных вычислений с распределением нагрузки по ядрам

• Знание устройства и принципов работы сети интернет и операционных систем Unix

• Способность писать документированный код и документацию

• Технический английский язык

Очень хорошо, если вы:

• УчастWowали в разработке облачных Web-сервисов и серверного ПО

• Владеете навыками системного администрирования и построения комплексной инфраструктуры

• Работали с PostgreSQL

• Имеете опыт работы с RabbitMQ

• Знакомы с noSQL

• Хорошо знакомы с протоколом HTTP

Адрес

Москва, проезд Серебрякова, 14с6, м. Ботанический сад, м. Свиблово

Тип занятости

Полная занятость, гибкий график

Источник: python.su

Как с помощью Python создать полностью автоматизированную трейдинговую систему на базе ИИ

Можно ли с помощью ИИ автоматизировать набор правил, по которым действуют на бирже профессиональные трейдеры? Команда VK Cloud Solutions перевела статью о том, как это удалось реализовать и что вышло из такой затеи.

Как появилась идея автоматизации

Пару недель назад я болтал с приятелем. Он рассказывал мне, что пытался устроить детокс от брокерского приложения на смартфоне. Я забеспокоился, не разорился ли он, и уточнил значение слова «детокс» в этом контексте.

Он ответил, что занимается трейдингом. «Если какая-то ценная бумага растет на протяжении часа и я уже заработал более 1%, я ее продаю, — объяснил он. — Это одно из моих персональных правил». Не обращая внимания на псевдонаучный аспект этих правил, я понял, что он имел в виду под детоксом. Чтобы соблюдать такие правила, нужно постоянно заглядывать в смартфон.

И я задумался, можно ли автоматизировать набор правил, по которым дейстWowал мой приятель? Чтобы система занималась трейдингом вместо меня? Вы наверняка уже догадались, что ответ на этот вопрос — «да». Что ж, давайте порассуждаем.

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

  1. Возьмем детализированные данные о ценах на акции в реальном времени, в идеале с интервалом в одну минуту. Чем их больше, тем лучше. Используем для этого Yahoo! Finance, подробнее объясню ниже.
  2. Вместо персонального набора правил добавим в систему ИИ. Раскрою все карты. Я, мягко говоря, не эксперт по анализу временных рядов. Сейчас есть немало руководств по обучению нейронных сетей трейдингу, и мне совершенно не хочется усложнять игрушечную систему вроде этой. Так что давайте стремиться к простоте: пока нам хватит самой базовой модели ARIMA.
  3. У нас есть данные и прогноз, который мы получаем от алгоритма. С его помощью нужно решать, что делать с акциями: покупать, продавать или сохранять. А еще нужно подключиться к брокеру, чтобы выполнять нужные действия. Мы будем использовать RobinHood и Alpaca.
  4. Вот, собственно, и все — система готова. Осталось только где-то деплоить и отслеживать ее работу. Я решил, что система будет отправлять сообщение в телеграм-чат при выполнении какого-либо действия.

Что нам понадобится?

  • Python 3.6 с несколькими библиотеками;
  • учетная запись в облаке с правами администратора для хранения и деплоймента;
  • Node.js, чтобы установить Serverless Framework для деплоймента;
  • аккаунт в телеграме для мониторинга.

Весь написанный код — здесь. Без лишних церемоний перейдем к первой части — сбору данных.

Сбор данных

Собрать данные — дело непростое. Еще несколько лет назад были доступны официальный Yahoo! Finance API и его альтернатива Google Finance. К сожалению, оба сервиса закрылись несколько лет назад. Но остались альтернативы. Я сформулировал следующие требования:

  • Бесплатно. Для рабочей системы я бы, конечно, поменял это требование на «недорого», но для игрушечной системы данные мне нужны бесплатно.
  • Высокая скорость. Желательно вообще без ограничений, но производительности свыше 500 запросов в минуту более чем достаточно.
  • Данные в реальном времени. Некоторые API выдают данные с небольшой задержкой, скажем, в 15 минут. Мне нужны цены на акции, максимально приближенные к текущим.
  • Простота использования. Это проверка идеи, так что мне нужно самое простое решение.

С учетом своих требований я решил присмотреться к yfinance — неофициальной альтернативе старого доброго Yahoo Finance API. Для рабочей системы я бы выбрал Alpha Vantage API, опираясь на замечательный список Патрика Коллинза. Но пока давайте не усложнять.

Ран Арусси разработал библиотеку yfinance для доступа к данным Yahoo! Finance, когда официальный API перестал работать. Приведу цитату с GitHub:

«С тех пор как Yahoo! Finance закрыли свой API исторических данных, многие программы, которые использовали этот интерфейс, прекратили работу. yfinance призвана решить проблему — это надежное решение на Python для загрузки исторических данных по рынку из Yahoo! Finance».

Мило, мне подходит. Как это работает? Для начала библиотеку нужно установить:

$ pip install yfinance —user

А потом можно получить доступ к данным через объект Ticker :

import yfinance as yf google = yf.Ticker(“GOOG”)

Это достаточно быстрый метод (в среднем исполняется чуть дольше 0,005 секунды), который возвращает МАССУ информации об акциях. Например, google.info содержит 123 поля, в том числе:

52WeekChange: 0.3531152 SandP52WeekChange: 0.17859101 address1: 1600 Amphitheatre Parkway algorithm: None annualHoldingsTurnover: None annualReportExpenseRatio: None ask: 1815 askSize: 1100 … twoHundredDayAverage: 1553.0764 volume: 1320946 volume24Hr: None volumeAllCurrencies: None website: http://www.abc.xyz yield: None ytdReturn: None zip: 94043

Еще больше данных можно получить с помощью методов dividends , splits , balance_sheet , earnings и других. Большинство из них возвращают данные в виде объекта pandas DataFrame, так что придется немного повозиться, чтобы получить все, что нам нужно.

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

Обратите внимание, что информация с разбивкой по времени внутри дня доступна, если вы указали период менее 60 дней, и что за один запрос можно получить данные с детализацией до минуты только за семь дней. Транспонированные данные последней записи с интервалом в одну минуту:

df = google.history(period=’1d’, interval=»1m»)print(df.head())

DataFrame — динамика цен на акции Google

Видно, как они индексируются по дате и времени. При этом у каждой записи семь характеристик: четыре значения цены на акцию за эту минуту (открытие, максимальная, минимальная, закрытие) а также объем, дивиденды и сплит акций. Я буду использовать только характеристику «минимальная». Соберем необходимые данные:

df = google.history(period=’1d’, interval=»1m») df = df[[‘Low’]] df.head()

Поскольку мы используем только данные за последний день, давайте проиндексируем DataFrame, чтобы удалить дату и часовой пояс, оставив только время.

df[‘date’] = pd.to_datetime(df.index).time df.set_index(‘date’, inplace=True) df.head()

Хорошо выглядит! Мы уже знаем, как найти последние данные в yfinance. Чуть позже передадим их в наш алгоритм. Но для начала нужно с ним определиться, так что переходим к следующему этапу.

Добавляем ИИ

Не пытайтесь повторять это в домашних условиях. Я подобрал ОЧЕНЬ простую модель ARIMA для прогнозирования следующей цены на акцию, поэтому относитесь к ней как к учебной. Чтобы использовать эти наработки для настоящего трейдинга, советую поискать модель получше и помощнее. Но не теряйте бдительности: если бы это было просто, такие модели были бы у всех.

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

X = df.index.values y = df[‘Low’].values # The split point is the 10% of the dataframe length offset = int(0.10*len(df)) X_train = X[:-offset] y_train = y[:-offset] X_test = X[-offset:] y_test = y[-offset:]
plt.plot(range(0,len(y_train)),y_train, label=’Train’) plt.plot(range(len(y_train),len(y)),y_test,label=’Test’) plt.legend() plt.show()

Теперь добавим в модель данные для обучения и получим прогноз. Обратите внимание, что здесь гиперпараметры модели фиксированы, а в реальной жизни для получения оптимальных параметров нужно использовать кросс-валидацию. К вашим услугам замечательное руководство о том, как подбирать гиперпараметры ARIMA по сетке на Python. Я использую конфигурацию 5, 0, 1 и получаю прогноз на момент, который наступает сразу после данных для обучения.

from statsmodels.tsa.arima.model import ARIMAmodel = ARIMA(y_train, order=(5,0,1)).fit() forecast = model.forecast(steps=1)[0]

Давайте посмотрим, хорошо ли сработала наша учебная модель:

print(f’Real data for time 0: ‘) print(f’Real data for time 1: ‘) print(f’Pred data for time 1: ‘) — Real data for time 0: 1776.3199462890625 Real data for time 1: 1776.4000244140625 Pred data for time 1: 1776,392609828666

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

Подключение к брокеру

Как вы, наверное, догадались, многое зависит от выбранного брокера. Я расскажу о подключении к RobinHood и Alpaca. Почему я выбрал именно их?

  • Есть публичный API.
  • Они не берут комиссию за трейдинговые операции.

В зависимости от типа учетной записи действуют те или иные ограничения. Например, у RobinHood можно совершать всего три трейдинговые операции в пять дней, если остаток на счете менее 25 000 долларов. У Alpaca ограничения не такие жесткие, но все же установлен лимит в 200 запросов в минуту на один ключ API.

RobinHood

Есть несколько библиотек, поддерживающих RobinHood API, но ни одна из них не является официальной. Библиотека Sanko была самой большой, с 1,5 тысяч звезд на GitHub, но ее закрыли. Библиотека LichAmnesia приняла эстафету, но пока что набрала только 99 звезд. Я собираюсь использовать robin_stocks, у которой на момент написания статьи чуть более 670 звезд. Давайте ее установим:

$ pip install robin_stocks

Для большинства действий нужен логин, так что для начала войдем в систему. RobinHood требует многофакторную аутентификацию, так что необходимо ее настроить. Войдите в свою учетную запись, включите двухфакторную аутентификацию и выберите «other» в ответе на вопрос «Какое приложение вы собираетесь использовать?». Вы получите буквенно-цифровой код, который мы применим:

import pyotp import robin_stocks as robinhood RH_USER_EMAIL = >> RH_PASSWORD = >> RH_MFA_CODE = >> timed_otp = pyotp.TOTP(RH_MFA_CODE).now() login = rh.login(RH_USER_EMAIL, RH_PASSWORD, mfa_code=totp)

Купить или продать — дело нехитрое:

# Buying 5 shares of Google rh.order_buy_market(‘GOOG’, 5) # Selling 5 shares of Google rh.order_sell_market(‘GOOG’, 5)

Примеры и варианты использования для продвинутых пользователей можно посмотреть в документации.

Alpaca

Для Alpaca мы используем библиотеку alpaca-trade-api , у которой на GitHub более 700 звезд. Устанавливаем:

$ pip install alpaca-trade-api

Войдите в учетную запись и получите API key ID и секретный ключ, они нужны для входа в систему:

import alpaca_trade_api as alpaca ALPACA_KEY_ID = >> ALPACA_SECRET_KEY = >> # Change to https://api.alpaca.markets for live BASE_URL = ‘https://paper-api.alpaca.markets’ api = alpaca.REST( ALPACA_KEY_ID, ALPACA_SECRET_KEY, base_url=BASE_URL)

Отправлять поручения здесь несколько сложнее, чем в RobinHood:

# Buying 5 shares of Google api.submit_order( symbol=’GOOG’, qty=’5′, side=’buy’, type=’market’, time_in_force=’day’ ) # Selling 5 shares of Google api.submit_order( symbol=’GOOG’, qty=’5′, side=’sell’, type=’market’, time_in_force=’day’ )

Готово! Напомню, что оставлять свои учетные данные в виде Plain Text — чрезвычайно плохая идея. Но не переживайте, на следующем этапе мы перейдем к переменным среды, это намного безопаснее. Теперь давайте развернем модель в облаке и настроим мониторинг.

Деплоймент и мониторинг

Мы собираемся задеплоить нашу систему в AWS Lambda. Для работы это не лучший вариант, поскольку в Lambda нет хранилища, а обученную модель пришлось бы где-то хранить, например в S3.

Но пока обойдемся и этим — запланируем ежедневный запуск Lambda и обучение модели на данных за текущий день. Для мониторинга настроим бот в Telegram, который отправляет сообщение с действием и его результатом. AWS Lambda можно пользоваться бесплатно, если не превышать заданные лимиты; но если вы хотите отправлять очень много сообщений, помните о квотах.

Для начала создадим бота. Я опирался на официальную инструкцию из телеграма:

Следующий этап — деплоймент. Есть несколько способов деплоймента в Lambda. Я собираюсь использовать фреймворк serverless, так что давайте его установим и создадим шаблон.

$ npm install serverless —global $ serverless create —template aws-python3 —path ai_trading_system

Мы создали папку scheduled_tg_bot с тремя файлами: .gitignore , serverless.yml , и handler.py . Serverless.yml определяет деплоймент: что, когда и как будет запущено. А файл handler.py содержит запускаемый код.

import telegram import sys import os CHAT_ID = XXXXXXXX TOKEN = os.environ[‘TELEGRAM_TOKEN’] # The global variables should follow the structure: # VARIABLE = os.environ[‘VARIABLE’] # for instance: # RH_USER_EMAIL = os.environ[‘RH_USER_EMAIL] def do_everything(): # The previous code to get the data, train the model # and send the order to the broker goes here. return ‘The action performed’ def send_message(event, context): bot = telegram.Bot(token=TOKEN) action_performed = do_everything() bot.sendMessage(chat_id=CHAT_ID, text=action_performed)

Нужно поменять CHAT_ID на ID группы, канала или диалога, с которыми бот должен взаимодейстWowать. Здесь можно узнать, как получить ID канала, а здесь — ID группы.

Теперь давайте определим, как запускать код. Откройте serverless.yml и напишите:

org: your-organization-name app: your-app-name service: ai_trading_system frameworkVersion: “>=1.2.0 # If using RobinHood RH_USER_EMAIL: $ RH_PASSWORD: $ RH_MFA_CODE: $ # If using Alpaca ALPACA_KEY_ID: $ ALPACA_SECRET_KEY: $ functions: cron: handler: handler.send_message events: # Invoke Lambda function at 21:00 UTC every day — schedule: cron(00 21 * * ? *)

Этот код сообщает AWS, какая среда выполнения нам нужна, и берет токен телеграма из нашего собственного окружения, чтобы нам не пришлось его развертывать. После этого мы определяем Сron для ежедневного запуска функции в 21:00.

Единственное, что осталось сделать перед деплойментом, это получить учетные данные AWS и установить их как переменные среды вместе с токеном и остальными переменными как переменные среды. Получить учетные данные достаточно просто.

  • перейдите в My Security Credentials — Users — Add user;
  • выберите имя пользователя и Programmatic access;
  • на следующей странице выберите Attach existing policies directly — AdministratorAccess;
  • скопируйте и сохраните Access Key ID и Secret Access Key;

Вот и все. Теперь давайте экспортируем учетные данные AWS и токен телеграма. Откройте терминал и напишите:

$ export AWS_ACCESS_KEY_ID=[your key goes here] $ export AWS_SECRET_ACCESS_KEY=[your key goes here] $ export TELEGRAM_TOKEN=[your token goes here]# If using RobinHood $ export RH_USER_EMAIL=[your mail goes here] $ export RH_PASSWORD=[your password goes here] $ export RH_MFA_CODE=[your mfa code goes here] # If using Alpaca $ export ALPACA_KEY_ID=[your key goes here] $ export ALPACA_SECRET_KEY=[your key goes here]

Установите необходимые пакеты локально и выполните деплоймент в AWS:

$ pip3 install -r requirements.txt -t . —system $ serverless deploy

Готово! Бот будет торговать за нас каждый день в 21:00 и отправлять нам сообщения о совершенном действии. Для апробации концепции неплохо. Пожалуй, можно порадовать приятеля: теперь он может расслабиться и заниматься трейдингом, не заглядывая в смартфон сто раз в день 🙂

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

Команда VK Cloud Solutions развивает собственные ML-решения. Будем признательны, если вы их протестируете и дадите обратную связь. Для тестирования пользователям при регистрации начисляем 3000 бонусных рублей.

Читать по теме:

  • Как дата-сайентистам эффективно сотрудничать с дата-инженерами
  • Четыре хитрости в работе с пайплайнами данных, о которых знают не все
  • Настоящее и будущее дата-инжиниринга

Источник: temofeev.ru

Как утроить доходность биткоина, используя для этого математику, алгоритмы и Python

С помощью алгоритма «золотой линии» я делаю ценовые прогнозы для Bitcoin, Ripple, Ethereum и Dogecoin. В эту статью я закину полный код на языке Python.

Как утроить доходность биткоина, используя для этого математику, алгоритмы и Python

Эта статья будет немного отличаться от того, что я обычно пишу. Те, кто давно следит за мной на Medium или Youtube, уже знакомы с моими прогнозами.

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

Прежде чем мы начнем

В прошлый раз мы отрабатывали известный математический метод на S ну или если вам понадобятся данные о Ripple или Ethereum.

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

А теперь давайте вернемся к нашей структуре API.

Yahoo Finance API потребуется три обязательных параметра в указанном ниже порядке:

  • Tickers (1) Тикеры (1)
  • Start date + End date or Period (2) Дата начала + Дата окончания, или Период (2)
  • Interval (3) Интервал (3)

В нашем случае тикером (параметр 1) будет пара BTC-USD. Также для этого примера мы в качестве периода выберем 7 последних дней (параметр 2) и установим интервал (параметр 3) в 90 минут.

Чтобы вызвать необходимые вам данные, вам придется использовать следующую конструкцию:

0_O9y7mtaqTFXPp2zg.png

Выше описана структура для получения интересующих нас данных.

Прежде чем продолжить, я немного подробнее расскажу о третьем параметре (интервале).

Быстрый поиск возможных интервалов

Я приведу для вас краткий обзор различных вариантов интервалов, которые вы можете настроить с помощью Yahoo Finance API.

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

0_aG-4bjqG-MHCvmz-.png

Выше перечислены интервалы, которые можно выбрать.

Теперь, когда мы задали все три параметра, давайте выполним запрос и проверим выходные данные:

data = yf.download(tickers=’BTC-USD’,period = ‘8d’, interval = ’90m’)

С помощи вышеуказанной строки мы запросим BTC-USD для API Yahoo Finance.

А вот выходные данные, которые вы должны получить:

1_uxIfdaLu8BIfLqlWYm5fWQ.png

Выходные данные о рынке с интервалом в 90 минут

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

Если вам нужна более подробная информация, вы можете перейти по ссылке.

Шаг 3. Разверните свой алгоритм

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

Нам нужно будет вычислить следующие поля:

Для этого мы будем использовать функцию rolling, встроенную в Python, чтобы получить среднее значение n последних периодов. Что касается MA(5), то мы будем применять нашу стратегию в течение 5 последних 90 минут. Это означает, что мы рассчитаем среднюю цену закрытия за последние 7 часов и 30 минут (5 раз по 90 минут).

1_B3YLGIz2r8K7rgo-jT6GdA.png

Для MA(20) мы также будем использовать функцию rolling, но вместо вычисления 5 последних 90-минутных периодов мы рассчитаем среднее значение 20 последних периодов.

А теперь давайте опишем это на языке Python:

#Moving average using Python Rolling function
data[‘MA5’] = data[‘Close’].rolling(5).mean()
data[‘MA20’] = data[‘Close’].rolling(20).mean()

Строка выше использует функцию Python rolling для получения скользящей средней.

Приведенный выше код после выполнения создаст 2 новых столбца для вашего фрейма данных, как показано ниже:

1_X0DhztcTmIEjxnSDcKvhYg.png

Теперь, когда вы определили нужные вам диапазоны, должно появиться 2 дополнительных столбца.

Вот теперь мы можем развернуть свою стратегию и протестировать ее.

Постройте живой график

Последнее, что мы должны сделать, это создать график данных и проверить, можем ли мы предсказать поведение рынка. Я записал эту часть в видео ниже:

Это видео представляет собой пошаговое руководство по кодированию стратегии Золотого Креста.

Вуаля! Мы сделали это.

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

На графике ниже я выделил зеленым цветом благоприятный прогноз, а черным — неблагоприятный.

1_nEo8kZOnHqFvYPASWCWGJw.png

Предположительные выходные данные с сигналами на покупку и продажу

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

# Raw Package
import numpy as np
import pandas as pd
#Data Source
import yfinance as yf
#Data viz
import plotly.graph_objs as go
#Importing market data
data = yf.download(tickers=’BTC-USD’,period = ‘8d’, interval = ’90m’)
#Adding Moving average calculated field
data[‘MA5’] = data[‘Close’].rolling(5).mean()
data[‘MA20’] = data[‘Close’].rolling(20).mean()
#declare figure
fig = go.Figure()
#Candlestick
fig.add_trace(go.Candlestick(x=data.index,
open=data[‘Open’],
high=data[‘High’],
low=data[‘Low’],
close=data[‘Close’], name = ‘market data’))
#Add Moving average on the graph
fig.add_trace(go.Scatter(x=data.index, y= data[‘MA20′],line=dict(color=’blue’, width=1.5), name = ‘Long Term MA’))
fig.add_trace(go.Scatter(x=data.index, y= data[‘MA5′],line=dict(color=’orange’, width=1.5), name = ‘Short Term MA’))
#Updating X axis and graph
# X-Axes
fig.update_xaxes(
rangeslider_visible=True,
rangeselector=dict(
buttons=list([
dict(count=3, label=»3d», step=»days», stepmode=»backward»),
dict(count=5, label=»5d», step=»days», stepmode=»backward»),
dict(count=7, label=»WTD», step=»days», stepmode=»todate»),
dict(step=»all»)
])
)
)
#Show
fig.show()

Финальные мысли

Даже если не все сделки удается сделать идеальными (иногда мы можем не Wowремя входить или выходить из рынка), стратегия золотого креста оказалась полезной в плане увеличения прибыли в тот период, когда биткоин был стабильным.
Быстро сделав нужные расчеты и заплатив за проскальзывание ордера своему личному брокеру, мы бы получили доходность 7,1% за неделю, когда биткоин стабильно торговался на уровне 1,7% за тот же период.

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

Это был интересный опыт. Я увидел, как теория работает на практике.

Не стесняйтесь задавать вопросы. Я постараюсь на все ответить.

Источник: cryptor.net

Рейтинг
( Пока оценок нет )
Загрузка ...
Заработок в интернете или как начать работать дома