init
This commit is contained in:
@@ -521,6 +521,7 @@ class Bithumb_minute(HTS):
|
||||
df = pd.DataFrame(btc_ohlcv, columns=['datetime', 'open', 'high', 'low', 'close', 'volume'])
|
||||
df['datetime'] = pd.to_datetime(df['datetime'], unit='ms')
|
||||
df.set_index('datetime', inplace=True)
|
||||
df.insert(1, "datetime", df.index)
|
||||
return df
|
||||
|
||||
def cancel_order(self, log_df, log_filename, min=5):
|
||||
@@ -530,7 +531,6 @@ class Bithumb_minute(HTS):
|
||||
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:
|
||||
for i in range(len(df)):
|
||||
@@ -539,8 +539,8 @@ class Bithumb_minute(HTS):
|
||||
# slackbot에 메시지를 보냄
|
||||
self.slackBot.post_to_slack(ticker, self.stock_code[ticker], "CANCEL", -1, -1)
|
||||
|
||||
for row in df.rows:
|
||||
row['canceled'] = 1
|
||||
for i in range(len(df)):
|
||||
log_df.loc[(log_df.index == df.index[i]), 'canceled'] = 1
|
||||
|
||||
log_df.to_csv(log_filename, index=False)
|
||||
|
||||
@@ -606,12 +606,13 @@ 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", "canceled", "slow_k_30", "slow_k_5", "price", "count", "datetime"]
|
||||
order_log_df.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"], format='%Y-%m-%d %H:%M:%S')
|
||||
else:
|
||||
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)
|
||||
order_log_df.insert(1, "datetime", order_log_df.index)
|
||||
|
||||
# 10분이 지난 미체결은 취소한다.
|
||||
order_log_df = self.cancel_order(order_log_df, order_log_filename, min=10)
|
||||
@@ -619,11 +620,14 @@ class Bithumb_minute(HTS):
|
||||
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]
|
||||
#count = round((balance * (bsLine['buy_weight'][len(bsLine['buy_weight']) - 1] / 100)) / bsLine['buy'][len(bsLine['buy']) - 1], 2)
|
||||
count = round(self.MAX_BUY_PRICE / bsLine['buy'][len(bsLine['buy']) - 1], 2)
|
||||
count = 1
|
||||
bsLine['buy'][len(bsLine['buy']) - 1] = 514
|
||||
|
||||
# 매수를 요청한다.
|
||||
order = self.bithumb.buy_limit_order(ticker, bsLine['buy'][len(bsLine['buy']) - 1], count)
|
||||
@@ -633,11 +637,10 @@ class Bithumb_minute(HTS):
|
||||
# order: ('bid', 'BTC', 'C0101000000322993432', 'KRW')
|
||||
if len(stock1['close']) > 0:
|
||||
print(ticker, "/", datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "/", stock1['close'][len(stock1['close'])-1], "/", "{:.2f}".format(stock2['slow_k'][len(stock1['slow_k'])-1]), "/", "{:.2f}".format(stock1['slow_k'][len(stock1['slow_k'])-1]), "/", "{:.2f}".format(stock2['macd'][len(stock2['macd']) - 1]), "/", "{:.2f}".format(stock1['macd'][len(stock1['macd']) - 1]), "/", bsLine['buy'][len(bsLine['buy']) - 1], "/", count)
|
||||
value = {"type": "BUY", "order0": order[0], "order1": order[1], "order2": order[2], "order3": order[3], "slow_k_30": stock2['slow_k'][len(stock2['slow_k']) - 1], "slow_k_5": stock1['slow_k'][len(stock1['slow_k']) - 1], "price": bsLine['buy'][len(bsLine['buy']) - 1], "count": count}
|
||||
datetime_value = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
value = {"type": "BUY", "datetime": datetime_value, "order0": order[0], "order1": order[1], "order2": order[2], "order3": order[3], "canceled": 0, "slow_k_30": stock2['slow_k'][len(stock2['slow_k']) - 1], "slow_k_5": stock1['slow_k'][len(stock1['slow_k']) - 1], "price": bsLine['buy'][len(bsLine['buy']) - 1], "count": count}
|
||||
value_df = pd.DataFrame(value, index=[datetime_value])
|
||||
|
||||
# 매수 요청 n분 이상된 주문은 취소하기 위함
|
||||
value_df["datetime"] = pd.to_datetime(value_df["datetime"], format='%Y-%m-%d %H:%M:%S')
|
||||
indexes1 = order_log_df.index.tolist()
|
||||
indexes1.append(datetime_value)
|
||||
|
||||
@@ -663,7 +666,7 @@ class Bithumb_minute(HTS):
|
||||
|
||||
if len(order) > 2 and len(stock1['close']) > 0:
|
||||
print(ticker, "/", datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "/", stock1['close'][len(stock1['close'])-1], "/", "{:.2f}".format(stock2['slow_k'][len(stock1['slow_k'])-1]), "/", "{:.2f}".format(stock1['slow_k'][len(stock1['slow_k'])-1]), "/", "{:.2f}".format(stock2['macd'][len(stock2['macd']) - 1]), "/", "{:.2f}".format(stock1['macd'][len(stock1['macd']) - 1]), "/", bsLine['sell'][len(bsLine['sell']) - 1], "/", count)
|
||||
value = {"type": "SELL","order0": order[0], "order1": order[1], "order2": order[2], "order3": order[3], "slow_k_30": stock2['slow_k'][len(stock2['slow_k']) - 1], "slow_k_5": stock1['slow_k'][len(stock1['slow_k']) - 1], "price": bsLine['sell'][len(bsLine['sell']) - 1], "count": count}
|
||||
value = {"type": "SELL","order0": order[0], "order1": order[1], "order2": order[2], "order3": order[3], "canceled": 0, "slow_k_30": stock2['slow_k'][len(stock2['slow_k']) - 1], "slow_k_5": stock1['slow_k'][len(stock1['slow_k']) - 1], "price": bsLine['sell'][len(bsLine['sell']) - 1], "count": count}
|
||||
datetime_value = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
value_df = pd.DataFrame(value, index=[datetime_value])
|
||||
|
||||
@@ -709,7 +712,7 @@ if __name__ == "__main__":
|
||||
#size = len(data_daily)
|
||||
#if data_daily['slow_k'] < 30:
|
||||
try:
|
||||
time.sleep(30)
|
||||
time.sleep(3)
|
||||
bithumb.buyRealTime(ticker, analyzed_day, isRealTime)
|
||||
except:
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user