init
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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):
|
||||
stock_data = []
|
||||
stock = df_usa_stock[item_code]
|
||||
stockDict = stock.to_dict()
|
||||
stockList = list(stock.to_dict())
|
||||
for i, ymd in enumerate(stockDict):
|
||||
if i > 0:
|
||||
diff = stockDict[ymd] - stockDict[stockList[i-1]]
|
||||
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:
|
||||
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})
|
||||
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 = usa_stock[item_code]
|
||||
for i, ymd in enumerate(dateList):
|
||||
if i > 0:
|
||||
diff = stock['close'][ymd] - stock['close'][dateList[i-1]]
|
||||
else:
|
||||
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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user