コード例 #1
0
def queryPerformanceExpressReportByCode(code, starDate):
    list = []
    data = query_performance_express_report(code, start_date=starDate)
    while (data.error_code == '0') & data.next():
        list.append(data.get_row_data())
    data = pd.DataFrame(list, columns=data.fields)
    return data
コード例 #2
0
def get_performance_express_data(stock_number, stock_name, start_date,
                                 end_date):

    print('==========================================================')
    print("开始进行: " + stock_name + "(" + stock_number + ")" + "的数据处理")
    print("尝试登陆baostock")
    #####login#####
    lg = bs.login(user_id="anonymous", password="******")
    if (lg.error_code == '0'):
        print("登陆成功")
    else:
        print("登录失败")

    #####get stock data#####
    rs = bs.query_performance_express_report(stock_number, start_date,
                                             end_date)

    print('请求历史数据返回代码:' + rs.error_code)
    print('请求历史数据返回信息:' + rs.error_msg)

    data_list = []
    while (rs.error_code == '0') & rs.next():
        data_list.append(rs.get_row_data())

    result = pd.DataFrame(data_list, columns=rs.fields)
    bs.logout()
    print(stock_name + "(" + stock_number + ")" + "的数据处理完成")
    print('==========================================================')
    return result
コード例 #3
0
def getPerformanceReport(id: str, begin: str = None, end: str = None):
    data = BaoStock.query_performance_express_report(id, begin, end).get_data()
    result = []
    for row in data.iterrows():
        result.append({getPerformanceReportMap[key][0]: getPerformanceReportMap[key][1](
            row[1][key]) for key in data.keys() if key in getPerformanceReportMap})
    return result
コード例 #4
0
    def query_performance_express_report(code, start_date, end_date):
        """
        季频公司业绩快报
        方法说明:通过API接口获取季频公司业绩快报信息,可以通过参数设置获取起止年份数据,提供2006年至今数据。
        返回类型:pandas的DataFrame类型。
        参数含义:
        code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
        start_date:开始日期,发布日期或更新日期在这个范围内;
        end_date:结束日期,发布日期或更新日期在这个范围内。
        """
        lg = bs.login()
        if lg.error_code != '0':
            logger.error('login respond  error_msg:' + lg.error_msg)

        rs = bs.query_performance_express_report(code,
                                                 start_date=start_date,
                                                 end_date=end_date)
        if rs.error_code != '0':
            logger.error(
                'query_performance_express_report respond  error_msg:' +
                rs.error_msg)

        result_list = []
        while (rs.error_code == '0') & rs.next():
            result_list.append(rs.get_row_data())
        result = pd.DataFrame(result_list, columns=rs.fields)

        bs.logout()
        return result
コード例 #5
0
ファイル: stock.py プロジェクト: likehang/stock_analystic
 def quarter_performance_express_report(self,
                                        code,
                                        end_date,
                                        start_date='2006-01-01'):
     self.getStockInstance()
     rs = bs.query_performance_express_report(code, start_date, end_date)
     self._test_rs(rs)
     return rs
コード例 #6
0
    def query_performance_express_report(self, code, start_date, end_date):
        '''
        code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
        start_date:开始日期,发布日期或更新日期在这个范围内;
        end_date:结束日期,发布日期或更新日期在这个范围内。
        '''
        rs = bs.query_performance_express_report(code, start_date=start_date, end_date=end_date)
        self.log('query_performance_express_report respond  error_msg:', rs)

        result_list = []
        while (rs.error_code == '0') & rs.next():
            result_list.append(rs.get_row_data())
        result = pd.DataFrame(result_list, columns=rs.fields)
        return result
コード例 #7
0
def query_performance_express_report(start_date, end_date):
    """
    季频公司业绩快报:query_performance_express_report()
    方法说明:查询季频公司业绩快报信息,可以通过参数设置获取起止年份数据,提供2006年至今数据。
    返回类型:pandas的DataFrame类型。
    
    """
    all_stock = pd.read_csv(path + "all_stock.csv")
    all_stock.drop_duplicates(subset=['code'], keep='first', inplace=True)

    #### 登陆系统 ####
    lg = bs.login()
    # 显示登陆返回信息
    #print('login respond error_code:'+lg.error_code)
    #print('login respond  error_msg:'+lg.error_msg)

    #### 获取公司业绩快报 ####
    result_all = pd.DataFrame([])
    for code in all_stock.code:
        rs = bs.query_performance_express_report(code,
                                                 start_date=start_date,
                                                 end_date=end_date)
        #print('query_performance_express_report respond error_code:'+rs.error_code)
        #print('query_performance_express_report respond  error_msg:'+rs.error_msg)

        result_list = []
        while (rs.error_code == '0') & rs.next():
            result_list.append(rs.get_row_data())
            # 获取一条记录,将记录合并在一起
        result = pd.DataFrame(result_list, columns=rs.fields)
        result_all = result_all.append(result)

    #### 结果集输出到csv文件 ####
    performance_express_report = pd.read_csv(path +
                                             "performance_express_report.csv")
    result_all = result_all.append(performance_express_report)
    result_all.drop_duplicates(subset=[
        'code', 'performanceExpPubDate', 'performanceExpStatDate',
        'performanceExpUpdateDate'
    ],
                               keep='first',
                               inplace=True)
    result_all.to_csv(path + "performance_express_report.csv",
                      encoding="gbk",
                      index=False)
    #print(result)

    #### 登出系统 ####
    bs.logout()
コード例 #8
0
ファイル: getBaostockData.py プロジェクト: zazaji/finance
def get_forcast(code,start='2019-01-01',end='2020-02-02'):
    result_list = []
    rs_forecast_list = []
#     print(code,start, end)
    rs = bs.query_performance_express_report(code, start_date=start, end_date=end)
    while (rs.error_code == '0') & rs.next():
        result_list.append(rs.get_row_data())
    result = pd.DataFrame(result_list, columns=rs.fields)
    
    rs_forecast = bs.query_forecast_report(code, start_date=start, end_date=end)
    while (rs_forecast.error_code == '0') & rs_forecast.next():
        rs_forecast_list.append(rs_forecast.get_row_data())
    result_forecast = pd.DataFrame(rs_forecast_list, columns=rs_forecast.fields)
    
    return result,result_forecast
コード例 #9
0
    def get_performance_express_report_df(code: str, start_date: str, end_date: str) -> pd.DataFrame:
        column_mapping = {
            "performanceExpPubDate": "date",
            "performanceExpStatDate": "period",
            "performanceExpressROEWa": "value",
        }

        resp = bs.query_performance_express_report(code=code, start_date=start_date, end_date=end_date)
        report_list = []
        while (resp.error_code == "0") and resp.next():
            report_list.append(resp.get_row_data())
        report_df = pd.DataFrame(report_list, columns=resp.fields)
        try:
            report_df = report_df[list(column_mapping.keys())]
        except KeyError:
            return pd.DataFrame()
        report_df.rename(columns=column_mapping, inplace=True)
        report_df["field"] = "roeWa"
        report_df["value"] = pd.to_numeric(report_df["value"], errors="ignore")
        report_df["value"] = report_df["value"].apply(lambda x: x / 100.0)
        return report_df
コード例 #10
0
    def GetCurrentStockFundamentals(self, *args, **kwargs):
        post_data_code = CheckKeyOrAbort(kStockCodeKey, kwargs)

        profit_data_handler = bs.query_profit_data(post_data_code)
        profit_data = profit_data_handler.get_data()
        operation_data_handler = bs.query_operation_data(post_data_code)
        operation_data = operation_data_handler.get_data()
        growth_data_handler = bs.query_growth_data(post_data_code)
        growth_data = growth_data_handler.get_data()
        balance_data_handler = bs.query_balance_data(post_data_code)
        balance_data = balance_data_handler.get_data()
        cash_flow_data_handler = bs.query_balance_data(post_data_code)
        cash_flow_data = cash_flow_data_handler.get_data()
        dupont_data_handler = bs.query_dupont_data(post_data_code)
        dupont_data = dupont_data_handler.get_data()
        performance_data_handler = bs.query_performance_express_report(
            post_data_code)
        performance_data = performance_data_handler.get_data()
        forecast_data_handler = bs.query_forecast_report(post_data_code)
        forecast_data = forecast_data_handler.get_data()

        return profit_data, operation_data, growth_data, balance_data, cash_flow_data, dupont_data, performance_data, forecast_data
コード例 #11
0
def importData(data, engine):
    keys = {
        '利润表': 'tb_income_statement',
        '资产负债表': 'tb_balance_sheet',
        '现金流量表': 'tb_flow_cash'
    }
    lg = bs.login()
    end_date = datetime.datetime.now().date()
    for code in data['symbol']:
        # 显示登陆返回信息
        # print('login respond error_code:' + lg.error_code)
        # print('login respond  error_msg:' + lg.error_msg)

        #### 获取公司业绩快报 ####

        rs = bs.query_performance_express_report(code,
                                                 start_date="1990-01-01",
                                                 end_date='2020-12-31')
        print('query_performance_express_report respond error_code:' +
              rs.error_code)
        print('query_performance_express_report respond  error_msg:' +
              rs.error_msg)

        result_list = []
        while (rs.error_code == '0') & rs.next():
            result_list.append(rs.get_row_data())
            # 获取一条记录,将记录合并在一起
        result = pd.DataFrame(result_list, columns=rs.fields)
        #### 结果集输出到csv文件 ####
        # result.to_csv("D:\\performance_express_report.csv", encoding="gbk", index=False)
        # print(result)

        result.to_sql('performance', con=engine, if_exists='append')
        time.sleep(0.1)
        #### 登出系统 ####
    bs.logout()
コード例 #12
0
import baostock as bs
import pandas as pd

#### 登陆系统 ####
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:' + lg.error_code)
print('login respond  error_msg:' + lg.error_msg)

#### 获取公司业绩快报 ####
rs = bs.query_performance_express_report("sh.600000",
                                         start_date="2015-01-01",
                                         end_date="2017-12-31")
print('query_performance_express_report respond error_code:' + rs.error_code)
print('query_performance_express_report respond  error_msg:' + rs.error_msg)

result_list = []
while (rs.error_code == '0') & rs.next():
    result_list.append(rs.get_row_data())
    # 获取一条记录,将记录合并在一起
result = pd.DataFrame(result_list, columns=rs.fields)
#### 结果集输出到csv文件 ####
result.to_csv("D:\\performance_express_report.csv",
              encoding="gbk",
              index=False)
print(result)

#### 登出系统 ####
bs.logout()
コード例 #13
0
import baostock as bs
import pandas as pd

#### 登陆系统 ####
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:' + lg.error_code)
print('login respond  error_msg:' + lg.error_msg)

#### 获取公司业绩快报 ####
rs = bs.query_performance_express_report("sz.000001",
                                         start_date="2017-01-01",
                                         end_date="2019-12-31")
print('query_performance_express_report respond error_code:' + rs.error_code)
print('query_performance_express_report respond  error_msg:' + rs.error_msg)

result_list = []
while (rs.error_code == '0') & rs.next():
    result_list.append(rs.get_row_data())
    # 获取一条记录,将记录合并在一起
result = pd.DataFrame(result_list, columns=rs.fields)
#### 结果集输出到csv文件 ####
result.to_csv("D:\\performance_express_report.csv",
              encoding="gbk",
              index=False)
print(result)

#### 登出系统 ####
bs.logout()