This commit is contained in:
dsyoon
2023-01-23 00:39:51 +09:00
parent 81b69901bb
commit fcb3671341
2 changed files with 33 additions and 23 deletions

View File

@@ -17,6 +17,7 @@ from sklearn.preprocessing import StandardScaler, MinMaxScaler
from stock.analysis.AnalyzerSqlite import AnalyzerSqlite from stock.analysis.AnalyzerSqlite import AnalyzerSqlite
from hts.BuySellChecker import BuySellChecker from hts.BuySellChecker import BuySellChecker
from hts.HTS import HTS from hts.HTS import HTS
from bithumb.Bithumb_daily import Bithumb_daily
class Bithumb_minute(HTS): class Bithumb_minute(HTS):
@@ -600,13 +601,17 @@ class Bithumb_minute(HTS):
bsLine['buy'][i] = buy bsLine['buy'][i] = buy
bsLine['buy_weight'][i] = 0.3 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]: 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] sell = data['low'][i]
data['sell'][i] = sell data['sell'][i] = sell
bsLine['sell'][i] = sell bsLine['sell'][i] = sell
bsLine['sell_weight'][i] = 100 bsLine['sell_weight'][i] = 100
"""
return bsLine, data return bsLine, data
@@ -651,7 +656,7 @@ class Bithumb_minute(HTS):
return return
def buyRealTime(self, ticker, isRealTime=False): def buyRealTime(self, ticker, analyzed_day=120, isRealTime=False):
stock = {"CODE": ticker, "NAME": ticker, "PRICE": []} stock = {"CODE": ticker, "NAME": ticker, "PRICE": []}
@@ -681,7 +686,6 @@ class Bithumb_minute(HTS):
df['high'][size - 1] = close df['high'][size - 1] = close
self.append(df, stock) self.append(df, stock)
analyzed_day = 120
data = self.analyze(stock, analyzed_day) data = self.analyze(stock, analyzed_day)
# 분석일 데이터만 활용한다 (이전 데이터는 제거) # 분석일 데이터만 활용한다 (이전 데이터는 제거)
data.drop(data.index[:len(data) - analyzed_day], inplace=True) data.drop(data.index[:len(data) - analyzed_day], inplace=True)
@@ -740,15 +744,20 @@ if __name__ == "__main__":
if not os.path.exists(dirName): if not os.path.exists(dirName):
os.mkdir(dirName) os.mkdir(dirName)
# bithumb_daily = Bithumb_daily(RESOURCE_PATH)
bithumb = Bithumb_minute(RESOURCE_PATH) bithumb = Bithumb_minute(RESOURCE_PATH)
tickers = ['XRP'] tickers = ['XRP']
isRealTime = True analyzed_day = 120
isRealTime = False
if isRealTime: if isRealTime:
while True: while True:
for ticker in tickers: 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) time.sleep(180)
else: else:
for ticker in tickers: for ticker in tickers:
bithumb.buyRealTime(ticker, isRealTime) bithumb.buyRealTime(ticker, analyzed_day, isRealTime)

View File

@@ -600,7 +600,7 @@ class Bithumb_daily(HTS):
return bsLine, data return bsLine, data
def buyRealTime(self, ticker, isRealTime=False): def buyRealTime(self, ticker, analyzed_day=120, isRealTime=False):
stock = {"CODE": ticker, "NAME": ticker, "PRICE": []} stock = {"CODE": ticker, "NAME": ticker, "PRICE": []}
df = pybithumb.get_ohlcv(ticker) df = pybithumb.get_ohlcv(ticker)
@@ -617,8 +617,8 @@ class Bithumb_daily(HTS):
df['high'][size - 1] = close df['high'][size - 1] = close
self.append(df, stock) self.append(df, stock)
analyzed_day = 120
data = self.analyze(stock, analyzed_day) data = self.analyze(stock, analyzed_day)
# 분석일 데이터만 활용한다 (이전 데이터는 제거) # 분석일 데이터만 활용한다 (이전 데이터는 제거)
data.drop(data.index[:len(data) - analyzed_day], inplace=True) data.drop(data.index[:len(data) - analyzed_day], inplace=True)
@@ -628,7 +628,7 @@ class Bithumb_daily(HTS):
# 그래프를 그린다. # 그래프를 그린다.
if len(data.index) > 10: if len(data.index) > 10:
today = datetime.today().strftime('%Y%m%d') 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 isRealTime and not self.exist_buy(ticker, log_filename):
if max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 100: if max(bsLine['buy'][len(bsLine['buy']) - 2:]) > 100:
balance = self.getBalance(ticker) balance = self.getBalance(ticker)
@@ -640,34 +640,35 @@ class Bithumb_daily(HTS):
wr = csv.writer(log_file) wr = csv.writer(log_file)
wr.writerow([datetime.now().strftime('%Y-%m-%d %H:%M:%S'), order[0], order[1], order[2], order[3]]) 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') self.writeFile(dirName, ticker, data, bsLine, datetime.now().strftime('%Y%m%d %H%M%S'), 'buy')
else: 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')) self.writeFile(dirName, ticker, data, bsLine, datetime.now().strftime('%Y%m%d %H%M%S'))
return return bsLine, data
if __name__ == "__main__": if __name__ == "__main__":
PROJECT_HOME = os.getcwd() 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')): if not os.path.exists(os.path.join(RESOURCE_PATH, 'analysis', '')):
os.mkdir(os.path.join(RESOURCE_PATH, 'analysis', 'bithumb')) os.mkdir(os.path.join(RESOURCE_PATH, 'analysis', ''))
dirName = os.path.join(RESOURCE_PATH, 'analysis', 'bithumb') dirName = os.path.join(RESOURCE_PATH, 'analysis', '')
if not os.path.exists(dirName): if not os.path.exists(dirName):
os.mkdir(dirName) os.mkdir(dirName)
bithumb = Bithumb_daily(RESOURCE_PATH) bithumb = Bithumb_daily(RESOURCE_PATH)
tickers = ['XRP', 'BTC', 'SOL'] tickers = ['XRP', 'BTC', 'SOL']
isRealTime = True analyzed_day = 120
isRealTime = False
if isRealTime: if isRealTime:
while True: while True:
for ticker in tickers: for ticker in tickers:
bithumb.buyRealTime(ticker, isRealTime) bithumb.buyRealTime(ticker, analyzed_day, isRealTime)
time.sleep(300) time.sleep(300)
else: else:
for ticker in tickers: for ticker in tickers:
bithumb.buyRealTime(ticker, isRealTime) bithumb.buyRealTime(ticker, analyzed_day, isRealTime)