固定收益证券软件概述

固定收益证券,重点使用的软件有下面几个

  • 万得 wind
  • 同花顺 iFinD
  • 慧博终端

1 万德Wind数据库

一款专业的金融数据和分析软件,提供及时、准确的金融数据和分析: 一款专业的金融数据和分析软件,提供全面、及时、准确的金融信息,为投资决策提供支持。它涵盖股票、债券、期货、外汇和基金等市场。

主要功能

  • 基本查询操作: 包括股票搜索、多股搜索、行业搜索、新闻搜索和金融数据搜索。
  • 图表分析: 提供丰富的图表分析功能,如 K 线图、趋势线、移动平均线和交易量。
  • 策略分析: 包括技术分析、财务分析、基本面分析和宏观经济分析。
  • 市场分析服务: 各种市场的每日分析报告和数据分析,以及图表分析工具和金融课程。
  • 开发: Wind 的 Python SDK 使用 WindPy 库。

2 同花顺(iFinD)

一款专业的金融数据和分析软件,涵盖股票、债券、基金、期货、指数和外汇等中国金融产品。

主要功能

  1. 股票:提供深度数据F9、特殊报告、数据浏览器、智能搜索等方式查看数据。支持上海、深圳、香港和美国的估值模型,并提供企业库、企业图谱、条件股票选择、智能财务查询、事件驱动、组合管理、估值模型、投资助手等特色功能。
  2. 债券:涵盖利率债、信用债、可转债、货币市场、票据市场、资产支持证券、海外债券、信用风险减轻工具、国债和期货等金融产品的交易信息、报价、深度数据、宏观指标等数据。
  3. 基金:涵盖中国和美国的公募基金、券商资产管理、信托私募、银行理财和保险资产管理等金融产品。
  4. 期货和期权:提供国内外期货和期权及贵金属现货的实时市场和相关信息、研究报告信息。
  5. 外汇:提供外汇信息、在岸和离岸人民币市场及远期、掉期报价、交易详情等。
  6. 指数:涵盖上海证券交易所系列指数、深圳证券交易所系列指数、申万系列指数、中证系列指数、中信系列指数、CN系列指数、富时系列指数、基金、债券和期货指数、恒生系列指数、中证证券指数和全球指数。
  7. 新闻和研究报告:涵盖超过4000家研究机构,每天提供超过2000份专业研究报告。
  8. 宏观:根据宏观分析的经典理论并连接到底层数据库,构建宏观经济运行预测模型。

API: 需要下载相应的 SDK 进行开发。支持 Python、Matlab、R、VBA、C++、C#、Java 等语言。

iFinD 数据接口: 提供设置开发环境的详细说明。

iFinD的基本操作

主要分为两个,一个是终端,另外一个是API接口

API的话需要先下载相应的SDK进行开发,支持的语言有很多,Python、Matlab、R、VBA、C++、C#、Java。

同花顺数据接口 (10jqka.com.cn)

同花顺数据接口对系统环境要求

1)Vindows系统,支持32位和64位系统;

2)安装时因为要写注册表,因此需要系统管理员权限;

3)Python语言开发环境要求:Python.2.7.0或者Python3.5.1的32位&64位及以上的各个Python版本;

下载完成后,会出现一个 DataInterface_free_Windows_20210812.7z 的文件,这个就是开发用的文件,把这个文件解压到任意文件夹中。打开该文件夹进入 Bin 文件夹后,再打开 Tool 文件夹,双击运行 SuperCommand.exe,并使用 iFinD 账号免费登录。

image-20230822165401760

然后,勾选我们需要的环境,此处我们在这个位置选的是Python开发环境。

在此之后,系统会询问您需要安装环境的目录。请根据您的需要选择目录。同时,如果您安装程序的目录未被系统检测出来;您可以使用“添加路径”功能,将需要安装的目录添加进来。这里可以添加Anaocnda 的虚拟环境。

安装成功后,会有系统提示安装成功。如果安装失败,您可以查阅附录中的“其他安装方式”,或者联系客服人员给予解答。在次之后如果您需要安装环境到新的目录,依旧可以在超级指令的“工具-环境设置”中安装。

然后使用Python来进行程序开发。

下面是基于iFinDPy库实现的代码

# -*- coding: utf-8 -*-

# 导入相关的库和模块
from iFinDPy import *
from datetime import datetime
import pandas as pd
import time as _time
import json
from threading import Thread, Lock, Semaphore
import requests

# 创建一个信号量,用于控制最大并发数为5
sem = Semaphore(5)
# 创建一个锁,用于控制实时行情推送中数据写入到本地的过程
dllock = Lock()


# 登录函数
# 定义登录函数
def thslogindemo():
    # 使用给定的用户名和密码进行登录
    # thsLogin = THS_iFinDLogin('账号', '密码')
    print(thsLogin)
    # 根据登录结果,判断是否登录成功
    if thsLogin != 0:
        print('登录失败')
    else:
        print('登录成功')


# 定义函数,提取沪深300的全部股票在2020-11-16日的日不复权收盘价
def datepool_basicdata_demo():
    # 通过数据池的板块成分函数和基础数据函数,提取沪深300的全部股票在2020-11-16日的日不复权收盘价
    data_hs300 = THS_DP('block', '2020-11-16;001005290', 'date:Y,thscode:Y,security_name:Y')
    if data_hs300.errorcode != 0:
        print('error:{}'.format(data_hs300.errmsg))
    else:
        seccode_hs300_list = data_hs300.data['THSCODE'].tolist()
        data_result = THS_BD(seccode_hs300_list, 'ths_close_price_stock', '2020-11-16,100')
        if data_result.errorcode != 0:
            print('error:{}'.format(data_result.errmsg))
        else:
            data_df = data_result.data
            print(data_df)


# 定义函数,提取上证50的全部股票的最新价数据,并将其导出为csv文件
def datapool_realtime_demo():
    # 通过数据池的板块成分函数和实时行情函数,提取上证50的全部股票的最新价数据,并将其导出为csv文件
    today_str = datetime.today().strftime('%Y-%m-%d')
    print('today:{}'.format(today_str))
    data_sz50 = THS_DP('block', '{};001005260'.format(today_str), 'date:Y,thscode:Y,security_name:Y')
    if data_sz50.errorcode != 0:
        print('error:{}'.format(data_sz50.errmsg))
    else:
        seccode_sz50_list = data_sz50.data['THSCODE'].tolist()
        data_result = THS_RQ(seccode_sz50_list, 'latest')
        if data_result.errorcode != 0:
            print('error:{}'.format(data_result.errmsg))
        else:
            data_df = data_result.data
            print(data_df)
            data_df.to_csv('realtimedata_{}.csv'.format(today_str))


# 定义函数,演示如何通过不消耗流量的自然语言语句调用常用数据
def iwencai_demo():
    print('输出资金流向数据')
    data_wencai_zjlx = THS_WC('主力资金流向', 'stock')
    if data_wencai_zjlx.errorcode != 0:
        print('error:{}'.format(data_wencai_zjlx.errmsg))
    else:
        print(data_wencai_zjlx.data)

    print('输出股性评分数据')
    data_wencai_xny = THS_WC('股性评分', 'stock')
    if data_wencai_xny.errorcode != 0:
        print('error:{}'.format(data_wencai_xny.errmsg))
    else:
        print(data_wencai_xny.data)


# 定义函数,处理实时行情推送数据
def dlwork(tick_data):
    # 本函数为实时行情订阅新启线程的任务函数
    dllock.acquire()
    with open('dlwork.txt', 'a') as f:
        for stock_data in tick_data['tables']:
            if 'time' in stock_data:
                timestr = _time.strftime('%Y-%m-%d %H:%M:%S', _time.localtime(stock_data['time'][0]))
                print(timestr)
                f.write(timestr + str(stock_data) + '\n')
            else:
                pass
    dllock.release()


# 定义函数,提取数据并写入到文件
def work(codestr, lock, indilist):
    sem.acquire()
    stockdata = THS_HF(codestr, ';'.join(indilist), '', '2020-08-11 09:15:00', '2020-08-11 15:30:00', 'format:json')
    if stockdata.errorcode != 0:
        print('error:{}'.format(stockdata.errmsg))
        sem.release()
    else:
        print(stockdata.data)
        lock.acquire()
        with open('test1.txt', 'a') as f:
            f.write(str(stockdata.data) + '\n')
        lock.release()
        sem.release()


# 定义函数,演示如何使用多线程加速数据提取
def multiThread_demo():
    # 本函数为通过高频序列函数,演示如何使用多线程加速数据提取的示例,本例中通过将所有A股分100组,最大线程数量sem进行提取
    # 用户可以根据自身场景进行修改
    today_str = datetime.today().strftime('%Y-%m-%d')
    print('today:{}'.format(today_str))
    data_alla = THS_DP('block', '{};001005010'.format(today_str), 'date:Y,thscode:Y,security_name:Y')
    if data_alla.errorcode != 0:
        print('error:{}'.format(data_alla.errmsg))
    else:
        stock_list = data_alla.data['THSCODE'].tolist()

    indi_list = ['close', 'high', 'low', 'volume']
    lock = Lock()

    btime = datetime.now()
    l = []
    for eachlist in [stock_list[i:i + int(len(stock_list) / 10)] for i in
                     range(0, len(stock_list), int(len(stock_list) / 10))]:
        nowstr = ','.join(eachlist)
        p = Thread(target=work, args=(nowstr, lock, indi_list))
        l.append(p)

    for p in l:
        p.start()
    for p in l:
        p.join()
    etime = datetime.now()
    print(etime - btime)


# 设置pandas的显示选项
pd.options.display.width = 320
pd.options.display.max_columns = None


# 定义函数,下载满足条件的公告的pdf
def reportDownload():
    df = THS_ReportQuery('300033.SZ', 'beginrDate:2021-08-01;endrDate:2021-08-31;reportType:901',
                         'reportDate:Y,thscode:Y,secName:Y,ctime:Y,reportTitle:Y,pdfURL:Y,seq:Y').data
    print(df)
    for i in range(len(df)):
        pdfName = df.iloc[i, 4] + str(df.iloc[i, 6]) + '.pdf'
        pdfURL = df.iloc[i, 5]
        r = requests.get(pdfURL)
        with open(pdfName, 'wb+') as f:
            f.write(r.content)


def main():
    # 本脚本为数据接口通用场景的实例,可以通过取消注释下列示例函数来观察效果

    # 登录函数
    thslogindemo()
    # 通过数据池的板块成分函数和基础数据函数,提取沪深300的全部股票在2020-11-16日的日不复权收盘价
    datepool_basicdata_demo()
    # 通过数据池的板块成分函数和实时行情函数,提取上证50的全部股票的最新价数据,并将其导出为csv文件
    # datapool_realtime_demo()
    # 演示如何通过不消耗流量的自然语言语句调用常用数据
    # iwencai_demo()
    # 本函数为通过高频序列函数,演示如何使用多线程加速数据提取的示例,本例中通过将所有A股分100组,最大线程数量sem进行提取
    # multiThread_demo()
    # 本函数演示如何使用公告函数提取满足条件的公告,并下载其pdf
    # reportDownload()


if __name__ == '__main__':
    main()

3 Microbell(慧博)

一个专业的投资研究平台,提供各种研究: 专业的投资研究平台,提供各种研究报告、定期财务报表、公司公告等。

主要功能

  1. 投资工具的重要性:慧博不仅提供了丰富的投资资讯,还为用户提供了专业的投资工具,这显示了在现代投资环境中,工具的重要性不亚于资讯。
  2. 综合性平台的价值:慧博涵盖了多个投资领域,这为用户提供了一个一站式的服务,节省了他们在多个平台之间切换的时间和精力。
  3. 移动化趋势:慧博除了有PC版的投资工具外,还推出了移动版的APP,这反映了当前投资者的移动化趋势,以及平台对于满足用户移动需求的重视。

4 Oracle EDM(企业数据管理)

  1. 数据驱动的决策:Oracle EDM提供了一个集中的、云原生的解决方案,用于管理、治理和消费关键参考和元数据。
  2. 数据资产管理:Oracle EDM支持金融、项目、人力资源和供应链管理的数据资产。
  3. 数据治理:Oracle EDM提供了数据质量、策略管理和数据治理工作流程,以确保数据的准确性和一致性。
  4. 数据消费:Oracle EDM确保数据消费者可以轻松地访问、搜索和订阅数据更改。

Oracle EDM的优势:

  1. 提高数据质量:通过集中的数据治理和策略管理,确保数据的准确性和一致性。
  2. 提高业务敏捷性:通过自动化的数据流程和工作流程,加速数据更改和部署。
  3. 降低风险:通过提供完整的数据审计和版本控制,确保数据的合规性。
  4. 提高生产力:通过自助服务工具,使业务用户能够轻松地管理和消费数据。

固定收益证券软件概述
https://blog.fulequn.online/2023/08/Article202308222/
作者
Fulequn
发布于
2023年8月22日
许可协议