스토캐스틱, 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 os
|
||||
from datetime import datetime, timedelta
|
||||
import pandas as pd
|
||||
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.Stochastic import Stochastic
|
||||
from stockpredictor.analysis.RSI import RSI
|
||||
|
||||
# enum 주문 상태 세팅용
|
||||
class EorderBS(Enum):
|
||||
buy = 1 # 매수
|
||||
@@ -32,10 +35,14 @@ class HTS:
|
||||
objCpCodeMgr = None
|
||||
common = None
|
||||
|
||||
stock = []
|
||||
stochastic = None
|
||||
rsi = None
|
||||
|
||||
def __init__(self):
|
||||
self.common = Common()
|
||||
self.stochastic = Stochastic()
|
||||
self.rsi = RSI()
|
||||
|
||||
#self.connect()
|
||||
return
|
||||
|
||||
@@ -558,7 +565,6 @@ class HTS:
|
||||
upper_df = max20 + (stddev20 * 2) # 상단 볼린저 밴드
|
||||
lower_df = max20 - (stddev20 * 2) # 하단 볼린저 밴드
|
||||
|
||||
size = len(result["open"])
|
||||
window = 5
|
||||
open = result["open"]
|
||||
close = result["close"]
|
||||
@@ -597,7 +603,31 @@ class HTS:
|
||||
|
||||
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)
|
||||
df_final_time = pd.DatetimeIndex(point_temp)
|
||||
data.index = df_final_time
|
||||
@@ -1115,9 +1145,9 @@ if __name__ == "__main__":
|
||||
#for stock_code in stock_codes:
|
||||
#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.simulate(stock_codes[0], given_day)
|
||||
hts.buyRealTime(stock_codes[0], given_day)
|
||||
hts.simulate(stock_codes[0], given_days[0])
|
||||
#hts.buyRealTime(stock_codes[0], given_day)
|
||||
|
||||
print ("done...")
|
||||
|
||||
Reference in New Issue
Block a user