This commit is contained in:
dsyoon
2023-01-28 20:18:25 +09:00
parent 8e4b74fd0a
commit 29eac27ba4

View File

@@ -524,8 +524,12 @@ class Bithumb_minute(HTS):
return df
def cancel_order(self, log_df, log_filename, min=5):
now = datetime.now() - timedelta(minutes=min)
# min 분 이상 된 시간인 내용을 가지고 옴
df = log_df.loc[(log_df.index <= now) ]
# 취소가 되지 않은 것만 가지고 옴 (0: 취소 되지 않음, 1: 취소함)
df = df.loc[(log_df["canceled"] == 0)]
df.reset_index()
if df is not None:
@@ -535,28 +539,23 @@ class Bithumb_minute(HTS):
# slackbot에 메시지를 보냄
self.slackBot.post_to_slack(ticker, self.stock_code[ticker], "CANCEL", -1, -1)
log_df = log_df.loc[(log_df.index > now)]
if len(log_df) == 0:
log_df["datetime"] = ""
else:
log_df["datetime"] = log_df.index
for row in df.rows:
row['canceled'] = 1
log_df.to_csv(log_filename, index=False)
return log_df
def check_buy_history(self, log_df, log_filename, min=10):
def check_buy_history(self, log_df, min=10):
# min 분 이상 된 시간인 내용을 가지고 옴
now = datetime.now() - timedelta(minutes=min)
# 취소가 되지 않은 것만 가지고 옴 (0: 취소 되지 않음, 1: 취소함)
log_df = log_df.loc[(now < log_df.index)]
if len(log_df) == 0:
log_df["datetime"] = ""
buy_history = False
else:
log_df["datetime"] = log_df.index
buy_history = True
log_df.to_csv(log_filename, index=False)
return buy_history, log_df
if len(log_df) == 0:
return False
return True
def getStock(self, ticker, analyzed_day, minute=5):
stock = {"CODE": ticker, "NAME": ticker, "PRICE": []}
@@ -607,29 +606,19 @@ class Bithumb_minute(HTS):
order_log_filename = os.path.join(RESOURCE_PATH, 'order', "bithumb"+"_"+self.TODAY + '.log')
if os.path.exists(order_log_filename):
order_log_df = pd.read_csv(order_log_filename)
order_log_df.columns = ["type", "order0", "order1", "order2", "order3", "slow_k_30", "slow_k_5", "price", "count", "datetime"]
order_log_df.columns = ["type", "order0", "order1", "order2", "order3", "canceled", "slow_k_30", "slow_k_5", "price", "count", "datetime"]
order_log_df["datetime"] = pd.to_datetime(order_log_df["datetime"], format='%Y-%m-%d %H:%M:%S')
else:
order_log_df = pd.DataFrame(columns=["type", "datetime", "order0", "order1", "order2", "order3", "slow_k_30", "slow_k_5", "price", "count"])
order_log_df = pd.DataFrame(columns=["type", "datetime", "order0", "order1", "order2", "order3", "canceled", "slow_k_30", "slow_k_5", "price", "count"])
order_log_df['datetime'] = pd.to_datetime(order_log_df['datetime'], unit='s')
order_log_df.set_index('datetime', inplace=True)
# 한번 매수 후 n시간 이후 매수하기 위함
buy_history_filename = os.path.join(RESOURCE_PATH, 'order', "bithumb_buy_" + "_" + self.TODAY + '.log')
if os.path.exists(buy_history_filename):
buy_history_df = pd.read_csv(buy_history_filename)
buy_history_df.columns = ["type", "order0", "order1", "order2", "order3", "slow_k_30", "slow_k_5", "price", "count", "datetime"]
buy_history_df["datetime"] = pd.to_datetime(buy_history_df["datetime"], format='%Y-%m-%d %H:%M:%S')
else:
buy_history_df = pd.DataFrame(columns=["type", "datetime", "order0", "order1", "order2", "order3", "slow_k_30", "slow_k_5", "price", "count"])
buy_history_df['datetime'] = pd.to_datetime(buy_history_df['datetime'], unit='s')
buy_history_df.set_index('datetime', inplace=True)
# 10분이 지난 미체결은 취소한다.
order_log_df = self.cancel_order(order_log_df, order_log_filename, min=10)
# 한번 매수 후 n분 이후 매수하기 위함
buy_history, buy_history_df = self.check_buy_history(buy_history_df, buy_history_filename, min=30)
if isRealTime and not buy_history:
check_buy_history = self.check_buy_history(order_log_df, min=30)
if isRealTime and not check_buy_history:
if max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 100:
tmp = self.bithumb.get_balance(ticker)
balance = tmp[2]