init
This commit is contained in:
43
HTS_etf.py
43
HTS_etf.py
@@ -23,8 +23,6 @@ from hts.BuySellChecker import BuySellChecker
|
||||
class HTS_etf(HTS):
|
||||
RESOURCE_PATH = None
|
||||
SELL_GAP = None
|
||||
stock_code = None
|
||||
stock_name = None
|
||||
buy_count = None
|
||||
orderChecker = None
|
||||
buySellChecker = None
|
||||
@@ -43,7 +41,6 @@ class HTS_etf(HTS):
|
||||
|
||||
self.RESOURCE_PATH = RESOURCE_PATH
|
||||
|
||||
self.orderChecker = OrderChecker(self.RESOURCE_PATH, self.stock_code)
|
||||
self.bot = TelegramBot()
|
||||
self.stockStatus = StockStatus(RESOURCE_PATH)
|
||||
|
||||
@@ -53,7 +50,7 @@ class HTS_etf(HTS):
|
||||
self.macd = MACD()
|
||||
self.ichimokuCloud = IchimokuCloud()
|
||||
|
||||
self.buySellChecker = BuySellChecker(self.RESOURCE_PATH, self.stock_code)
|
||||
self.buySellChecker = BuySellChecker(self.RESOURCE_PATH)
|
||||
|
||||
return
|
||||
|
||||
@@ -84,14 +81,14 @@ class HTS_etf(HTS):
|
||||
check = True
|
||||
else:
|
||||
if jangoDic[code]['매도가능'] > 0:
|
||||
#if jangoDic[code]['평가손익'] < -0.6 or 1.0 < jangoDic[code]['평가손익']:
|
||||
if sell_count == 0:
|
||||
self.requestOrder(OrderType.sell, code[1:], jangoDic[code]['매도가능'], jangoDic[code]['현재가'])
|
||||
else:
|
||||
self.requestOrder(OrderType.sell, code[1:], sell_count, jangoDic[code]['현재가'])
|
||||
self.bot.sendMsg("Profit {:.2f}, {} ({})".format(jangoDic[code]['평가손익'], stock_code, stock_name))
|
||||
check = True
|
||||
else:
|
||||
if jangoDic[code]['평가손익'] < -0.6 or 2.0 < jangoDic[code]['평가손익']:
|
||||
if sell_count == 0:
|
||||
self.requestOrder(OrderType.sell, code[1:], jangoDic[code]['매도가능'], jangoDic[code]['현재가'])
|
||||
else:
|
||||
self.requestOrder(OrderType.sell, code[1:], sell_count, jangoDic[code]['현재가'])
|
||||
self.bot.sendMsg("Profit {:.2f}, {} ({})".format(jangoDic[code]['평가손익'], stock_code, stock_name))
|
||||
check = True
|
||||
else:
|
||||
if jangoDic[code]['매도가능'] > 0:
|
||||
#if jangoDic[code]['평가손익'] < -0.6 or 1.0 < jangoDic[code]['평가손익']:
|
||||
if sell_count == 0:
|
||||
@@ -441,11 +438,13 @@ class HTS_etf(HTS):
|
||||
|
||||
def buyRealTime(self, stock, data, data_signal, MAX_BUY_PRICE, BUY_LIST):
|
||||
|
||||
self.orderChecker = OrderChecker(self.RESOURCE_PATH, stock['stock_code'])
|
||||
|
||||
# 매도를 체크한다.
|
||||
check = self.sellStocks(stock_code=self.stock_code)
|
||||
check = self.sellStocks(stock_code=stock['stock_code'], stock_name=stock['stock_name'])
|
||||
|
||||
# jangoDic[code]['장부가'], jangoDic[code]['평가금액'], jangoDic[code]['평가손익'],
|
||||
buy_avg, amount, profit = self.getBallance(self.stock_code)
|
||||
buy_avg, amount, profit = self.getBallance(stock['stock_code'])
|
||||
if check or buy_avg == 0:
|
||||
BUY_LIST['buy_avg'] = 0
|
||||
BUY_LIST['buy_count'] = 0
|
||||
@@ -454,33 +453,33 @@ class HTS_etf(HTS):
|
||||
time.sleep(0.1)
|
||||
|
||||
# 사야 할 시점과 팔아야 할 시점을 체크한다.
|
||||
bsLine1 = self.buySellChecker.checkTransaction1(self.stock_code, MAX_BUY_PRICE, data, data_signal, BUY_LIST, isRealTime=True)
|
||||
bsLine1 = self.buySellChecker.checkTransaction1(stock['stock_code'], MAX_BUY_PRICE, data, data_signal, BUY_LIST, isRealTime=True)
|
||||
|
||||
if 'sell_price' in bsLine1:
|
||||
sell_price = bsLine1['sell_price'][-1]
|
||||
sell_count = bsLine1['sell_count'][-1]
|
||||
sell_type = bsLine1['sell_type'][-1]
|
||||
if 0 < sell_price:
|
||||
check = self.sellStocks(stock_code=self.stock_code, bs_sell_price=sell_price)
|
||||
check = self.sellStocks(stock_code=stock['stock_code'], stock_name=stock['stock_name'], bs_sell_price=sell_price)
|
||||
if check:
|
||||
self.orderChecker.sell(datetime.today().strftime('%Y%m%d'), self.stock_code)
|
||||
self.orderChecker.sell(datetime.today().strftime('%Y%m%d'), stock['stock_code'])
|
||||
BUY_LIST['buy_avg'] = 0
|
||||
BUY_LIST['buy_count'] = 0
|
||||
BUY_LIST['buy_list'].clear()
|
||||
self.bot.sendMsg("Profit {:.2f}, {} ({})".format(profit, self.stock_code, self.stock_name))
|
||||
self.bot.sendMsg("Profit {:.2f}, {} ({})".format(profit, stock['stock_code'], stock['stock_name']))
|
||||
|
||||
if 'buy_price' in bsLine1:
|
||||
buy_price = bsLine1['buy_price'][-1]
|
||||
buy_count = int(bsLine1['buy_count'][-1])
|
||||
if buy_price > 0:
|
||||
# 매수를 요청 한다.
|
||||
orderNum = self.requestOrder(OrderType.buy, self.stock_code, buy_count, buy_price)
|
||||
self.orderChecker.buy(datetime.today().strftime('%Y%m%d'), "A" + self.stock_code, buy_count, buy_price, orderNum)
|
||||
self.bot.post(self.stock_code, self.stock_name, "[BUY] ", buy_price, buy_count, data['rsi'][-1], -1)
|
||||
orderNum = self.requestOrder(OrderType.buy, stock['stock_code'], buy_count, buy_price)
|
||||
self.orderChecker.buy(datetime.today().strftime('%Y%m%d'), "A" + stock['stock_code'], buy_count, buy_price, orderNum)
|
||||
self.bot.post(stock['stock_code'], stock['stock_name'], "[BUY] ", buy_price, buy_count, data['rsi'][-1], -1)
|
||||
|
||||
# 미체결 기록을 가져와서 10분 이상 된 매수 주문을 취소 한다.
|
||||
ORDER_LIST = self.requestOrderList()
|
||||
orderListToCancel = self.orderChecker.cancel(datetime.today().strftime('%Y%m%d'), "A" + self.stock_code, ORDER_LIST, mins=3)
|
||||
orderListToCancel = self.orderChecker.cancel(datetime.today().strftime('%Y%m%d'), "A" + stock['stock_code'], ORDER_LIST, mins=3)
|
||||
if len(orderListToCancel) > 0:
|
||||
self.cancelOrderList(orderListToCancel)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ class BuySellChecker():
|
||||
PATTERNS = None
|
||||
RESOURCE_PATH = None
|
||||
|
||||
def __init__(self, RESOURCE_PATH, s):
|
||||
def __init__(self, RESOURCE_PATH):
|
||||
self.RESOURCE_PATH = RESOURCE_PATH
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user