init
This commit is contained in:
@@ -23,8 +23,8 @@ class HTS_Stocks (HTS):
|
||||
analyzed_day = None
|
||||
MAX_BUY_PRICE = None
|
||||
|
||||
conn = None
|
||||
cursor = None
|
||||
conn_stock = None
|
||||
cursor_stock = None
|
||||
|
||||
def __init__(self, RESOURCE_PATH):
|
||||
super().__init__(RESOURCE_PATH)
|
||||
@@ -38,23 +38,20 @@ class HTS_Stocks (HTS):
|
||||
|
||||
self.analyzed_day = 120
|
||||
self.MAX_BUY_PRICE = 50000
|
||||
|
||||
return
|
||||
|
||||
def connect2DB(self, dbfile_name):
|
||||
try:
|
||||
self.conn = sqlite3.connect(os.path.join(self.RESOURCE_PATH, dbfile_name))
|
||||
self.cursor = self.conn.cursor()
|
||||
except:
|
||||
return False
|
||||
return True
|
||||
def connect2StockDB(self):
|
||||
|
||||
def disconnect(self):
|
||||
try:
|
||||
self.cursor.close()
|
||||
self.conn.close()
|
||||
except:
|
||||
return False
|
||||
return True
|
||||
self.conn_stock = sqlite3.connect(os.path.join(self.RESOURCE_PATH, "stock.db"))
|
||||
self.cursor_stock = self.conn_stock.cursor()
|
||||
return
|
||||
|
||||
def disconnectStockDB(self):
|
||||
|
||||
self.cursor_stock.close()
|
||||
self.conn_stock.close()
|
||||
return
|
||||
|
||||
def getSellingPrice(self, log_time, stock_code, final_price, without_loss=False):
|
||||
# final_price와 diff를 받으면, 해당 가격으로 그냥 매도한다는 의미
|
||||
@@ -86,31 +83,34 @@ class HTS_Stocks (HTS):
|
||||
|
||||
return orderNum, None, None, None
|
||||
|
||||
def valid_company(self):
|
||||
def getCompanyInfo(self):
|
||||
|
||||
self.cursor.execute('SELECT distinct code, name FROM stock order by code')
|
||||
all_stocks = self.cursor.fetchall()
|
||||
|
||||
valid_company = set()
|
||||
self.cursor.execute('select CODE, NAME, max(ymd) as ymd from fnguide where type != "E" group by 1 order by total_assets desc')
|
||||
items = self.cursor.fetchall()
|
||||
self.cursor_stock.execute('select CODE, NAME, max(ymd) as ymd from fnguide where type != "E" group by 1 order by total_assets desc')
|
||||
items = self.cursor_stock.fetchall()
|
||||
for item in items:
|
||||
valid_company.add(item[0])
|
||||
return valid_company
|
||||
|
||||
return all_stocks, valid_company
|
||||
|
||||
def buyRealTime(self, today, n = 200):
|
||||
self.connect2DB("stock.db")
|
||||
self.connect2DB("hts.db")
|
||||
self.connect2StockDB()
|
||||
|
||||
print ("START...")
|
||||
THIS_TIME = datetime.now()
|
||||
|
||||
valid_company = self.valid_company()
|
||||
|
||||
self.cursor.execute('SELECT distinct code, name FROM stock order by code')
|
||||
items = self.cursor.fetchall()
|
||||
all_stocks, valid_company = self.getCompanyInfo()
|
||||
|
||||
while datetime.strptime(today + " 070000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 153100", '%Y%m%d %H%M%S'):
|
||||
|
||||
# 1515 까지만 매수를 시도한다.
|
||||
if datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') < THIS_TIME < datetime.strptime(today + " 151500", '%Y%m%d %H%M%S'):
|
||||
|
||||
for idx, item in enumerate(items):
|
||||
for idx, item in enumerate(all_stocks):
|
||||
if THIS_TIME < datetime.strptime(today + " 090000", '%Y%m%d %H%M%S') or datetime.strptime(today + " 151500", '%Y%m%d %H%M%S') < THIS_TIME:
|
||||
break
|
||||
|
||||
@@ -122,7 +122,7 @@ class HTS_Stocks (HTS):
|
||||
continue
|
||||
print(idx, stock_code, stock_name, ", CODE: ", stock_code, ", NAME: ", stock_name)
|
||||
|
||||
stock = self.stockStatus.fetchLastData(self.cursor, stock_code, n)
|
||||
stock = self.stockStatus.fetchLastData(self.cursor_stock, stock_code, n)
|
||||
try:
|
||||
self.getRealTime_DailyCheck(today, stock_code, stock)
|
||||
data = self.stockStatus.analyze(stock, self.analyzed_day)
|
||||
@@ -205,6 +205,7 @@ class HTS_Stocks (HTS):
|
||||
time.sleep(10)
|
||||
THIS_TIME = datetime.now()
|
||||
|
||||
self.disconnectStockDB()
|
||||
self.disconnect()
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user