스토캐스틱, RSI 추가
This commit is contained in:
46
hts/HTS.py
46
hts/HTS.py
@@ -1,12 +1,15 @@
|
|||||||
import win32com.client
|
#import win32com.client
|
||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
#import plotly.graph_objects as go
|
import plotly.graph_objects as go
|
||||||
from stockpredictor.analysis.Common import Common
|
from stockpredictor.analysis.Common import Common
|
||||||
|
|
||||||
|
from stockpredictor.analysis.Stochastic import Stochastic
|
||||||
|
from stockpredictor.analysis.RSI import RSI
|
||||||
|
|
||||||
# enum 주문 상태 세팅용
|
# enum 주문 상태 세팅용
|
||||||
class EorderBS(Enum):
|
class EorderBS(Enum):
|
||||||
buy = 1 # 매수
|
buy = 1 # 매수
|
||||||
@@ -32,10 +35,14 @@ class HTS:
|
|||||||
objCpCodeMgr = None
|
objCpCodeMgr = None
|
||||||
common = None
|
common = None
|
||||||
|
|
||||||
stock = []
|
stochastic = None
|
||||||
|
rsi = None
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.common = Common()
|
self.common = Common()
|
||||||
|
self.stochastic = Stochastic()
|
||||||
|
self.rsi = RSI()
|
||||||
|
|
||||||
#self.connect()
|
#self.connect()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -558,7 +565,6 @@ class HTS:
|
|||||||
upper_df = max20 + (stddev20 * 2) # 상단 볼린저 밴드
|
upper_df = max20 + (stddev20 * 2) # 상단 볼린저 밴드
|
||||||
lower_df = max20 - (stddev20 * 2) # 하단 볼린저 밴드
|
lower_df = max20 - (stddev20 * 2) # 하단 볼린저 밴드
|
||||||
|
|
||||||
size = len(result["open"])
|
|
||||||
window = 5
|
window = 5
|
||||||
open = result["open"]
|
open = result["open"]
|
||||||
close = result["close"]
|
close = result["close"]
|
||||||
@@ -597,7 +603,31 @@ class HTS:
|
|||||||
|
|
||||||
point_temp = result["time"]
|
point_temp = result["time"]
|
||||||
|
|
||||||
temp = {"Date": point_temp, "Open": open, "High": high, "Low": low, "Close": close, "Volume": vol, "avg1": avg1, "avg2": avg2, "avg5": avg5, "avg10": avg10, "avg20": avg20, "avg30": avg30, "avg40": avg40, "avg50": avg50, "avg60": avg60}
|
STOCK = []
|
||||||
|
for i in range(len(result["open"])):
|
||||||
|
STOCK.append({'volume': vol[i], 'close': close[i], 'open': open[i],
|
||||||
|
'high': high[i], 'low': low[i], 'avg5': avg2[i],
|
||||||
|
'avg20': avg5[i], 'avg60': avg10[i], 'avg120': avg20[i],
|
||||||
|
'avg240': avg30[i]})
|
||||||
|
|
||||||
|
# stochastic 계산
|
||||||
|
stochastic_df = self.stochastic.apply(pd.DataFrame(STOCK))
|
||||||
|
stochastic_df = stochastic_df.fillna(0)
|
||||||
|
fast_k = stochastic_df['fast_k'].values.tolist()
|
||||||
|
slow_k = stochastic_df['slow_k'].values.tolist()
|
||||||
|
slow_d = stochastic_df['slow_d'].values.tolist()
|
||||||
|
|
||||||
|
# rsi 계산
|
||||||
|
rsi_df = self.rsi.apply(pd.DataFrame(STOCK))
|
||||||
|
rsi_df = rsi_df.fillna(0)
|
||||||
|
rsi = rsi_df['rsi'].values.tolist()
|
||||||
|
rsis = rsi_df['rsis'].values.tolist()
|
||||||
|
|
||||||
|
temp = {"Date": point_temp,
|
||||||
|
"Open": open, "High": high, "Low": low, "Close": close, "Volume": vol,
|
||||||
|
"avg1": avg1, "avg2": avg2, "avg5": avg5, "avg10": avg10, "avg20": avg20, "avg30": avg30, "avg40": avg40, "avg50": avg50, "avg60": avg60,
|
||||||
|
"fast_k": fast_k, "slow_k": slow_k, "slow_d": slow_d,
|
||||||
|
"rsi": rsi, "rsis": rsis}
|
||||||
data = pd.DataFrame(temp)
|
data = pd.DataFrame(temp)
|
||||||
df_final_time = pd.DatetimeIndex(point_temp)
|
df_final_time = pd.DatetimeIndex(point_temp)
|
||||||
data.index = df_final_time
|
data.index = df_final_time
|
||||||
@@ -1115,9 +1145,9 @@ if __name__ == "__main__":
|
|||||||
#for stock_code in stock_codes:
|
#for stock_code in stock_codes:
|
||||||
#hts.simulate(stock_code, given_day)
|
#hts.simulate(stock_code, given_day)
|
||||||
|
|
||||||
given_day = datetime.today().strftime('%Y%m%d')
|
#given_day = datetime.today().strftime('%Y%m%d')
|
||||||
#hts.writeStockData(stock_codes, given_day)
|
#hts.writeStockData(stock_codes, given_day)
|
||||||
#hts.simulate(stock_codes[0], given_day)
|
hts.simulate(stock_codes[0], given_days[0])
|
||||||
hts.buyRealTime(stock_codes[0], given_day)
|
#hts.buyRealTime(stock_codes[0], given_day)
|
||||||
|
|
||||||
print ("done...")
|
print ("done...")
|
||||||
|
|||||||
Reference in New Issue
Block a user