This commit is contained in:
dosangyoon
2022-03-19 21:53:12 +09:00
parent 4068863316
commit 5610919529
2 changed files with 45 additions and 18 deletions

View File

@@ -16,7 +16,7 @@ PROJECT_HOME = os.path.join(os.path.dirname(os.path.join(os.path.dirname(os.path
start = time.time()
stockFileName = PROJECT_HOME + '/resources/stock.db'
"""
# 재무제표는 3개월마다 다운로드를 한다.
fnGuideCrawler = FnGuideCrawler()
print("[KOSPI 상장기업 재무제표 다운로드]")
@@ -49,7 +49,9 @@ print("\n[종목 분석]")
inFileName = PROJECT_HOME + '/resources/stock.db'
analyzerSqlite = AnalyzerSqlite(PROJECT_HOME, stockFileName)
analyzerSqlite.analyze()
"""
analyzerSqlite = AnalyzerSqlite(PROJECT_HOME, stockFileName)
print("\n[종목 결정]")
day = datetime.datetime.today().strftime("%Y%m%d")
outPath = PROJECT_HOME + "/resources/analysis/" + day

View File

@@ -1,5 +1,5 @@
# https://bigdata-sk.tistory.com/10
from datetime import datetime, timedelta
import os
import pandas as pd
import re
@@ -223,7 +223,6 @@ class StockCrawler:
start_time = time.time()
pd.options.display.float_format = '{:.4f}'.format
pd.set_option('display.max_columns', None)
@@ -236,25 +235,51 @@ class StockCrawler:
'AAPL': 'Apple Inc.','MSFT': 'Microsoft Corporation','GOOG': 'Alphabet Inc.','NVDA': 'NVIDIA Corporation',
'FB': 'Meta Platforms, Inc.', 'ASML': 'ASML Holding','AVGO': 'Broadcom Inc.','COST': 'Costco Wholesale Corporation',
'INTC': 'Intel Corporation','AMD': 'Advanced Micro Devices, Inc.','QCOM': 'QUALCOMM Incorporated',
'HON': 'Honeywell International Inc.','VZ': 'Verizon Communications Inc.','EBAY': 'eBay Inc.',
'TSM': 'Taiwan Semiconductor Manufacturing','V': 'Visa Inc.','WMT': 'Walmart Inc.','BABA': 'Alibaba Group Holding',
'KO': 'Coca-Cola','DIS': 'Walt Disney','T': 'AT&T Inc.'}
df_price = pd.DataFrame(columns=usa_stock_code)
for ticker in usa_stock_code:
df_price[ticker] = pdr.get_data_yahoo(ticker)['Adj Close']
df_usa_stock = df_price.dropna(axis=0)
'HON': 'Honeywell International Inc.','TSM': 'Taiwan Semiconductor Manufacturing','V': 'Visa Inc.',
'WMT': 'Walmart Inc.','BABA': 'Alibaba Group Holding','KO': 'Coca-Cola','DIS': 'Walt Disney','T': 'AT&T Inc.'}
for idx, item_code in enumerate(df_usa_stock):
conn = sqlite3.connect(inFileName)
cursor = conn.cursor()
usa_stock = {}
for ticker in usa_stock_code:
cursor.execute('SELECT * FROM ' + tableName + ' WHERE CODE=?', (ticker,))
result = cursor.fetchone()
if result == None:
start = pd.to_datetime('2017-01-01')
end = pd.to_datetime(datetime.today().strftime('%Y-%m-%d'))
else:
start = (datetime.today() - timedelta(days=300)).strftime('%Y-%m-%d')
end = pd.to_datetime(datetime.today().strftime('%Y-%m-%d'))
data = pdr.get_data_yahoo(ticker, start, end)
usa_stock[ticker] = {
'close': data['Close'].to_dict(),
'open': data['Open'].to_dict(),
'high': data['High'].to_dict(),
'low': data['Low'].to_dict(),
'volume': data['Volume'].to_dict()
}
cursor.close()
conn.close()
dateList = list(usa_stock['SQQQ']['close'])
for idx, item_code in enumerate(usa_stock):
stock_data = []
stock = df_usa_stock[item_code]
stockDict = stock.to_dict()
stockList = list(stock.to_dict())
for i, ymd in enumerate(stockDict):
stock = usa_stock[item_code]
for i, ymd in enumerate(dateList):
if i > 0:
diff = stockDict[ymd] - stockDict[stockList[i-1]]
diff = stock['close'][ymd] - stock['close'][dateList[i-1]]
else:
diff = stockDict[ymd]
stock_data.append({'CODE':item_code, 'NAME':item_name[item_code], 'ymd': ymd.strftime('%Y.%m.%d'), 'close': round(stockDict[ymd], 2), 'diff': round(diff, 2), 'open': round(stockDict[ymd], 2), 'high': round(stockDict[ymd], 2), 'low': round(stockDict[ymd], 2), 'volume': 0})
diff = stock['close'][ymd]
stock_data.append({
'CODE':item_code, 'NAME':item_name[item_code], 'ymd': ymd.strftime('%Y.%m.%d'),
'close': round(stock['close'][ymd], 2), 'diff': round(diff, 2), 'open': round(stock['open'][ymd], 2),
'high': round(stock['high'][ymd], 2), 'low': round(stock['low'][ymd], 2), 'volume': stock['volume'][ymd]
})
stock_data = reversed(stock_data)