固定收益证券软件概述

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

  • 万得 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库实现的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# -*- 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://fulequn.github.io/2023/08/Article202308222/
作者
Fulequn
发布于
2023年8月22日
许可协议