可转债全部历史因子数据,提供api支持

今天在写可转债系统,顺便下载了一下服务器的可转债数据,给大家研究使用

from trader_tool.stock_data import stock_datafrom trader_tool.lude_data_api import lude_data_apiimport osclass convertible_bond_back_test_system:    '''    可转债回测系统    '''    def __init__(self,start_date='20180101',end_date='20240612'):        self.start_date=start_date        self.end_date=end_date        self.path=os.path.dirname(os.path.abspath(__file__))        self.lude_data_api=lude_data_api()        self.stock_data=stock_data()    def down_all_data(self):        '''        下载服务器可转债全部数据        '''        trader_list=self.stock_data.get_trader_date_list(start_date=self.start_date,end_date=self.end_date)        for date in trader_list:            all_path=os.listdir(r'{}\data'.format(self.path))            main_path='{}.csv'.format(date)            if main_path in all_path:                print('{}已经下载'.format(main_path))            else:                df=self.lude_data_api.get_bond_data(date=date)                stats=df['数据状态'].tolist()[-1]                if stats==True:                    try:                        del df['更新时间']                    except Exception as e:                        print(e)                    try:                        del df['数据时间']                    except Exception as e:                        print(e)                    df.to_csv(r'{}\data\{}'.format(self.path,main_path))                    print('{}交易日数据下载完成'.format(date))                else:                    print('{}交易日没有数据'.format(date))if __name__=='__main__':    backtrader=convertible_bond_back_test_system()    backtrader.down_all_data()

原始的数据来自禄得,不用在商业用途,感谢老师的数据

网页 https://lude.cc/

图片

我网页也支持数据下载 网页 http://120.78.132.143:8023/

图片

点击可转债数据,禄得数据

图片

可以点击下载数据,选择日期

图片

下载的数据

图片

利用程序自动下载全部历史的数据

图片

全部的历史数据

图片

图片

需要全部数据的直接回复20240612就可以

图片

下载我服务器数据的api​​​​​​​

import pandas as pdimport requests import jsonclass lude_data_api:    def __init__(self,url='http://120.78.132.143',port='8023',password='123456'):        '''        手动下载存数据库        禄得数据api        url服务器        port端口        password授权码        '''        self.url=url        self.port=port        self.password=password    def get_bond_data(self,date='2024-04-26'):        '''        获取可转债数据        '''        url='{}:{}/_dash-update-component'.format(self.url,self.port)        headers={'Content-Type':'application/json'}        data={"output":"lude_data_maker_table.data@669dd4696a628d8290353c138057eb97",            "outputs":{"id":"lude_data_maker_table","property":"data@669dd4696a628d8290353c138057eb97"},            "inputs":[{"id":"password","property":"value","value":self.password},            {"id":"lude_data_data_type","property":"value","value":"禄得数据"},            {"id":"lude_data_end_date","property":"date","value":date},            {"id":"lude_data_run","property":"value","value":"运行"},            {"id":"lude_data_down_data","property":"value","value":"不下载数据"}],            "changedPropIds":["lude_data_run.value"]}        res=requests.post(url=url,data=json.dumps(data),headers=headers)        text=res.json()        df=pd.DataFrame(text['response']['lude_data_maker_table']['data'])        return df    def get_bond_spot_data(self,date='2024-05-23'):        '''        获取可转债实时数据        '''        url='{}:{}/_dash-update-component'.format(self.url,self.port)        headers={'Content-Type':'application/json'}        data={"output":"lude_data_maker_table.data@669dd4696a628d8290353c138057eb97",            "outputs":{"id":"lude_data_maker_table","property":"data@669dd4696a628d8290353c138057eb97"},            "inputs":[{"id":"password","property":"value","value":self.password},            {"id":"lude_data_data_type","property":"value","value":"实时数据"},            {"id":"lude_data_end_date","property":"date","value":date},            {"id":"lude_data_run","property":"value","value":"运行"},            {"id":"lude_data_down_data","property":"value","value":"不下载数据"}],            "changedPropIds":["lude_data_run.value"]}        res=requests.post(url=url,data=json.dumps(data),headers=headers)        text=res.json()        df=pd.DataFrame(text['response']['lude_data_maker_table']['data'])        return dfif __name__=='__main__':    models=lude_data_api()    df=models.get_bond_data(date='2024-05-23')    print(df)    df=models.get_bond_spot_data(date='2024-05-23')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/702957.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1秒揭秘:APP对接广告联盟,收益翻倍!

在当前数字时代,移动应用(APP)成为连接用户与服务的重要桥梁。 许多开发者通过开发APP并接入广告联盟,成功实现了收益的快速增长。 然而,对于初学者而言,从零开始开发一款能够有效对接广告联盟的APP&…

单源最短路径算法 -- 迪杰斯科拉(Dijkstra)算法

1. 简介 迪杰斯科拉(Dijkstra)算法是一种用于在加权图中找到最短路径的经典算法。它是由荷兰计算机科学家Edsger Wybe Dijkstra在1956年首次提出的,并以他的名字命名。这个算法特别适合于解决单源最短路径问题,即计算图中一个顶点…

在自己的电脑上搭建我的世界Java版服务器

很多朋友,喜欢玩Minecraft,也希望搭建一个服务器,用于和小伙伴联机; 并且,拥有服务器后,即使所有玩家都下线,“世界”依旧在运行,玩家可以随时参与其中,说不定一上线&am…

栈和队列(适配器模式模拟)

文章目录 声明stack的介绍queue的介绍deque双端队列简单介绍(了解)概述优缺点 适配器模式通过容器适配器模拟stack通过容器适配器模拟queue 总结 声明 模拟实现源代码已上传至gitee仓库:stack_queue_learn stack的介绍 stack文档介绍 sta…

go语言 | 快速生成数据库表的 model 和 queryset

就是生成 model 目录的 xxx.go 和 xxx_gen.go 文件 使用的工具: 快速生成 model:gentool:https://github.com/go-gorm/gen/tree/master/tools/gentool 根据 model 生成 queryset:go-queryset:https://github.com/jirfa…

开源大模型之辩:真假开源

目录 前言开源的定义什么是开源大模型?大模型时代首次出现闭源和开源“齐头并进”开源和闭源不是绝对对立的 大模型到底开源什么?传统开源软件与开源大模型的差别开源软件让开源大模型“受益匪浅” 不同大模型企业,开源、闭源策略不同开源…

SQL 窗口函数

1.窗口函数之排序函数 RANK, DENSE_RANK, ROW_NUMBER RANK函数 计算排序时,如果存在相同位次的记录,则会跳过之后的位次 有 3 条记录排在第 1 位时: 1 位、1 位、1 位、4 位…DENSE_RANK函数 同样是计算排序,即使存在相同位次的记录,也不会跳过之后的位次 有 3 条记录排在…

SPI 配置寄存器程序

/************************************************** * **************************************************/ module zhm_mspi #( parameter C_SPI_CPHA 1 ,// clock phase ,0,在 SCLK 的第一个跳变沿进行采样;1&…

Linux和Windows下查看CPU运行频率的方法

文章目录 0.前言1.Linux系统中查看CPU运行频率的方法(经测试在UnRaid中适用的)1.1.最简单的lscpu命令1.2.查看CPU实时运行频率的watch -n 1 cpufreq-info命令 2.WIndows系统中查看CPU运行频率的方法2.1.系统属性大法2.2.任务管理器大法2.3.CPU-Z等硬件检…

Codeforces Global Round 26 D. “a“ String Problem 【Z函数】

D. “a” String Problem 题意 给定一个字符串 s s s,要求把 s s s 拆分成若干段,满足以下要求: 拆分出来的每一个子段,要么是子串 t t t,要么是字符 a a a子串 t t t 至少出现一次 t ≠ " a " t \ne…

零基础非科班也能掌握的C语言知识22 预处理详解(完结)

预处理详解 1.预处理符号2.#define 定义常量3.#define 定义宏4.带有副作用的宏参数5.宏替换的规则6.宏函数的对比6.1 例子6.1 .16.1.26.1.3 7.命名约定8.undefin9.命令行定义(博主没办法演示)10.条件编译11.头文件的包含11.1本地文件11.2库文件的包含11.3 嵌套文件的包含 12.其…

python实现自动化测试框架如何进行数据参数化?这个包可以了解下

1.数据参数化介绍 只要你是负责编写自动化测试脚本的,数据参数化这个思想你就肯定会用 ,数据参数化的工具你肯定的懂一些 ,因为它能大大的提高我们自动化脚本编写效率 。 1.1什么是数据参数化 所谓的数据参数化 ,是指所执行的测…

Unity 自定义房间布局系统 设计与实现一个灵活的房间放置系统 ——物体占用的区域及放置点自动化

放置物体功能 效果: 功能: 自定义物体占用区域的大小一键调整占用区域调整旋转度数,分四个挡位: NoRotation:该物体不能调整旋转。MaximumAngle:每次转动90。NormalAngle:每次转动45&#xff…

Solr 日志系统7.4.0部署和迁移到本地,Core Admin 添加新的core报错

文章目录 Solr部署Docker部署二进制部署 Tips:Solr设置账号密码方法1:(不使用)方法2: Core Admin 添加新的core报错Solr数据迁移 Solr部署 Docker部署 docker run -d -p 8983:8983 --name solr solr:latest docker run -d -p 8983:8983 -v /opt/solr:/…

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(五)---- 操作系统的组织结构(OS design)

系列文章目录 操作系统入门系列-MIT6.S081(操作系统)学习笔记(一)---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(二)----课程实验环境搭建&#x…

网工内推 | 深信服、中软国际技术支持工程师,最高13k*13薪

01 深信服 🔷招聘岗位:远程技术支持工程师 🔷任职要求: 一、专业能力和行业经验: ①具备友商同岗位工作经验1.5年以上,具备良好的分析和判断能力,有独立问题处理思路,具备常见协…

python中魔术方法__str__与__repr__的区别

在Python中,__str__和__repr__是两个常见的魔法方法(也称为双下方法或dunder方法),它们用于定义对象的字符串表示形式。它们的主要区别在于它们的用途和使用场景。 __str__ 用途:__str__方法用于为用户提供一个易读的…

【嵌入式DIY实例】-Nokia 5110显示DHT11/DHT22传感器数据

Nokia 5110显示DHT11/DHT22传感器数据 文章目录 Nokia 5110显示DHT11/DHT22传感器数据1、硬件准备2、代码实现2.1 显示DHT11数据2.2 显示DHT22数据本文介绍如何将 ESP8266 NodeMCU 开发板 (ESP-12E) 与 DHT11 数字湿度和温度传感器以及诺基亚 5110 LCD 连接。 NodeMCU 从 DHT11…

.NET Core 服务注册步骤总结

总结一下 .NET Core 服务注册的步骤: .NET Core Web Api 项目服务注册步骤: 创建一个接口,和实现类 比如:IMyService, CnService 在 Program.cs 的 var app builder.Build(); 语句之前加上: var builder WebApplic…

【面经总结】 Java基础 - 异常

异常 介绍一下 Java 的异常体系 Java 的异常体系是由 Throwable 类及其子类构成的。 Throwable 包含两个子类:Error(错误)和 Exception(异常) Error 表示错误,通常不需要程序员处理,如内存溢…