init
This commit is contained in:
@@ -78,7 +78,6 @@ class Bithumb_minute(HTS):
|
||||
"avg10": -1,
|
||||
"avg12": -1,
|
||||
"avg20": -1,
|
||||
"avg30": -1,
|
||||
"avg36": -1,
|
||||
"avg40": -1,
|
||||
"avg48": -1,
|
||||
@@ -140,7 +139,6 @@ class Bithumb_minute(HTS):
|
||||
"avg10": [],
|
||||
"avg12": [],
|
||||
"avg20": [],
|
||||
"avg30": [],
|
||||
"avg36": [],
|
||||
"avg40": [],
|
||||
"avg48": [],
|
||||
@@ -180,7 +178,6 @@ class Bithumb_minute(HTS):
|
||||
result["avg10"].append(item['avg10'])
|
||||
result["avg12"].append(item['avg12'])
|
||||
result["avg20"].append(item['avg20'])
|
||||
result["avg30"].append(item['avg30'])
|
||||
result["avg36"].append(item['avg36'])
|
||||
result["avg40"].append(item['avg40'])
|
||||
result["avg48"].append(item['avg48'])
|
||||
@@ -231,7 +228,6 @@ class Bithumb_minute(HTS):
|
||||
'avg10': 'float',
|
||||
'avg12': 'float',
|
||||
'avg20': 'float',
|
||||
'avg30': 'float',
|
||||
'avg36': 'float',
|
||||
'avg40': 'float',
|
||||
'avg48': 'float',
|
||||
@@ -443,15 +439,6 @@ class Bithumb_minute(HTS):
|
||||
return False
|
||||
return True
|
||||
|
||||
def check60min(self, data1, isRealTime=False):
|
||||
size = len(data1["close"])
|
||||
buy = -1
|
||||
|
||||
if data1['avg30'][size-2] < data1['avg60'][size-2] and data1['avg60'][size-1] < data1['avg30'][size-1]:
|
||||
buy = data1['close'][size-1]
|
||||
|
||||
return buy
|
||||
|
||||
def checkWithEnvelope(self, data1, data2=None, isRealTime=False):
|
||||
|
||||
bsLine = {}
|
||||
@@ -652,27 +639,35 @@ class Bithumb_minute(HTS):
|
||||
|
||||
|
||||
def getXRPCount(self, price):
|
||||
if 2000 < price: MAX_BUY_PRICE = 1000
|
||||
elif 1900 <= price < 2000: MAX_BUY_PRICE = 10000
|
||||
elif 1800 <= price < 1900: MAX_BUY_PRICE = 10000
|
||||
elif 1700 <= price < 1800: MAX_BUY_PRICE = 10000
|
||||
elif 1600 <= price < 1700: MAX_BUY_PRICE = 13000
|
||||
elif 1700 <= price < 1600: MAX_BUY_PRICE = 13000
|
||||
elif 1400 <= price < 1500: MAX_BUY_PRICE = 13000
|
||||
elif 1300 <= price < 1400: MAX_BUY_PRICE = 13000
|
||||
elif 1200 <= price < 1300: MAX_BUY_PRICE = 15000
|
||||
elif 1100 <= price < 1200: MAX_BUY_PRICE = 15000
|
||||
elif 1000 <= price < 1100: MAX_BUY_PRICE = 15000
|
||||
elif 900 <= price < 1000: MAX_BUY_PRICE = 17000
|
||||
elif 800 <= price < 900: MAX_BUY_PRICE = 17000
|
||||
elif 700 <= price < 800: MAX_BUY_PRICE = 20000
|
||||
elif 600 <= price < 700: MAX_BUY_PRICE = 30000
|
||||
elif 500 <= price < 600: MAX_BUY_PRICE = 50000
|
||||
elif 400 <= price < 500: MAX_BUY_PRICE = 70000
|
||||
elif 300 <= price < 400: MAX_BUY_PRICE = 80000
|
||||
elif 200 <= price < 300: MAX_BUY_PRICE = 90000
|
||||
elif 100 <= price < 200: MAX_BUY_PRICE = 100000
|
||||
else: MAX_BUY_PRICE = 100000
|
||||
if 870 < price: MAX_BUY_PRICE = 1000
|
||||
elif 840 <= price < 870: MAX_BUY_PRICE = 2000
|
||||
elif 810 <= price < 840: MAX_BUY_PRICE = 3000
|
||||
elif 780 <= price < 810: MAX_BUY_PRICE = 4000
|
||||
elif 750 <= price < 780: MAX_BUY_PRICE = 5000
|
||||
elif 720 <= price < 750: MAX_BUY_PRICE = 6000
|
||||
elif 690 <= price < 720: MAX_BUY_PRICE = 7000
|
||||
elif 660 <= price < 690: MAX_BUY_PRICE = 8000
|
||||
elif 630 <= price < 660: MAX_BUY_PRICE = 9000
|
||||
elif 600 <= price < 630: MAX_BUY_PRICE = 10000
|
||||
elif 570 <= price < 600: MAX_BUY_PRICE = 20000
|
||||
elif 540 <= price < 570: MAX_BUY_PRICE = 30000
|
||||
elif 510 <= price < 540: MAX_BUY_PRICE = 40000
|
||||
elif 450 <= price < 480: MAX_BUY_PRICE = 50000
|
||||
elif 420 <= price < 450: MAX_BUY_PRICE = 60000
|
||||
elif 390 <= price < 420: MAX_BUY_PRICE = 70000
|
||||
elif 360 <= price < 390: MAX_BUY_PRICE = 80000
|
||||
elif 330 <= price < 360: MAX_BUY_PRICE = 90000
|
||||
elif 300 <= price < 330: MAX_BUY_PRICE = 100000
|
||||
elif 270 <= price < 300: MAX_BUY_PRICE = 110000
|
||||
elif 240 <= price < 270: MAX_BUY_PRICE = 120000
|
||||
elif 210 <= price < 240: MAX_BUY_PRICE = 130000
|
||||
elif 180 <= price < 210: MAX_BUY_PRICE = 140000
|
||||
elif 150 <= price < 180: MAX_BUY_PRICE = 150000
|
||||
elif 120 <= price < 150: MAX_BUY_PRICE = 160000
|
||||
elif 90 <= price < 120: MAX_BUY_PRICE = 170000
|
||||
elif 60 <= price < 90: MAX_BUY_PRICE = 180000
|
||||
elif 30 <= price < 60: MAX_BUY_PRICE = 190000
|
||||
elif price < 30: MAX_BUY_PRICE = 200000
|
||||
|
||||
count = int(MAX_BUY_PRICE / price)
|
||||
return count
|
||||
@@ -696,9 +691,8 @@ class Bithumb_minute(HTS):
|
||||
stock2 = self.getStock(ticker, analyzed_day, minute=30)
|
||||
|
||||
# 매수 매도 체크
|
||||
#bsLine = self.checkWithEnvelope(stock1, stock2, isRealTime=isRealTime)
|
||||
bsLine = self.check60min(stock1, isRealTime=isRealTime)
|
||||
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(stock1['avg30'][len(stock1['avg30']) - 1]), "/", "{:.2f}".format(stock1['avg60'][len(stock1['avg60']) - 1]))
|
||||
bsLine = self.checkWithEnvelope(stock1, stock2, isRealTime=isRealTime)
|
||||
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]))
|
||||
|
||||
# 그래프를 그린다.
|
||||
if len(stock1.index) > 10:
|
||||
@@ -720,9 +714,9 @@ class Bithumb_minute(HTS):
|
||||
check_buy_history = self.check_buy_history(order_log_df, min=60)
|
||||
|
||||
if isRealTime and not check_buy_history:
|
||||
|
||||
if bsLine > 0:
|
||||
# 매수 조건
|
||||
if max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 100:
|
||||
|
||||
#stock = self.getStock(ticker, analyzed_day, day=30)
|
||||
#if stock["slow_k"][len(stock['close'])-1] > 40:
|
||||
# print (datetime.now().strftime('%Y-%m-%d %H:%M:%S'), ",", round(stock["slow_k"][len(stock['close'])-3],2), ",", round(stock["slow_k"][len(stock['close'])-2],2), ",", round(stock["slow_k"][len(stock['close'])-1], ))
|
||||
@@ -738,24 +732,24 @@ class Bithumb_minute(HTS):
|
||||
balance = tmp[2]
|
||||
#count = round((balance * (bsLine['buy_weight'][len(bsLine['buy_weight']) - 1] / 100)) / bsLine['buy'][len(bsLine['buy']) - 1], 2)
|
||||
if ticker == 'TRX':
|
||||
count = self.getTRXCount(bsLine)
|
||||
count = self.getTRXCount(bsLine['buy'][len(bsLine['buy']) - 1])
|
||||
elif ticker == 'SOL':
|
||||
count = self.getSOLCount(bsLine)
|
||||
count = self.getSOLCount(bsLine['buy'][len(bsLine['buy']) - 1])
|
||||
elif ticker == 'EOS':
|
||||
count = self.getEOSCount(bsLine)
|
||||
count = self.getEOSCount(bsLine['buy'][len(bsLine['buy']) - 1])
|
||||
else:
|
||||
count = self.getXRPCount(bsLine)
|
||||
count = self.getXRPCount(bsLine['buy'][len(bsLine['buy']) - 1])
|
||||
|
||||
# 매수를 요청한다.
|
||||
order = self.bithumb.buy_limit_order(ticker, bsLine, count)
|
||||
order = self.bithumb.buy_limit_order(ticker, bsLine['buy'][len(bsLine['buy']) - 1], count)
|
||||
# slackbot에 메시지를 보냄
|
||||
self.slackBot.post_to_slack(ticker, self.stock_code[ticker], "BUY", bsLine, count)
|
||||
self.slackBot.post_to_slack(ticker, self.stock_code[ticker], "BUY", bsLine['buy'][len(bsLine['buy']) - 1], count)
|
||||
|
||||
# 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['avg30'][len(stock2['avg30']) - 1]), "/", "{:.2f}".format(stock1['avg60'][len(stock1['avg60']) - 1]), "/", bsLine, "/", count)
|
||||
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)
|
||||
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, "count": count}
|
||||
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])
|
||||
value_df["datetime"] = pd.to_datetime(value_df["datetime"], format='%Y-%m-%d %H:%M:%S')
|
||||
indexes1 = order_log_df.index.tolist()
|
||||
|
||||
Reference in New Issue
Block a user