스토캐스틱, RSI 추가
This commit is contained in:
@@ -377,13 +377,13 @@ class Analyzer:
|
|||||||
|
|
||||||
return status, buy_price
|
return status, buy_price
|
||||||
|
|
||||||
def getPositionalEnergy(self, stock, i):
|
def getPositionalEnergy(self, stock, last_index):
|
||||||
# 260 (= 52 * 5)일 중 가장 찾은 금액과 가장 높았던 금액 중 현재가의 위치 계산
|
# 260 (= 52 * 5)일 중 가장 찾은 금액과 가장 높았던 금액 중 현재가의 위치 계산
|
||||||
|
|
||||||
top = stock[i]['close']
|
top = stock[last_index]['close']
|
||||||
bottom = stock[i]['close']
|
bottom = stock[last_index]['close']
|
||||||
|
|
||||||
for i in range(8, 260):
|
for i in range(1, 260):
|
||||||
if i > len(stock) or not stock[-i]:
|
if i > len(stock) or not stock[-i]:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import re
|
|||||||
import json
|
import json
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import requests
|
import requests
|
||||||
|
import math
|
||||||
|
|
||||||
class Queue(object):
|
class Queue(object):
|
||||||
def __init__(self, max):
|
def __init__(self, max):
|
||||||
@@ -144,7 +145,8 @@ class StockCrawler:
|
|||||||
stocks.append({"NAME": 'KODEX 은행', "CODE": "091170", "PRICE": []})
|
stocks.append({"NAME": 'KODEX 은행', "CODE": "091170", "PRICE": []})
|
||||||
stocks.append({"NAME": 'TIGER 탄소효율그린뉴딜', "CODE": "376410", "PRICE": []})
|
stocks.append({"NAME": 'TIGER 탄소효율그린뉴딜', "CODE": "376410", "PRICE": []})
|
||||||
|
|
||||||
for stock in stocks:
|
for i, stock in enumerate(stocks):
|
||||||
|
print (i, stock["NAME"], stock["CODE"])
|
||||||
cursor.execute('SELECT * FROM ' + tableName + ' WHERE CODE=?', (stock["CODE"],))
|
cursor.execute('SELECT * FROM ' + tableName + ' WHERE CODE=?', (stock["CODE"],))
|
||||||
result = cursor.fetchone()
|
result = cursor.fetchone()
|
||||||
if result != None:
|
if result != None:
|
||||||
@@ -213,6 +215,8 @@ class StockCrawler:
|
|||||||
lastDay = ""
|
lastDay = ""
|
||||||
if len(stock) > 0 and len(stock["PRICE"]) - 1 > 0:
|
if len(stock) > 0 and len(stock["PRICE"]) - 1 > 0:
|
||||||
lastDay = stock["PRICE"][len(stock["PRICE"]) - 1]["DATE"].replace("-", ".")
|
lastDay = stock["PRICE"][len(stock["PRICE"]) - 1]["DATE"].replace("-", ".")
|
||||||
|
|
||||||
|
date_set = set()
|
||||||
lastPage = False
|
lastPage = False
|
||||||
# 1페이지에서 1000페이지의 데이터만 가져오기
|
# 1페이지에서 1000페이지의 데이터만 가져오기
|
||||||
for page in range(1, self.limit_page_count):
|
for page in range(1, self.limit_page_count):
|
||||||
@@ -220,14 +224,23 @@ class StockCrawler:
|
|||||||
pg_url = '{url}&page={page}'.format(url=url, page=page)
|
pg_url = '{url}&page={page}'.format(url=url, page=page)
|
||||||
#html = pd.read_html(pg_url, header=0)
|
#html = pd.read_html(pg_url, header=0)
|
||||||
html = pd.read_html(requests.get(pg_url, headers=self.header).text)
|
html = pd.read_html(requests.get(pg_url, headers=self.header).text)
|
||||||
count = 0
|
|
||||||
for date in html[0].날짜.values:
|
for date in html[0].날짜.values:
|
||||||
if type(date) is str:
|
if type(date) is str:
|
||||||
count += 1
|
if date in date_set:
|
||||||
|
lastPage = True
|
||||||
|
break
|
||||||
|
date_set.add(date)
|
||||||
|
|
||||||
if date == lastDay:
|
if date == lastDay:
|
||||||
lastPage = True
|
lastPage = True
|
||||||
df = df.append(html[0], ignore_index=True)
|
df = df.append(html[0], ignore_index=True)
|
||||||
break
|
break
|
||||||
|
df = df.append(html[0], ignore_index=True)
|
||||||
|
if lastPage:
|
||||||
|
print("\t- lastpage:", page)
|
||||||
|
break
|
||||||
|
|
||||||
|
"""
|
||||||
if count == 10:
|
if count == 10:
|
||||||
df = df.append(html[0], ignore_index=True)
|
df = df.append(html[0], ignore_index=True)
|
||||||
if lastPage:
|
if lastPage:
|
||||||
@@ -238,6 +251,7 @@ class StockCrawler:
|
|||||||
lastPage = True
|
lastPage = True
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
"""
|
||||||
|
|
||||||
# df.dropna()를 이용해 결측값 있는 행 제거
|
# df.dropna()를 이용해 결측값 있는 행 제거
|
||||||
df = df.dropna()
|
df = df.dropna()
|
||||||
|
|||||||
Reference in New Issue
Block a user