Рубрики
Без рубрики

Изучите Python, построив инвестиции AI для Fintech – Урок2: Панды и получение цен на акции

Эта статья была первоначально опубликована по адресу: https: //www.blog.duomly.com/python-course-with-building-a-f … Tagged с помощью Python, Machinelearning, Tutorial, начинающих.

Python & AI Course (4 серии деталей)

Эта статья была первоначально опубликована по адресу: https://www.blog.duomly.com/python-course-with-building-a-fintech-investment-ai-lsalon-2-pandas-and-getting-financial-data

вступление

Добро пожаловать на второй урок удивительного курса Python для ИИ! На последнем уроке мы создали первые миграции базы данных и сделали настройку проекта. Вот URL: Курс Python с созданием AI Fintech Investment AI – Урок 1: Запустите проект

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

Мы будем работать с пандами, некоторыми финансовыми плагинами и сделаем немного рефакторинга.

Кроме того, я научу вас, как создавать команды CLI в Python.

Я не могу дождаться, чтобы научить вас всем этим мощным навыкам, так что давайте начнем как можно скорее!

И если вы предпочитаете видео, вот версия YouTube:

1. Типы изменений в миграциях

В последнем эпизоде мы создали миграции БД и модели базы данных с некоторыми типами.

Сегодня мы немного изменим их, чтобы иметь возможность использовать цены с множеством чисел после десятичного значения.

Для этого нам нужно просто изменить типы в переменной «дате» на «DB. Свидание()”.

Затем нам нужно изменить все целые числа на «DB». Numeric () “. Взгляните на пример ниже.

id = db.Column(db.Integer, primary_key=True)
company = db.Column(db.String())
date = db.Column(db.Date())
openPrice = db.Column(db.Numeric())
highPrice = db.Column(db.Numeric())
lowPrice = db.Column(db.Numeric())
closePrice = db.Column(db.Numeric())
volume = db.Column(db.Numeric())

2. Удалить папку миграции и снова мигрировать

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

Я бы посоветовал обезвреживать БД с нуля.

В качестве первого шага вам нужно удалить каталог «миграции» (если вы создали его на предыдущем уроке).

Далее, открыть терминал и тип:

flask db init

Следующий

flask db migrate

Следующий

flask db upgrade

3. Создайте цены на модуль

Большой! Сейчас мы можем сосредоточиться на следующих функциях и перейти в модуль цен.

Давайте начнем с создания каталога под названием «Цены».

Создайте этот каталог в корне папки.

Затем перейдите в созданный каталог и создайте файл с именем “цена.py”.

4. Установить необходимые зависимости

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

Во -первых, нам нужно создать ифинансирование, что поможет нам связаться с финансовым API и загрузить все необходимые данные о ценах.

Откройте терминал и тип:

pip install yfinance

Далее нам нужно установить панды:

pip install pandas

Последний, который нам нужно установить, – это Pandas DataReader, который мы будем использовать для обработки наших финансовых данных:

pip install pandas_datareader

5.import Все необходимые зависимости

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

Теперь мы можем перейти в файл chious.py и импортировать все эти зависимости.

Давайте посмотрим на пример ниже:

from datetime import date, timedelta

import yfinance as yf
import pandas as pd
from pandas_datareader import data as pdr

from app import app, db
from models.prices import PriceModel

6. Переопределить ифинансирование пандами

Далее нам нужно переопределить ифинансирование с помощью панд.

Эта строка кода должна быть ниже импорта внутри файла chies.py.

yf.pdr_override()

7. Настройка CLI

Мы могли бы сделать это, набрав/комментируя функции, как мы делали в Голанге. Но было бы позор, если бы мы не использовали удобные функции колбы.

Мы можем очень легко определить команды CLI.

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

Давайте взглянем:

@app.cli.command("get-prices")

8. Создать функцию GetPrices

Ниже команды CLI нам нужно указать функцию, которую мы захотим уволить.

В этом случае нам нужна функция с именем “GetPrices”.

Мы будем использовать это, чтобы начать получать цены.

@app.cli.command("get-prices")
def getPrices():

9. Создайте список акций, которые нам нужно будет контролировать

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

Мы должны создать список и поместить там все символы NASDAQ в виде строк.

Я использовал самые тяжелые 50 из NASDAQ, но вы можете указать любые компании, для которых вы хотели бы получить данные.

stockList = ['MSFT', 'AAPL', 'AMZN', 'FB', 'GOOGL', 'GOOG', 'GOOGL', 'INTC', 'NVDA', 'CSCO', 'ADBE', 'NFLX', 'PEP', 'PYP', 'CMCSA', 'TSLA', 'COST', 'GOOGL', 'AMGN', 'TMUS', 'AVGO', 'CHTR', 'TXN', 'GILD', 'QCOM', 'SBUX', 'INTU', 'MDLZ', 'VRTX', 'FISV', 'BKNG', 'ISRG', 'REGN', 'ADP', 'AMD', 'ATVI', 'CSX', 'BIIB', 'ILMN', 'MU', 'AMAT', 'JD', 'ADSK', 'MELI', 'ADI', 'LRCX', 'MNST', 'WBA', 'EXC', 'KHC', 'LULU', 'EA']

10. Итерация через список акций и функции вызова GetPrice

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

Для каждой итерации акций мы должны назвать функцию с именем «GetPrice» и пройти «акцию» в качестве аргумента.

for stock in stockList:
 getPrice(stock)

11. Создать функцию GetPrice

Чтобы иметь возможность его использования, нам нужно создать функцию «GetPrice».

Настройка «Сток» в качестве имени параметра в функции.

def getPrice(stock):

12. Дата настройки

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

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

Я буду настроен сегодня как последний день, и день, который был 31 день назад, это будет моим временным диапазоном для цен на акции.

today = date.today()
monthAgo = today - timedelta(days=31)

13. Скачать цены на акции

На следующем шаге мы можем начать получать данные!

Посмотрите на пример ниже. Мы используем pandas_datareader. Затем я настроил акции, которые хочу получить, дату начала и дату окончания, которая является сегодня.

data = pdr.get_data_yahoo(stock, start=monthAgo, end=today)

14. Переформатировать данные Pandas

Чтобы иметь лучшую жизнь и более легкую манипулирование данными, нам нужно немного переформатировать это.

Таким образом, мы сможем итерации через эти данные гораздо более удобны.

df = pd.DataFrame(data)

15. Итерация через все строки и передавать данные в функцию addprice

Сейчас это момент, когда мы можем перевернуть все цены для компании XX.

Мы используем здесь метод «df.iterrows ()», потому что все строки из Pandas.

Затем мы называем «AddPrice» и передаем необходимые данные в качестве аргументов.

Мы передаем всю «строку», которую мы разделим позже, затем мы передаем индекс (это данные здесь), но отформатированы.

И мы передаем «акции», чтобы узнать, за какую цену это цена.

for index, row in df.iterrows():
  addPrice(row, index.strftime("%Y-%m-%d"), stock)

16. Создать функцию addprice

Чтобы сделать возможным использование «добавления», нам нужно определить эту функцию.

Используйте «Цена», «Дата» и «Сток», как Params.

def addPrice(price, date, stock):

17. Настройка данных для Pricemodel

Мы близки к финалу.

На этом этапе мы должны настроить данные, которые мы получили от Financial API.

Нам нужно соответствовать нашему Pricemodel, которую мы создали в уроке Python Course1.

new_price = PriceModel(date=date, company=stock, openPrice=price['Open'], highPrice=price['High'], lowPrice=price['Low'], closePrice=price['Close'], volume=price['Volume'])

18. Добавить цену в базу данных

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

Не забывайте о «db.session.commit ()», который обновит нашу базу данных.

db.session.add(new_price)
db.session.commit()

19. Импорт GetPrices в app.py

Поздравляю!

Модуль цен теперь готов. Вы можете импортировать его внутри app.py.

Добавьте эту строку кода под импортом “Pricemodel”.

from prices.prices import getPrices

20. Запустить приготовления

Вы можете проверить свое приложение сейчас.

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

Если да, просто откройте терминал в проекте и тип:

flask get-prices

Вывод

Поздравляю!

Теперь ваш проект имеет сотни финансовых записей. Они готовы начать работать с искусственным интеллектом, который мы построим.

Что важнее, вы узнали, где искать цены на акции, как их выбрать и как сохранить их в базе данных.

Репозиторий кода для курса Python Урок 2 здесь: https://github.com/duomly/python-ai-investment-fintech/tree/python-ai-course-lesson-2

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

Продолжайте учиться, и я очень взволнован, у меня есть шанс научить вас, как создать мощный инвестиционный ИИ, который может предсказать цены на акции!

Спасибо за чтение, Радек из Duomly

Python & AI Course (4 серии деталей)

Оригинал: “https://dev.to/duomly/learn-python-by-building-investment-ai-for-fintech-lesson2-pandas-and-getting-stock-prices-op5”