init
This commit is contained in:
47
hts/HTS.py
47
hts/HTS.py
@@ -1,7 +1,9 @@
|
||||
#import win32com.client
|
||||
import time
|
||||
import os
|
||||
from datetime import datetime, timedelta
|
||||
import pandas as pd
|
||||
import schedule
|
||||
import matplotlib.pyplot as plt
|
||||
import plotly.graph_objects as go
|
||||
|
||||
@@ -292,6 +294,7 @@ class HTS:
|
||||
int_day = objStockChart.GetDataValue(0, i)
|
||||
int_time = objStockChart.GetDataValue(1, i)
|
||||
print (int_day, int_time)
|
||||
|
||||
if int_day < int_given_day:
|
||||
continue
|
||||
time = datetime.strptime(str(int_day)+" "+str(objStockChart.GetDataValue(1, i)).zfill(4)+"00", '%Y%m%d %H%M%S')
|
||||
@@ -475,6 +478,21 @@ class HTS:
|
||||
|
||||
return
|
||||
|
||||
def checkRealTime(self, stock_code, given_day, result):
|
||||
# 데이터를 가지고 온다.
|
||||
self.getRealTime(stock_code, given_day, result)
|
||||
|
||||
# 가져온 만큼 데이터를 누적해서 파일로 작성한다.
|
||||
self.write(given_day, result)
|
||||
|
||||
# 분석을 통해서 볼린저밴드 상/하단을 계산한다.
|
||||
data, upper, lower, buy_line, sell_line = self.analyze(result)
|
||||
|
||||
# 주문 및 매도 처리
|
||||
# self.draw(given_day, data, upper, lower, buy_line, sell_line)
|
||||
|
||||
return
|
||||
|
||||
def buyRealTime(self, stock_code, given_day):
|
||||
result = {"check": set(),
|
||||
"time": [],
|
||||
@@ -484,17 +502,22 @@ class HTS:
|
||||
"low": [],
|
||||
"vol": []}
|
||||
|
||||
# 데이터를 가지고 온다.
|
||||
self.getRealTime(stock_code, given_day, result)
|
||||
schedule.every().hour.at(":0:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 0분 5초에 작업 실행
|
||||
schedule.every().hour.at(":5:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 5분 5초에 작업 실행
|
||||
schedule.every().hour.at(":10:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 10분 5초에 작업 실행
|
||||
schedule.every().hour.at(":15:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 15분 5초에 작업 실행
|
||||
schedule.every().hour.at(":20:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 20분 5초에 작업 실행
|
||||
schedule.every().hour.at(":25:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 25분 5초에 작업 실행
|
||||
schedule.every().hour.at(":30:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 30분 5초에 작업 실행
|
||||
schedule.every().hour.at(":35:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 35분 5초에 작업 실행
|
||||
schedule.every().hour.at(":40:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 40분 5초에 작업 실행
|
||||
schedule.every().hour.at(":45:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 45분 5초에 작업 실행
|
||||
schedule.every().hour.at(":50:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 50분 5초에 작업 실행
|
||||
schedule.every().hour.at(":55:5").do(self.checkRealTime(stock_code, given_day, result)) # 매시간 55분 5초에 작업 실행
|
||||
|
||||
# 가져온 만큼 데이터를 누적해서 파일로 작성한다.
|
||||
self.write(given_day, result)
|
||||
|
||||
# 분석을 통해서 볼린저밴드 상/하단을 계산한다.
|
||||
#data, upper, lower, buy_line, sell_line = self.analyze(result)
|
||||
|
||||
# 그래프를 그린다.
|
||||
#self.draw(given_day, data, upper, lower, buy_line, sell_line)
|
||||
while datetime.now() < datetime.strptime(given_day + " 151500", '%Y%m%d %H%M%S'):
|
||||
schedule.run_pending()
|
||||
time.sleep(1)
|
||||
|
||||
return
|
||||
|
||||
@@ -532,7 +555,7 @@ if __name__ == "__main__":
|
||||
"""
|
||||
|
||||
given_day = '20210917'
|
||||
hts.simulate(stock_code, given_day)
|
||||
#hts.buyRealTime(stock_code, given_day)
|
||||
#hts.simulate(stock_code, given_day)
|
||||
hts.buyRealTime(stock_code, given_day)
|
||||
|
||||
print ("done...")
|
||||
|
||||
Reference in New Issue
Block a user