init
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
Reference in New Issue
Block a user