init
This commit is contained in:
91
LabelMaker.py
Normal file
91
LabelMaker.py
Normal file
@@ -0,0 +1,91 @@
|
||||
import os
|
||||
import logging
|
||||
from stock.util.LabelChecker import LabelChecker
|
||||
|
||||
class LabelMaker:
|
||||
db_filename = None
|
||||
labelChecker = None
|
||||
|
||||
def __init__(self, RESOURCE_PATH):
|
||||
self.labelChecker = LabelChecker(RESOURCE_PATH)
|
||||
self.db_filename = os.path.join(RESOURCE_PATH, "hts.db")
|
||||
return
|
||||
|
||||
def clearLabel(self, stock_code, ymd):
|
||||
self.labelChecker.clearLabel(self.db_filename, stock_code, ymd)
|
||||
return
|
||||
|
||||
def showLabels(self, stock_code, ymd):
|
||||
self.labelChecker.showLabels(stock_code, ymd)
|
||||
return
|
||||
|
||||
def update(self, stock_code, ymd, hms, label):
|
||||
self.labelChecker.makeLabel(self.db_filename, stock_code, ymd, hms, label)
|
||||
return
|
||||
|
||||
def write(self, stock_code, ymd, outFp):
|
||||
self.labelChecker.showLabels(stock_code, ymd, outFp)
|
||||
return
|
||||
|
||||
def check(self, stock_codes):
|
||||
# 종목에 대해서 주어진 일자에 대해서 통계치 추출하기
|
||||
for stock_code in stock_codes:
|
||||
ymds = self.labelChecker.getDate(stock_code)
|
||||
for ymd in ymds:
|
||||
logging.info(stock_code, ymd)
|
||||
bsLine, data = self.labelChecker.makeCandidate(stock_code, ymd)
|
||||
self.labelChecker.updateLabel(self.db_filename, stock_code, bsLine, data, ymd)
|
||||
return
|
||||
|
||||
if __name__ == "__main__":
|
||||
PROJECT_HOME = os.path.join(os.path.dirname(__file__))
|
||||
RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources")
|
||||
|
||||
labelMaker = LabelMaker(RESOURCE_PATH)
|
||||
|
||||
stock_codes = {
|
||||
"252670": ['20220701', '20220704', '20220705', '20220706', '20220707',
|
||||
'20220708', '20220711', '20220712', '20220713', '20220714',
|
||||
'20220715', '20220718', '20220719', '20220720', '20220721',
|
||||
'20220722', '20220725', '20220726', '20220727', '20220728',
|
||||
'20220729', '20220801', '20220802', '20220803', '20220804',
|
||||
'20220805', '20220808', '20220809', '20220810', '20220811',
|
||||
'20220812', '20220816', '20220817'],
|
||||
# "122630": ['20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812'],
|
||||
}
|
||||
|
||||
|
||||
MODE = "UPDATE"
|
||||
if MODE == "UPDATE":
|
||||
# 매일 입력하면서 정답 셋 만들기
|
||||
stock_code = "252670"
|
||||
ymd = '20220817'
|
||||
|
||||
labelMaker.clearLabel(stock_code, ymd)
|
||||
labelMaker.update(stock_code, ymd, "0915", 2)
|
||||
labelMaker.update(stock_code, ymd, "0916", 2)
|
||||
labelMaker.update(stock_code, ymd, "0917", 2)
|
||||
labelMaker.update(stock_code, ymd, "0918", 2)
|
||||
labelMaker.update(stock_code, ymd, "0919", 2)
|
||||
labelMaker.update(stock_code, ymd, "0920", 2)
|
||||
labelMaker.update(stock_code, ymd, "0921", 2)
|
||||
|
||||
labelMaker.update(stock_code, ymd, "1124", 1)
|
||||
labelMaker.update(stock_code, ymd, "1125", 1)
|
||||
labelMaker.update(stock_code, ymd, "1126", 1)
|
||||
labelMaker.update(stock_code, ymd, "1127", 1)
|
||||
labelMaker.update(stock_code, ymd, "1330", 1)
|
||||
labelMaker.update(stock_code, ymd, "1331", 1)
|
||||
labelMaker.update(stock_code, ymd, "1332", 1)
|
||||
labelMaker.showLabels(stock_code, ymd)
|
||||
|
||||
elif MODE == "WRITE":
|
||||
|
||||
for stock_code in stock_codes:
|
||||
outFp = open("check_"+stock_code+".txt", "w")
|
||||
for ymd in stock_codes[stock_code]:
|
||||
labelMaker.write(stock_code, ymd, outFp)
|
||||
outFp.close()
|
||||
else:
|
||||
|
||||
labelMaker.check(stock_codes)
|
||||
BIN
resources/hts.db
BIN
resources/hts.db
Binary file not shown.
@@ -1,6 +1,5 @@
|
||||
import os
|
||||
import csv
|
||||
import logging
|
||||
from math import nan
|
||||
import pandas as pd
|
||||
import plotly.graph_objects as go
|
||||
@@ -10,7 +9,7 @@ from hts.HTS import HTS
|
||||
from hts.BuySellChecker import BuySellChecker
|
||||
from stock.util.Stock2Vector import Stock2Vector
|
||||
|
||||
class LabelMaker (HTS):
|
||||
class LabelChecker (HTS):
|
||||
buySellChecker = None
|
||||
stock2Vector = None
|
||||
|
||||
@@ -310,35 +309,8 @@ if __name__ == "__main__":
|
||||
RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources")
|
||||
db_filename = os.path.join(RESOURCE_PATH, "hts.db")
|
||||
|
||||
labelMaker = LabelMaker(RESOURCE_PATH)
|
||||
labelChecker = LabelChecker(RESOURCE_PATH)
|
||||
|
||||
UPDATE_MODE = False
|
||||
if UPDATE_MODE:
|
||||
# 매일 입력하면서 정답 셋 만들기
|
||||
stock_code = "252670"
|
||||
ymd = '20220730'
|
||||
|
||||
labelMaker.clearLabel(db_filename, stock_code, ymd)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "0933", 2)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "0934", 2)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "0935", 2)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "0936", 2)
|
||||
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1004", 1)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1005", 1)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1006", 1)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1007", 1)
|
||||
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1412", 1)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1413", 1)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1414", 1)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1415", 1)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1416", 1)
|
||||
labelMaker.makeLabel(db_filename, stock_code, ymd, "1417", 1)
|
||||
|
||||
labelMaker.showLabels(stock_code, ymd)
|
||||
|
||||
else:
|
||||
stock_codes = {
|
||||
"252670": ['20220701', '20220704', '20220705', '20220706', '20220707',
|
||||
'20220708', '20220711', '20220712', '20220713', '20220714',
|
||||
@@ -350,24 +322,6 @@ if __name__ == "__main__":
|
||||
#"122630": ['20220801', '20220802', '20220803', '20220804', '20220805', '20220808', '20220809', '20220810', '20220811', '20220812'],
|
||||
}
|
||||
|
||||
view = True
|
||||
outFp = None
|
||||
for stock_code in stock_codes:
|
||||
if view:
|
||||
if outFp is None:
|
||||
outFp = open("check_"+stock_code+".txt", "w")
|
||||
for ymd in stock_codes[stock_code]:
|
||||
if view:
|
||||
labelMaker.showLabels(stock_code, ymd, outFp)
|
||||
else:
|
||||
# 종목에 대해서 주어진 일자에 대해서 통계치 추출하기
|
||||
for stock_code in stock_codes:
|
||||
ymds = labelMaker.getDate(stock_code)
|
||||
for ymd in ymds:
|
||||
logging.info(stock_code, ymd)
|
||||
bsLine, data = labelMaker.makeCandidate(stock_code, ymd)
|
||||
labelMaker.updateLabel(db_filename, stock_code, bsLine, data, ymd)
|
||||
if view:
|
||||
if outFp is not None:
|
||||
outFp.close()
|
||||
outFp = None
|
||||
labelChecker.showLabels(stock_code, ymd)
|
||||
Reference in New Issue
Block a user