fintech를 위한 투자 AI 구축을 통해 Python-제2과: 판다와 주식 가격 얻기

본문은 처음에 다음과 같이 발표되었다.
https://www.blog.duomly.com/python-course-with-building-a-fintech-investment-ai-lesson-2-pandas-and-getting-financial-data

소개


두 번째 수업에 오신 무서운 파이썬 수업의 인공지능을 환영합니다!

지난 시간에 우리는 첫 번째 데이터베이스 이전을 구축하고 프로젝트 설정을 진행했다.

다음은 URL입니다.

Python course with building a fintech investment AI – Lesson 1: Start the project
오늘 우리는 매우 흥분되는 것을 구축하고 금융 데이터베이스에 중점을 두고 이를 이용하여 우리의 인공지능을 훈련시킬 것이다.
우리는 일부 금융 플러그인pandas와 합작하고 재구성할 것이다.
또한 Python에서 CLI 명령을 생성하는 방법을 알려 드리겠습니다.
나는 지체하지 않고 너에게 이 모든 강력한 기술을 알려주고 싶으니, 우리 가능한 한 빨리 시작하자!
만약 당신이 동영상을 좋아한다면, 여기는 유튜브 버전입니다.

1. 마이그레이션의 변경 유형


지난 회에서 우리는 일부 유형의 데이터베이스 이전과 데이터베이스 모델을 만들었다.
오늘 우리는 소수점을 사용한 후에 많은 숫자의 가격을 사용할 수 있도록 그것에 대해 약간의 변경을 진행할 것이다.
이를 위해 변수'date'의 형식을'db.date ()'로 변경하기만 하면 됩니다.
이제 모든 정수를 "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. 마이그레이션 폴더를 삭제하고 다시 마이그레이션


현재, 우리는 변경 사항을 저장하고 새로운 변경으로 데이터베이스를 업데이트해야 한다.
처음부터 DB를 초기화하는 것이 좋습니다.
첫 번째 단계로 "migrations"디렉터리를 삭제해야 합니다. (이전 시간에 만들었으면)
그런 다음 터미널을 열고 다음을 입력합니다.
flask db init
다음
flask db migrate
다음
flask db upgrade

3. 모듈 가격 생성


너무 좋아요.
우리는 이제 다음 기능에 관심을 가지고 가격 모듈에 들어갈 수 있다.
"prices"라는 디렉터리를 만드는 것부터 시작합시다.
폴더의 루트 디렉터리에 이 디렉터리를 만듭니다.
다음에 만든 디렉터리에 들어가서 "prices.py"라는 파일을 만듭니다.

4. 필요한 의존 항목 설치


적당한 개발을 하기 전에 우리는 AI를 구축하는 데 필요한 모든 의존항을 설치해야 한다는 것을 기억해야 한다.
우선, 우리는 yfinance를 만들어야 한다. 이것은 우리가 금융 API를 연결하고 가격과 관련된 모든 필요한 데이터를 다운로드하는 데 도움을 줄 것이다.
터미널을 열고 다음을 입력합니다.
pip install yfinance
다음은 판다를 설치해야 합니다.
pip install pandas
우리가 설치해야 할 마지막 것은 pandas datareader입니다. 우리는 그것을 사용하여 우리의 재무 데이터를 처리할 것입니다.
pip install pandas_datareader

필요한 모든 의존 항목 가져오기


따라서 우리는 발전에 필요한 모든 필요한 재료를 준비했다.
이제 우리는 가격을 토론할 수 있다.모든 의존 항목을 가져옵니다.
다음 예제를 살펴보겠습니다.
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. 판다로 yfinance 덮어쓰기


다음으로, 우리는 판다로 나의 재정을 커버해야 한다.
이 코드 은행은 가격 내의 수입보다 낮아야 한다.py 파일.
yf.pdr_override()

7.Setup CLI


우리는 golang에서처럼 입력/주석 함수를 통해 이 점을 실현할 수 있다.
그러나 만약 우리가 플라스크를 사용하는 사용자 친선 기능이 없다면 유감일 것이다.
CLI 명령을 쉽게 정의할 수 있습니다.
'app'장식기를 사용하고 명령 정의 아래의 논리를 촉발해야 하는 명령을 정의하면 충분합니다.
살펴보겠습니다.
@app.cli.command("get-prices")

8. 함수 getPrices 만들기


CLI 명령 아래에서 시작할 함수를 지정해야 합니다.
이 경우 getPrices라는 함수가 필요합니다.
우리는 이 점을 이용하여 가격을 얻기 시작할 것이다.
 
@app.cli.command("get-prices")
def getPrices():

9. 우리가 감시해야 할 주식 목록 만들기


다음 단계에서, 우리는 우리가 가격을 정하기를 원하는 회사 기호를 지정해야 한다.
우리는 모든 나스닥 기호를 문자열로 두는 목록을 만들어야 한다.
나는 나스닥 지수에서 가장 무거운 50개를 사용하지만, 너는 네가 데이터를 얻고 싶은 어떤 회사를 지정할 수 있다.
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를 호출합니다


이 단계에서, 우리는 모든 나스닥 기호를 가져와서, 그것들을 두루 훑어볼 for 순환에 넣어야 한다.
주식의 매번 교체에 대해 우리는'getPrice'라는 함수를 호출하고'stock'을 매개 변수로 전달해야 한다.
for stock in stockList:
 getPrice(stock)

11. 함수 getPrice 만들기


그것을 사용할 수 있도록 함수'getPrice'를 만들어야 합니다.
"stock"을 함수의 매개 변수 이름으로 설정합니다.
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 만들기


"addPrice"를 사용할 수 있도록 함수를 정의해야 합니다.
가격, 날짜 및 인벤토리를 매개변수로 사용합니다.
def addPrice(price, date, stock):

17. PriceModel 데이터 설정


우리는 결승전에 가까워졌다.
이 단계에서 우리는 재무 API에서 얻은 데이터를 설정해야 한다.
Python 과정 1과에서 작성한 가격 모델에 적응해야 합니다.
new_price = PriceModel(date=date, company=stock, openPrice=price['Open'], highPrice=price['High'], lowPrice=price['Low'], closePrice=price['Close'], volume=price[‚Volume'])

18. 데이터베이스에 가격 추가


만약 우리의 데이터가 이미 준비가 되었다면, 데이터베이스에 새로운 기록을 만드는 것 외에, 우리는 다른 선택이 없다.
"db"를 잊지 마세요.한바탕commit ()", 이것은 우리의 데이터베이스를 업데이트할 것입니다.
db.session.add(new_price)
db.session.commit()

19. 응용 프로그램에서 getPrices를 가져옵니다.회사 명


축하
가격 모듈이 이미 준비되었다.응용 프로그램에서 가져올 수 있습니다.py.
PriceModel 가져오기 아래에 이 행 코드를 추가합니다.
from prices.prices import getPrices

20. Run get 가격


너는 이제 너의 응용 프로그램을 테스트할 수 있다.
시작하기 전에flask 앱 변수가 올바르게 설정되었는지 확인하십시오.
만약 그렇다면 프로젝트에서 터미널을 열고 다음을 입력하십시오.
flask get-prices

결론


축하
현재 너의 항목은 수백 개의 재무 기록이 있다.
그들은 이미 인공지능을 사용하기 시작할 준비가 되어 있으며, 우리는 인공지능을 구축할 것이다.
더 중요한 것은 주식 가격을 어디서 찾는지, 어떻게 선택하는지, 데이터베이스에 저장하는지 배웠다는 것이다. 
Python 과정 2과 코드 라이브러리는 다음과 같습니다.
https://github.com/Duomly/python-ai-investment-fintech/tree/Python-AI-course-Lesson-2
다음 시간에 우리는 우리의 알고리즘을 위해 첫 번째 인공지능 논리를 구축하는 데 중점을 둘 것이다.
계속 공부하면 저는 매우 흥분합니다. 저는 당신에게 강력한 투자 인공지능을 구축하여 주식 가격을 예측할 수 있는 방법을 가르쳐 줄 기회가 있습니다!

읽어주셔서 감사합니다.
Duomly의 Radek.

좋은 웹페이지 즐겨찾기