init
This commit is contained in:
@@ -3,7 +3,6 @@ import os
|
|||||||
import sqlite3
|
import sqlite3
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from stock.analysis.DailyStatus import DailyStatus
|
|
||||||
from hts.HTS import HTS
|
from hts.HTS import HTS
|
||||||
from hts.OrderType import OrderType
|
from hts.OrderType import OrderType
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ from hts.HTS import HTS
|
|||||||
from stock.util.Stock2Vector import Stock2Vector
|
from stock.util.Stock2Vector import Stock2Vector
|
||||||
from stock.util.LabelChecker import LabelChecker
|
from stock.util.LabelChecker import LabelChecker
|
||||||
from stock.util.StockPredictor import StockPredictor
|
from stock.util.StockPredictor import StockPredictor
|
||||||
from stock.analysis.DailyStatus import DailyStatus
|
|
||||||
from hts.BuySellChecker import BuySellChecker
|
from hts.BuySellChecker import BuySellChecker
|
||||||
|
from stock.analysis.StockStatus import StockStatus
|
||||||
|
|
||||||
class Simulation (HTS):
|
class Simulation (HTS):
|
||||||
stock2Vector = None
|
stock2Vector = None
|
||||||
@@ -163,6 +163,28 @@ class Simulation (HTS):
|
|||||||
return
|
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):
|
def simulate(self, stock_codes:dict=None):
|
||||||
|
|
||||||
if stock_codes is not None:
|
if stock_codes is not None:
|
||||||
@@ -170,25 +192,30 @@ class Simulation (HTS):
|
|||||||
for given_day in stock_codes[stock_code]:
|
for given_day in stock_codes[stock_code]:
|
||||||
LAST_DATA = self.stock2Vector.getLastData(stock_code, given_day)
|
LAST_DATA = self.stock2Vector.getLastData(stock_code, given_day)
|
||||||
result = self.stock2Vector.getRealTime(stock_code, given_day, LAST_DATA)
|
result = self.stock2Vector.getRealTime(stock_code, given_day, LAST_DATA)
|
||||||
|
result_30 = self.makeTickData(result, min=30)
|
||||||
|
|
||||||
# 이동평균, RSI, MACD, 일목균형, 볼린저밴드 상/하단을 계산한다.
|
# 이동평균, RSI, MACD, 일목균형, 볼린저밴드 상/하단을 계산한다.
|
||||||
data = self.buySellChecker.analyze(result)
|
data1 = self.buySellChecker.analyze(result)
|
||||||
|
|
||||||
# 사야 할 시점과 팔아야 할 시점을 체크한다.
|
# 사야 할 시점과 팔아야 할 시점을 체크한다.
|
||||||
#bsLine, data = self.buySellChecker.checkTransaction(data, stock_code, isRealTime=False)
|
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)
|
|
||||||
|
|
||||||
# 그래프를 그린다.
|
# 그래프를 그린다.
|
||||||
self.draw(stock_code, given_day, data, bsLine)
|
self.draw(stock_code, given_day, data, bsLine)
|
||||||
else:
|
else:
|
||||||
dailyStatus = DailyStatus(self.RESOURCE_PATH)
|
stockStatus = StockStatus(self.RESOURCE_PATH)
|
||||||
dailyStatus.checkEnvelope()
|
stockStatus.checkEnvelope()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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()
|
PROJECT_HOME = os.getcwd()
|
||||||
RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources")
|
RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources")
|
||||||
|
|
||||||
@@ -197,11 +224,14 @@ if __name__ == "__main__":
|
|||||||
# to check bying
|
# to check bying
|
||||||
stock_codes = {
|
stock_codes = {
|
||||||
"252670": [
|
"252670": [
|
||||||
'20220901', '20220902', '20220905', '20220906', '20220907',
|
'20220901', '20220902', '20220905', '20220906', '20220907', '20220908','20220913','20220914','20220915','20220916'
|
||||||
'20220908','20220913','20220914','20220915','20220916'
|
],
|
||||||
|
"122630": [
|
||||||
|
'20220901', '20220902', '20220905', '20220906', '20220907', '20220908', '20220913', '20220914', '20220915',
|
||||||
|
'20220916'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
#simulation.simulate(stock_codes)
|
#simulation.simulate(stock_codes)
|
||||||
simulation.simulate()
|
simulation.simulate(stock_codes)
|
||||||
|
|
||||||
print ("done...")
|
print ("done...")
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from stock.crawler.FnGuideCrawler import FnGuideCrawler
|
|||||||
from stock.crawler.MetaCrawler import MetaCrawler
|
from stock.crawler.MetaCrawler import MetaCrawler
|
||||||
from stock.crawler.StockCrawler import StockCrawler
|
from stock.crawler.StockCrawler import StockCrawler
|
||||||
from stock.analysis.AnalyzerSqlite import AnalyzerSqlite
|
from stock.analysis.AnalyzerSqlite import AnalyzerSqlite
|
||||||
from stock.analysis.DailyStatus import DailyStatus
|
from stock.analysis.StockStatus import DailyStatus
|
||||||
|
|
||||||
today = datetime.now().strftime("%Y-%m-%d")
|
today = datetime.now().strftime("%Y-%m-%d")
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from hts.HTS import HTS
|
|||||||
from hts.BuySellChecker import BuySellChecker
|
from hts.BuySellChecker import BuySellChecker
|
||||||
from stock.analysis.AnalyzerSqlite import AnalyzerSqlite
|
from stock.analysis.AnalyzerSqlite import AnalyzerSqlite
|
||||||
|
|
||||||
class DailyStatus (HTS):
|
class StockStatus (HTS):
|
||||||
tableName = None
|
tableName = None
|
||||||
dbFileName = None
|
dbFileName = None
|
||||||
RESOURCE_PATH = None
|
RESOURCE_PATH = None
|
||||||
@@ -637,5 +637,5 @@ if __name__ == "__main__":
|
|||||||
PROJECT_HOME = os.path.join(os.path.dirname(os.path.join(os.path.dirname(os.path.join(os.path.dirname(__file__))))))
|
PROJECT_HOME = os.path.join(os.path.dirname(os.path.join(os.path.dirname(os.path.join(os.path.dirname(__file__))))))
|
||||||
RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources")
|
RESOURCE_PATH = os.path.join(PROJECT_HOME, "resources")
|
||||||
|
|
||||||
dailyStatus = DailyStatus(RESOURCE_PATH)
|
dailyStatus = StockStatus(RESOURCE_PATH)
|
||||||
dailyStatus.checkEnvelope()
|
dailyStatus.checkEnvelope()
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
import os
|
import os
|
||||||
import csv
|
|
||||||
import copy
|
import copy
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime
|
||||||
|
|
||||||
from hts.BuySellChecker import BuySellChecker
|
from hts.BuySellChecker import BuySellChecker
|
||||||
from hts.HTS import HTS
|
from hts.HTS import HTS
|
||||||
|
|||||||
Reference in New Issue
Block a user