This commit is contained in:
dsyoon
2023-02-18 13:49:21 +09:00
parent 616cc31a1e
commit 501d874fdd

View File

@@ -38,7 +38,6 @@ class HTS_Stocks (HTS):
self.orderChecker = OrderChecker(self.RESOURCE_PATH, "STOCK")
self.analyzed_day = 120
self.MAX_BUY_PRICE = 300000
return
@@ -108,13 +107,13 @@ class HTS_Stocks (HTS):
self.cursor_stock.execute('SELECT distinct code, name FROM stock order by code')
all_stocks = self.cursor_stock.fetchall()
valid_company = set()
self.cursor_stock.execute('select CODE, NAME, max(ymd) as ymd from fnguide where type != "E" group by 1 order by total_assets desc')
valid_company = dict()
self.cursor_stock.execute('select CODE, NAME, max(ymd) as ymd from fnguide where type != "E" group by 1 order by net_profit desc')
items = self.cursor_stock.fetchall()
for item in items:
valid_company.add(item[0])
for i, item in enumerate(items):
valid_company[item[0]] = i
return all_stocks, valid_company
return all_stocks, list(valid_company)
def getSlowK(self, stock_code):
slow_k_week, slow_k_month = -1, -1
@@ -129,6 +128,21 @@ class HTS_Stocks (HTS):
return slow_k_week, slow_k_month
def getMaxPrice(self, code, valid_company):
max_price = 100000
if code in valid_company:
if 0 < valid_company[code] <= 250:
max_price = 300000
elif 250 < valid_company[code] <= 500:
max_price = 250000
elif 500 < valid_company[code] <= 1000:
max_price = 200000
elif 1000 < valid_company[code] <= 1500:
max_price = 150000
else:
max_price = 100000
return max_price
def buyRealTime(self, today, n = 200):
a,b = self.getSlowK("001430")
@@ -192,9 +206,10 @@ class HTS_Stocks (HTS):
bs_buy_price = bsLine['buy'][last_index]
bs_buy_weight = bsLine['buy_weight'][last_index]
buy_count = int(math.ceil(self.MAX_BUY_PRICE / bs_buy_price))
if self.MAX_BUY_PRICE <= bs_buy_price < 2 * self.MAX_BUY_PRICE:
buy_count = int(2 * self.MAX_BUY_PRICE / bs_buy_price)
MAX_BUY_PRIFE = self.getMaxPrice(stock_code, valid_company)
buy_count = int(math.ceil(MAX_BUY_PRIFE / bs_buy_price))
if MAX_BUY_PRIFE <= bs_buy_price < 2 * MAX_BUY_PRIFE:
buy_count = int(2 * MAX_BUY_PRIFE / bs_buy_price)
if buy_count > 0:
# 매수를 주문한다.