init
This commit is contained in:
@@ -8,8 +8,8 @@ from hts.HTS import HTS
|
||||
from stock.util.Stock2Vector import Stock2Vector
|
||||
from stock.util.LabelChecker import LabelChecker
|
||||
from stock.util.StockPredictor import StockPredictor
|
||||
from stock.analysis.DailyStatus import DailyStatus
|
||||
from hts.BuySellChecker import BuySellChecker
|
||||
from stock.analysis.StockStatus import StockStatus
|
||||
|
||||
class Simulation (HTS):
|
||||
stock2Vector = None
|
||||
@@ -163,6 +163,28 @@ class Simulation (HTS):
|
||||
return
|
||||
|
||||
|
||||
def makeTickData(self, data, mins=30):
|
||||
result = {"check": set(),
|
||||
"time": [],
|
||||
"open": [],
|
||||
"close": [],
|
||||
"high": [],
|
||||
"low": [],
|
||||
"vol": [],
|
||||
"label": []}
|
||||
|
||||
for i in range(mins, len(data['time'])+1):
|
||||
result["check"].add(data['time'][i])
|
||||
result["time"].append(data['time'][i])
|
||||
|
||||
result["open"].append(data['open'][i-mins])
|
||||
result["close"].append(data['close'][i-1])
|
||||
result["high"].append(max(data['high'][i - 30: i]))
|
||||
result["low"].append(min(data['low'][i - 30: i]))
|
||||
result["vol"].append(sum(data[i - 30: i]))
|
||||
|
||||
return result
|
||||
|
||||
def simulate(self, stock_codes:dict=None):
|
||||
|
||||
if stock_codes is not None:
|
||||
@@ -170,25 +192,30 @@ class Simulation (HTS):
|
||||
for given_day in stock_codes[stock_code]:
|
||||
LAST_DATA = self.stock2Vector.getLastData(stock_code, given_day)
|
||||
result = self.stock2Vector.getRealTime(stock_code, given_day, LAST_DATA)
|
||||
result_30 = self.makeTickData(result, min=30)
|
||||
|
||||
# 이동평균, RSI, MACD, 일목균형, 볼린저밴드 상/하단을 계산한다.
|
||||
data = self.buySellChecker.analyze(result)
|
||||
|
||||
data1 = self.buySellChecker.analyze(result)
|
||||
# 사야 할 시점과 팔아야 할 시점을 체크한다.
|
||||
#bsLine, data = self.buySellChecker.checkTransaction(data, stock_code, isRealTime=False)
|
||||
analyzed_day = 120
|
||||
bsLine, data = self.buySellChecker.checkTransactionWithEnvelope(data, stock_code, analyzed_day, isRealTime=False)
|
||||
bsLine, data = self.buySellChecker.checkTransaction(data, stock_code, isRealTime=False)
|
||||
|
||||
# 그래프를 그린다.
|
||||
self.draw(stock_code, given_day, data, bsLine)
|
||||
else:
|
||||
dailyStatus = DailyStatus(self.RESOURCE_PATH)
|
||||
dailyStatus.checkEnvelope()
|
||||
stockStatus = StockStatus(self.RESOURCE_PATH)
|
||||
stockStatus.checkEnvelope()
|
||||
|
||||
return
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
||||
for i in range(3, len(a)+1):
|
||||
print (a[i-3: i])
|
||||
print (a[i - 3])
|
||||
print (a[i - 1])
|
||||
|
||||
|
||||
PROJECT_HOME = os.getcwd()
|
||||
RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources")
|
||||
|
||||
@@ -197,11 +224,14 @@ if __name__ == "__main__":
|
||||
# to check bying
|
||||
stock_codes = {
|
||||
"252670": [
|
||||
'20220901', '20220902', '20220905', '20220906', '20220907',
|
||||
'20220908','20220913','20220914','20220915','20220916'
|
||||
'20220901', '20220902', '20220905', '20220906', '20220907', '20220908','20220913','20220914','20220915','20220916'
|
||||
],
|
||||
"122630": [
|
||||
'20220901', '20220902', '20220905', '20220906', '20220907', '20220908', '20220913', '20220914', '20220915',
|
||||
'20220916'
|
||||
]
|
||||
}
|
||||
#simulation.simulate(stock_codes)
|
||||
simulation.simulate()
|
||||
simulation.simulate(stock_codes)
|
||||
|
||||
print ("done...")
|
||||
|
||||
Reference in New Issue
Block a user