def day_analysis_dict_pipe(): """ day数据分析, 放在数据处理线程中 :return: """ # 判断结果list result_analysis_list = [] jq_login() for tab in dict_stk_list.keys(): stk_list = dict_stk_list[tab] for stk_info in stk_list: stk = stk_info[1] df = get_k_data_JQ(stk, 400) # 其他指标 r_tuple_index_pic = gen_idx_pic_wx(df, stk_code=stk) result_analysis_list = result_analysis_list + r_tuple_index_pic[1] # 日线分析结果汇总 r_tuple_day_pic = gen_day_pic_wx(df, stk_code=stk) result_analysis_list = result_analysis_list + r_tuple_day_pic[1] jq.logout() debug_print_txt('hour_analysis', 'total_stk', str(result_analysis_list) + '\n') return result_analysis_list
def gen_stk_sea_select_pic_sub(stk_code): try: jq_login() # 保存路径 save_dir = sea_select_pic_dir + get_current_date_str() + '/' if not os.path.exists(save_dir): os.makedirs(save_dir) # 准备 小时 和 日线 数据 df_hour = gen_hour_macd_values(stk_code) df_day = get_k_data_JQ(stk_code, 800) # 定义图片名称 file_name = stk_code + '.png' # 生成小时图片 gen_hour_macd_pic_local(df_hour, stk_code, 'jq', '', save_dir + 'h_' + file_name) gen_hour_index_pic_local(df_hour[0], stk_code, save_dir + 'h_idx_' + file_name) gen_day_pic_local(df_day, stk_code, save_dir + 'd_' + file_name) gen_w_m_macd_pic_local(df_day, stk_code, save_dir + 'wm_' + file_name) gen_idx_pic_local(df_day, stk_code, save_dir + 'd_idx_' + file_name) except Exception as e: print('生成股票走势图失败!原因:\n' + str(e)) finally: logout()
def prepare_data(self): """ 准备数据 :return: """ if self.debug: print('开始准备数据...') jq_login() # 准备数据 df_m = get_k_data_JQ(self.stk_code, start_date=self.start_date, end_date=self.end_date, freq=str(self.retest_span) + 'm') df_m['date'] = df_m.apply(lambda x: str(x['datetime'])[:10], axis=1) df_day = get_k_data_JQ( self.stk_code, start_date=self.start_date, end_date=self.end_date).sort_index(ascending=True) if len(df_day) < self.max_days: if self.debug: print('max_days:%d day_data_length:%d minute_data_length:%d' % (self.max_days, len(df_day), len(df_m))) return False # 向day data 中 增加必要index self.data_day = add_stk_index_to_df(df_day).reset_index().reset_index() # 增加必要index self.data_minute = add_stk_index_to_df( df_m).reset_index().reset_index() logout() return True
def sea_select_thread(tc): try: jq_login() sc = ExecuteSelectRole() sc.sea_select(tc) except Exception as e_: text_append_color(tc, '海选功能执行失败!原因:\n%s\n' % str(e_)) finally: text_append_color(tc, '\n请输入命令:\n', color=wx.YELLOW)
def download_stk_list_day_data(stk_list, days=None): """ 给定stk_list,下载日期数据,以tuple的形式返回 :return: """ jq_login() stk_list_data = [(x, get_k_data_JQ(x, count=days)) for x in stk_list] stk_list_data = list(filter(lambda x: not x[1].empty, stk_list_data)) logout() return stk_list_data
def prepare_data(self, period='5m', count=48 * 100): """ 准备数据 :return: """ jq_login() # 准备数据 df_5m = get_k_data_JQ(self.stk_code, count=count, freq=period) df_5m['date'] = df_5m.apply(lambda x: str(x['datetime'])[:10], axis=1) df_day = get_k_data_JQ(self.stk_code, count=8 * 100, freq='30m').sort_index(ascending=True) # 想day data 中 增加必要index self.data_day = add_stk_index_to_df(df_day) # 增加必要index self.data_minute = add_stk_index_to_df(df_5m) logout()
def download_stk_list_hour_data(stk_list): """ 给定stk_list,下载半小时数据,以tuple的形式返回 :return: """ jq_login() stk_list_data = [ (x, get_k_data_JQ(x, count=120, end_date=add_date_str(get_current_date_str(), 1), freq='30m')) for x in stk_list ] # 清除空值 stk_list_data = list(filter(lambda x: not x[1].empty, stk_list_data)) logout() return stk_list_data
给定一个 股票代码,将该股票的信息打印到pdf中 """ import os from DataSource.Data_Sub import get_k_data_JQ from DataSource.auth_info import jq_login from Global_Value.file_dir import data_dir, sea_select_pic_dir from SDK.Gen_Stk_Pic_Sub import gen_hour_macd_values, gen_hour_macd_pic_local, gen_hour_index_pic_local, \ gen_day_pic_local, gen_w_m_macd_pic_local, gen_idx_pic_local from SDK.MyTimeOPT import get_current_date_str, get_current_datetime_str stk_code = '000001' if __name__ == '__main__': jq_login() """ --------------------- 生成相关图片 ------------------------ """ # 保存路径 save_dir = sea_select_pic_dir + get_current_date_str() + '/' if not os.path.exists(save_dir): os.makedirs(save_dir) # 准备 小时 和 日线 数据 df_hour = gen_hour_macd_values(stk_code) df_day = get_k_data_JQ(stk_code, 800) # 定义图片名称 file_name = stk_code + '.png'
# coding=utf-8
# encoding=utf-8 """ 本脚本用于维护一个本地的数据源 """ # jq_login() from DataSource.Data_Sub import get_k_data_JQ, get_all_stk import os import pandas as pd from DataSource.auth_info import jq_login from SDK.MyTimeOPT import get_current_datetime_str, add_date_str class LocalData: """ 数据本地化相关类 """ def __init__(self, stk_code, freq, save_dir): self.save_dir = save_dir self.save_url = self.save_dir + str(stk_code) + '.json' self.freq = freq self.stk_code = stk_code self.init_count = 800 self.df = None # 创建保存文件夹 self.make_dir() self.log = '' def download_data(self): """ 初次下载数据 :return: """
def gen_stk_list_kind_pic(self, kind, pool): """ 造图片,存本地 :param kind: h:小时 h_idx:小时idx d:天 wm:周、月 idx: 指数 :return: 返回的图片应该 执行page和行号,便于更新! 以多层字典的方式返回结果,第一层区分page,第二层区分行号! """ jq_login() """ 在外部下载需要的数据,防止多进程中重复连接聚宽 """ r_dic = {} for stk in self.stk_list: if kind is 'h': r_dic[stk + '_d'] = GenPic.gen_hour_macd_values(stk) elif kind is 'h_idx': r_dic[stk + '_d'] = GenPic.gen_hour_macd_values(stk)[0] elif kind is 'd': r_dic[stk + '_d'] = get_k_data_JQ(stk, 400) elif kind is 'wm': r_dic[stk + '_d'] = get_k_data_JQ( stk, count=400, end_date=get_current_date_str()).reset_index() elif kind is 'd_idx': r_dic[stk + '_d'] = get_k_data_JQ(stk, 400) logout() """ 生成pic """ for stk in self.stk_list: # 保存路径 save_dir = self.save_dir + get_current_date_str( ) + '/' + stk + kind + '/' file_name = get_current_datetime_str()[:-3].replace( ':', '').replace(' ', '').replace('-', '') + '.png' if not os.path.exists(save_dir): os.makedirs(save_dir) try: if kind is 'h': r_dic[stk + '_res'] = pool.apply_async( GenPic.gen_hour_macd_pic_local, (r_dic[stk + '_d'], stk, save_dir + file_name)) elif kind is 'h_idx': r_dic[stk + '_res'] = pool.apply_async( GenPic.gen_hour_index_pic_local, (r_dic[stk + '_d'], stk, save_dir + file_name)) elif kind is 'd': r_dic[stk + '_res'] = pool.apply_async( GenPic.gen_day_pic_local, (r_dic[stk + '_d'], stk, save_dir + file_name)) elif kind is 'wm': r_dic[stk + '_res'] = pool.apply_async( GenPic.gen_w_m_macd_pic_local, (r_dic[stk + '_d'], stk, save_dir + file_name)) elif kind is 'd_idx': r_dic[stk + '_res'] = pool.apply_async( GenPic.gen_idx_pic_local, (r_dic[stk + '_d'], stk, save_dir + file_name)) except Exception as e_: self.log = self.log + '函数 gen_stk_list_kind_pic:\n%s\n' % str( e_) print('函数 gen_stk_list_kind_pic:\n%s\n' % str(e_)) # 在字典中保存图片路径 r_dic[stk + '_url'] = save_dir + file_name return r_dic