def save_csv(self,code):
df = ts.get_k_data(code,start='2016-01-01',end='2016-12-28')
filename=code+".csv"
#df.to_csv(filename)
df.to_sql("newtable",self.db,flavor='sqlite')
python类get_k_data()的实例源码
def get(self):
symbol = self.get_argument("symbol")#????
period = self.get_argument("period")#????,??-??
period_allow_list = ["5","15","30","60","1440","M","W"]
if period not in period_allow_list:
return
data = None
if period =="1440":
data = ts.get_hist_data(symbol)
else:
data = ts.get_k_data(symbol,ktype=period)
print "=========",symbol,":",period
resultlist = []
lens = len(data)
for unit in data.iterrows():
obj = {}
dates = None
if period =="1440":
dates = unit[1].name
else:
dates = unit[1]['date']
print "len",len(dates)
# ????10??%Y-%m-%d??,16??%Y-%m-%d %H:%M ??
dataformate = "%Y-%m-%d %H:%M"
date_len = len(dates)
if date_len == 10 :
dataformate = "%Y-%m-%d"
d=datetime.datetime.strptime(dates,dataformate)
obj["date"]=int(time.mktime(d.timetuple()))
obj["open"]=unit[1]['open']
obj["close"]=unit[1]['close']
obj["high"]=unit[1]['high']
obj["low"]=unit[1]['low']
obj["volume"]=unit[1]['volume']
resultlist.append(obj)
resultlist.sort(key=lambda obj:obj.get('date'), reverse=False)
s = json.dumps(resultlist)
self.write(s)
Fetch_Data_Stock_CHN_Weekly.py 文件源码
项目:StockRecommendSystem
作者: doncat99
项目源码
文件源码
阅读 23
收藏 0
点赞 0
评论 0
def getSingleStock(symbol):
repeat_times = 1
message = ""
df = pd.DataFrame()
for _ in range(repeat_times):
try:
data = ts.get_k_data(symbol, ktype='W')
data.sort_index(ascending=True, inplace=True)
return data, ""
except Exception as e:
message = symbol + " fetch exception: " + str(e)
continue
return df, message
Fetch_Data_Stock_CHN_Daily.py 文件源码
项目:StockRecommendSystem
作者: doncat99
项目源码
文件源码
阅读 21
收藏 0
点赞 0
评论 0
def getSingleStock(symbol):
repeat_times = 1
message = ""
df = pd.DataFrame()
for _ in range(repeat_times):
try:
data = ts.get_k_data(symbol)
data.sort_index(ascending=True, inplace=True)
return data, ""
except Exception as e:
message = symbol + " fetch exception: " + str(e)
continue
return df, message
Fetch_Data_Stock_CHN_Monthly.py 文件源码
项目:StockRecommendSystem
作者: doncat99
项目源码
文件源码
阅读 16
收藏 0
点赞 0
评论 0
def getSingleStock(symbol):
repeat_times = 1
message = ""
df = pd.DataFrame()
for _ in range(repeat_times):
try:
data = ts.get_k_data(symbol, ktype='M')
data.sort_index(ascending=True, inplace=True)
return data, ""
except Exception as e:
message = symbol + " fetch exception: " + str(e)
continue
return df, message
Filter_Stock_Cashflow_CHN.py 文件源码
项目:StockRecommendSystem
作者: doncat99
项目源码
文件源码
阅读 23
收藏 0
点赞 0
评论 0
def get_single_stock_data_daily(root_path, symbol):
'''
All data is from quandl wiki dataset
Feature set: [Open High Low Close Volume Ex-Dividend Split Ratio Adj. Open Adj. High Adj. Low
Adj. Close Adj. Volume]
'''
#df, lastUpdateTime = queryStock(root_path, "DB_STOCK", "SHEET_CHN", "_DAILY", symbol, "daily_update")
try:
df = ts.get_k_data(symbol)
df.set_index('date', inplace=True)
df.sort_index(ascending=True, inplace=True)
except:
print("stock delisted", symbol)
return pd.DataFrame()
if df.empty:
print("stock delisted", symbol)
return pd.DataFrame()
out_path = root_path + "/Data/CSV/symbols/"
if os.path.exists(out_path) == False:
os.mkdir(out_path)
out_file = out_path + symbol + ".csv"
df.to_csv(out_file)
return df
def __initFlag__(self):
#use sh for index flag
flagindex = self.INDEX_LABELS[0]
df_data = ts.get_k_data(flagindex, index=False, ktype='D').tail(1)
if df_data.empty == True:
print "security:%s NO __initFlag__!" %(str(flagindex))
return
if len(df_data['close'].values) < 1:
print "security:%s noclose data __initFlag__!" %(str(flagindex))
dateStr = df_data['date'].values[0]
close = df_data['close'].values[0]
print "init flagindex last time:%s,close:%s" %(str(dateStr),str(close))
current_dt = self.__getdatetime__(dateStr)
self.__indexc__= close
self.__context__= TsContext(current_dt)
def GET_CLOSE_DATA_INTRADAY(self, context, security, data={}, freq=5, dataCount=1):
periodtype = str(freq)
df_data = ts.get_k_data(security, index=False, ktype=periodtype).tail(dataCount)
if df_data.empty == True:
print "security:%s in freq:%s NO GET_CLOSE_DATA_INTRADAY!" %(str(security),str(freq))
return np.array([np.nan])
return self.GET_CLOSE_DATA_INTRADAY_DF(context, df_data)
def GET_HIGH_DATA_INTRADAY(self, context, security, data={}, freq=5, dataCount=1):
periodtype = str(freq)
df_data = ts.get_k_data(security, index=False, ktype=periodtype).tail(dataCount)
if df_data.empty == True:
print "security:%s in freq:%s NO GET_HIGH_DATA_INTRADAY!" %(str(security),str(freq))
return np.array([np.nan])
return self.GET_HIGH_DATA_INTRADAY_DF(context, df_data)
def GET_LOW_DATA_INTRADAY(self, context, security, data={}, freq=5, dataCount=1):
periodtype = str(freq)
df_data = ts.get_k_data(security, index=False, ktype=periodtype).tail(dataCount)
if df_data.empty == True:
print "security:%s in freq:%s NO GET_LOW_DATA_INTRADAY!" %(str(security),str(freq))
return np.array([np.nan])
return self.GET_LOW_DATA_INTRADAY_DF(context, df_data)
def GET_VOL_DATA_INTRADAY(self, context, security, data={}, freq=5, dataCount=1):
periodtype = str(freq)
df_data = ts.get_k_data(security, index=False, ktype=periodtype).tail(dataCount)
if df_data.empty == True:
print "security:%s in context:%s NO GET_VOL_DATA_INTRADAY!" %(str(security),str(context))
return np.array([np.nan])
return df_data['volume'].values
def GET_LOW_DAY(self, context, security, ref=0):
dataCount = ref + 1
df_data = ts.get_k_data(security, index=False, ktype='D').tail(dataCount)
if df_data.empty == True:
print "security:%s in context:%s NO GET_LOW_DAY!" %(str(security),str(context))
return np.nan
if len(df_data['low']) < ref:
return np.nan
return df_data['low'].values[-ref]
def GET_HIGH_DATA_DAY(self, context,security,isLastest=True,data={},dataCount=1):
df_data = ts.get_k_data(security, index=False, ktype='D').tail(dataCount)
if df_data.empty == True:
print "security:%s in context:%s NO GET_HIGH_DATA_DAY!" %(str(security),str(context))
return np.array([np.nan])
return self.GET_HIGH_DATA_DAY_DF(context, df_data)
def GET_LOW_DATA_DAY(self, context,security,isLastest=True,data={},dataCount=1):
df_data = ts.get_k_data(security, index=False, ktype='D').tail(dataCount)
if df_data.empty == True:
print "security:%s in context:%s NO GET_LOW_DATA_DAY!" %(str(security),str(context))
return np.array([np.nan])
return self.GET_LOW_DATA_DAY_DF(context, df_data)
def GET_HIGH_DATA_WEEK(self,context,security,isLastest=True,data={},dataCount=1,isSample=False):
df_data = ts.get_k_data(security, index=False, ktype='W').tail(dataCount) if isSample else ts.get_k_data(security, index=False, ktype='D').tail(dataCount*5)
if df_data.empty == True:
print "security:%s in context:%s NO GET_HIGH_DATA_WEEK!" %(str(security),str(context))
return np.array([np.nan])
return self.GET_HIGH_DATA_WEEK_DF(context, df_data, isSample)
def GET_HIGH_DATA_MONTH(self, context,security,isLastest=True,data={},dataCount=1,isSample=True):
df_data = ts.get_k_data(security, index=False, ktype='M').tail(dataCount) if isSample else ts.get_k_data(security, index=False, ktype='D').tail(dataCount*20)
if df_data.empty == True:
print "security:%s in context:%s NO GET_HIGH_DATA_MONTH!" %(str(security),str(context))
return np.array([np.nan])
return self.GET_HIGH_DATA_MONTH_DF(context, df_data, isSample)
def GET_LOW_DATA_MONTH(self, context,security,isLastest=True,data={},dataCount=1,isSample=True):
df_data = ts.get_k_data(security, index=False, ktype='M').tail(dataCount) if isSample else ts.get_k_data(security, index=False, ktype='D').tail(dataCount*20)
if df_data.empty == True:
print "security:%s in context:%s NO GET_LOW_DATA_MONTH!" %(str(security),str(context))
return np.array([np.nan])
return self.GET_LOW_DATA_MONTH_DF(context, df_data, isSample)
def GET_CLOSE_DAY(self, context, security, ref=0 ,data={}):
dataCount = ref + 1
df_data = ts.get_k_data(security, index=False, ktype='D').tail(dataCount)
if df_data.empty == True:
print "security:%s NO GET_CLOSE_DAY!" %(str(security))
return np.nan
if len(df_data['close']) < ref + 1:
return np.nan
return df_data['close'].values[-ref]
# ????????
def GET_CLOSE_DATA_DAY(self, context, security,isLastest=True,data={},dataCount=20):
df_data = ts.get_k_data(security, index=False, ktype='D').tail(dataCount)
if df_data.empty == True:
print "security:%s NO GET_CLOSE_DATA_DAY!" %(str(security))
return np.array([np.nan])
return self.GET_CLOSE_DATA_DAY_DF(context, df_data)
def GET_CLOSE_DATA_WEEK(self, context, security,isLastest=True,data={},dataCount=20,isSample=False):
df_data = ts.get_k_data(security, index=False, ktype='W').tail(dataCount) if isSample else ts.get_k_data(security, index=False, ktype='D').tail(dataCount*5)
if df_data.empty == True:
print "security:%s in context:%s NO GET_CLOSE_DATA_WEEK!" %(str(security),str(context))
return np.array([np.nan])
return self.GET_CLOSE_DATA_WEEK_DF(context, df_data, isSample)