Exemplo n.º 1
0
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
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
            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)
Exemplo n.º 5
0
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
Exemplo n.º 6
0
    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()
Exemplo n.º 7
0
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
Exemplo n.º 8
0
给定一个 股票代码,将该股票的信息打印到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'
Exemplo n.º 9
0
# coding=utf-8
Exemplo n.º 10
0
# 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:
        """
Exemplo n.º 11
0
    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