From fcb367134105fd0fa0eb0042c8dffaa057df40ec Mon Sep 17 00:00:00 2001 From: dsyoon Date: Mon, 23 Jan 2023 00:39:51 +0900 Subject: [PATCH] init --- Bithumb_minute.py | 23 +++++++++----- Bithumb_daily.py => bithumb/Bithumb_daily.py | 33 ++++++++++---------- 2 files changed, 33 insertions(+), 23 deletions(-) rename Bithumb_daily.py => bithumb/Bithumb_daily.py (97%) diff --git a/Bithumb_minute.py b/Bithumb_minute.py index a0f7edb..c02fe9a 100644 --- a/Bithumb_minute.py +++ b/Bithumb_minute.py @@ -17,6 +17,7 @@ from sklearn.preprocessing import StandardScaler, MinMaxScaler from stock.analysis.AnalyzerSqlite import AnalyzerSqlite from hts.BuySellChecker import BuySellChecker from hts.HTS import HTS +from bithumb.Bithumb_daily import Bithumb_daily class Bithumb_minute(HTS): @@ -600,13 +601,17 @@ class Bithumb_minute(HTS): bsLine['buy'][i] = buy bsLine['buy_weight'][i] = 0.3 - """ + if data['slow_k'][i] > 90: + sell = data['close'][i] + data['sell'][i] = sell + bsLine['sell'][i] = sell + bsLine['sell_weight'][i] = 100 + if data['slow_k'][i] > 80 and data['slow_d'][i-1] < data['slow_k'][i-1] and data['slow_k'][i] < data['slow_d'][i]: sell = data['low'][i] data['sell'][i] = sell bsLine['sell'][i] = sell bsLine['sell_weight'][i] = 100 - """ return bsLine, data @@ -651,7 +656,7 @@ class Bithumb_minute(HTS): return - def buyRealTime(self, ticker, isRealTime=False): + def buyRealTime(self, ticker, analyzed_day=120, isRealTime=False): stock = {"CODE": ticker, "NAME": ticker, "PRICE": []} @@ -681,7 +686,6 @@ class Bithumb_minute(HTS): df['high'][size - 1] = close self.append(df, stock) - analyzed_day = 120 data = self.analyze(stock, analyzed_day) # 분석일 데이터만 활용한다 (이전 데이터는 제거) data.drop(data.index[:len(data) - analyzed_day], inplace=True) @@ -740,15 +744,20 @@ if __name__ == "__main__": if not os.path.exists(dirName): os.mkdir(dirName) + # bithumb_daily = Bithumb_daily(RESOURCE_PATH) bithumb = Bithumb_minute(RESOURCE_PATH) tickers = ['XRP'] - isRealTime = True + analyzed_day = 120 + isRealTime = False if isRealTime: while True: for ticker in tickers: - bithumb.buyRealTime(ticker, isRealTime) + #data_daily = bithumb_daily.buyRealTime(ticker, analyzed_day) + #size = len(data_daily) + #if data_daily['slow_k'] < 30: + bithumb.buyRealTime(ticker, analyzed_day, isRealTime) time.sleep(180) else: for ticker in tickers: - bithumb.buyRealTime(ticker, isRealTime) + bithumb.buyRealTime(ticker, analyzed_day, isRealTime) diff --git a/Bithumb_daily.py b/bithumb/Bithumb_daily.py similarity index 97% rename from Bithumb_daily.py rename to bithumb/Bithumb_daily.py index c33e26f..9c063b9 100644 --- a/Bithumb_daily.py +++ b/bithumb/Bithumb_daily.py @@ -600,7 +600,7 @@ class Bithumb_daily(HTS): return bsLine, data - def buyRealTime(self, ticker, isRealTime=False): + def buyRealTime(self, ticker, analyzed_day=120, isRealTime=False): stock = {"CODE": ticker, "NAME": ticker, "PRICE": []} df = pybithumb.get_ohlcv(ticker) @@ -610,15 +610,15 @@ class Bithumb_daily(HTS): close = pybithumb.get_current_price(ticker) size = len(df) - df['close'][size-1] = close - if close < df['low'][size-1]: + df['close'][size - 1] = close + if close < df['low'][size - 1]: df['low'][size - 1] = close - if df['high'][size-1] < close: + if df['high'][size - 1] < close: df['high'][size - 1] = close self.append(df, stock) - analyzed_day = 120 data = self.analyze(stock, analyzed_day) + # 분석일 데이터만 활용한다 (이전 데이터는 제거) data.drop(data.index[:len(data) - analyzed_day], inplace=True) @@ -628,7 +628,7 @@ class Bithumb_daily(HTS): # 그래프를 그린다. if len(data.index) > 10: today = datetime.today().strftime('%Y%m%d') - log_filename = os.path.join(RESOURCE_PATH, 'analysis', 'bithumb', today + '.log') + log_filename = os.path.join(RESOURCE_PATH, 'analysis', '', today + '.log') if isRealTime and not self.exist_buy(ticker, log_filename): if max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 100: balance = self.getBalance(ticker) @@ -640,34 +640,35 @@ class Bithumb_daily(HTS): wr = csv.writer(log_file) wr.writerow([datetime.now().strftime('%Y-%m-%d %H:%M:%S'), order[0], order[1], order[2], order[3]]) - dirName = os.path.join(RESOURCE_PATH, 'analysis', 'bithumb') + dirName = os.path.join(RESOURCE_PATH, 'analysis', '') self.writeFile(dirName, ticker, data, bsLine, datetime.now().strftime('%Y%m%d %H%M%S'), 'buy') else: - dirName = os.path.join(RESOURCE_PATH, 'analysis', 'bithumb') + dirName = os.path.join(RESOURCE_PATH, 'analysis', '') self.writeFile(dirName, ticker, data, bsLine, datetime.now().strftime('%Y%m%d %H%M%S')) - return + return bsLine, data if __name__ == "__main__": PROJECT_HOME = os.getcwd() - RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources") + RESOURCE_PATH = os.path.join(PROJECT_HOME, "../resources") - if not os.path.exists(os.path.join(RESOURCE_PATH, 'analysis', 'bithumb')): - os.mkdir(os.path.join(RESOURCE_PATH, 'analysis', 'bithumb')) - dirName = os.path.join(RESOURCE_PATH, 'analysis', 'bithumb') + if not os.path.exists(os.path.join(RESOURCE_PATH, 'analysis', '')): + os.mkdir(os.path.join(RESOURCE_PATH, 'analysis', '')) + dirName = os.path.join(RESOURCE_PATH, 'analysis', '') if not os.path.exists(dirName): os.mkdir(dirName) bithumb = Bithumb_daily(RESOURCE_PATH) tickers = ['XRP', 'BTC', 'SOL'] - isRealTime = True + analyzed_day = 120 + isRealTime = False if isRealTime: while True: for ticker in tickers: - bithumb.buyRealTime(ticker, isRealTime) + bithumb.buyRealTime(ticker, analyzed_day, isRealTime) time.sleep(300) else: for ticker in tickers: - bithumb.buyRealTime(ticker, isRealTime) + bithumb.buyRealTime(ticker, analyzed_day, isRealTime)