把一般数据转换成因子数据格式,做单因子、债券对历史数据回测+获取curl命令+垃圾数据转换成标准行情数据(bardata)

下载curl软件,地址:

curl for Windows

for 64-bit下载好后解压到文件夹,将里面的bin文件添加到环境变量中,bon文件地址为:C:\Users\59980\curl-8.2.1_7-win64-mingw\bin

打开cmd,输入curl --help,出现下图即代表成功安装。

下载单个文件,默认将输出打印到标准输出中(STDOUT)中

curl http://www.centos.org

通过-o/-O选项保存下载的文件到指定的文件中:
-o:将文件保存为命令行中指定的文件名的文件中
-O:使用URL中默认的文件名保存文件到本地

# 将文件下载到本地并命名为mygettext.html

curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

# 将文件保存到本地并命名为gettext.html

curl -O http://www.gnu.org/software/gettext/manual/gettext.html

同样可以使用转向字符">"对输出进行转向输出

同时获取多个文件

curl -O URL1 -O URL2

若同时从同一站点下载多个文件时,curl会尝试重用链接(connection)。

-----------------------------------------------------分割线----------------------------------------------------------------

源数据格式:两个债券表格里面数据都是这样:
 

将对应数据放在一个表格里面:

当然也可以用python代码读取两个文档进行数据处理生成一个数据框进行操作,这里就不展示了:

 

 上图是放在一个表格里面后的结果。

处理数据代码:

#转换成因子数据格式
import pandas as pddata =pd.read_excel(r'C:\Users\59980\Desktop\peixun\zong\成交收盘220205CFETSnew(1).xlsx')
df = pd.DataFrame(data)
df['债券代码1'] = df['债券代码1'].replace('220205.IB','220205.BOND')
df['债券代码2'] = df['债券代码2'].replace('220210.IB','220210.BOND')df['交易日期'] = pd.to_datetime(df['交易日期']).dt.strftime('%Y/%m/%d')df['factor_rate'] = df.apply(lambda row: {row['债券代码1']:row['收盘YTM(%)1'], row['债券代码2']:row['收盘YTM(%)2']}, axis=1)
df.insert(1,'factor_rate',df.pop('factor_rate'))df = df[['交易日期', 'factor_rate']]df.to_excel(r'C:\Users\59980\Desktop\peixun\zong\220210_220205_factor.xlsx',index=False)

结果为:

上面两个债券的带起收益率作为引子在投研平台进行回测。

-------------------------------------垃圾数据转换成标准行情数据(bardata)------------------------------------

从网站下载的垃圾数据转换成数据库上传的、能被行情数据获取的标准数据过程:

#改好quote-date,source和security_id列填充好,quote_date,open,high,low,close,volume,ytm,dirty,volume_sum全部填写好
#date_day复制quote_date即可,quote_time和index_type,create_time,quotation_type填充好import pandas as pd
pd.set_option('display.max_columns', None)# 创建示例数据框
df =pd.read_excel(r'C:\Users\59980\Desktop\peixun\zong\200210修正.xlsx')# df['quote_time'] = df['quote_time'].astype(str).str.zfill(8)   #将时间列转换为字符串,并使用str.zfill()方法补零: 0:00:00转换成00:00:00格式df['quote_date'] = pd.to_datetime(df['quote_date']).dt.strftime('%Y%m%d')    #将行情时间2020-01-01转换成20200101格式df['date_day']=df['quote_date']df['date_time'] = pd.to_datetime(df['quote_date'] + ' ' + df['quote_time'])   #生成时间戳start_timestamp = pd.Timestamp("1970-01-01 08:00:00")    # 计算时间戳并考虑起始时间偏移量df['quote_stamp'] = (df['date_time'] - start_timestamp) // pd.Timedelta(seconds=1)df['date_time'] =df['quote_stamp']df['volume'] = pd.to_numeric(df['volume'].str.replace(',', ''), errors='coerce')
df['volume_sum'] = pd.to_numeric(df['volume_sum'].str.replace(',', ''), errors='coerce')df = df.sort_values(by='quote_date')# print(df)
df.to_excel(r'C:\Users\59980\Desktop\peixun\zong\200210修正版本.xlsx',index=False)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博流RISC-V芯片JTAG debug配置与运行

文章目录 1、Windows下安装与配置2、Linux下安装与配置3、芯片默认 JTAG PIN 列表4、命令行运行JTAG5、Eclipse下使用JTAG 1、Windows下安装与配置 CKLink 驱动安装 Windows版驱动下载地址: https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1666331…

华为OD机试 - MELON的难题 - 动态规划(Java 2023 B卷 100分)

目录 一、题目描述二、输入描述三、输出描述四、动态规划五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明华为OD机试 2023B卷题库疯狂收录中,刷题点这里 一、题目描述 MELON有一堆精美的雨花石(数量为n,重量各异),准备送给S和W。MELON希望送给俩人的雨花石…

9.2 消息对话框 画板 定时器

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//设置定时器timernew QTimer(this);timeidthis->startTimer(1000);connect(timer,&QTimer::timeout,this,&Widget::timeout_slot);speechernew QTextToSpeech(this);//边框this-&…

【前端】CSS-Flex弹性盒模型布局

目录 一、前言二、Flex布局是什么1、任何一个容器都可以指定为Flex布局2、行内元素也可以使用Flex布局3、Webkit内核的浏览器,必须加上-webkit前缀 三、基本概念四、flex常用的两种属性1、容器属性2、项目属性 五、容器属性1、flex-direction①、定义②、语句1&…

使用环境中的视觉地标和扩展卡尔曼滤波器定位移动机器人研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

开始MySQL之路——MySQL存储引擎概念

一、存储引擎概念 MySQL数据库和大多数的数据库不同, MySQL数据库中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎。 ​ 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 。存储引擎是基于表的,而不是基…

倒排表的压缩算法

For压缩算法 这是倒排表的一种压缩算法。 还是那个问题,如果"小米" 这个词项,在多文档里都有,则就会导致倒排表很大,这时候就会设计到了压缩算法,这里说的是,倒排表。 那末我们来看看 for压缩…

南方科技大学博士研究生奖助学金,深圳大学

目录 南方科技大学 中南大学 南京大学 厦门大学 苏州大学 中南财经政法大学 深圳大学 南方科技大学 https://ocean.sustech.edu.cn/ocean/public/upload/download/3/2.pdf 南方科技大学的在读研究生,每人每年都会得到40000元的补助,这40000块钱分…

【FreeRTOS】【应用篇】消息队列【下篇】

前言 本篇文章主要对 FreeRTOS 中消息队列的概念和相关函数进行了详解消息队列【下篇】详细剖析了消息队列中发送、接收时队列消息控制块中各种指针的行为,以及几个发送消息和接收消息的函数的运作流程笔者有关于 【FreeRTOS】【应用篇】消息队列【上篇】——队列基…

Ubuntu虚拟机网络无法连接的几种解决方法

虚拟机网络无法连接的几种解决方法 问题状况描述可能的解决方案 问题状况描述 Ubuntu虚拟机没有网络,无法ping通互联网,左上角网络连接图标消失等情况可能的解决方案 1.重启虚拟机网络编辑器 2.重启虚拟机网络适配器 3.重启虚拟机网络服务器1.重启网络…

elementUI中的table动态表单记录

form表单与table一起使用 之前一直以为form表单是单独使用&#xff0c;现在联动起来发现只是套了一层外壳&#xff0c;并不是很麻烦的事情 form的单独使用 <el-form :model"ruleForm" status-icon :rules"rules" ref"ruleForm" label-widt…

【力扣每日一题】2023.9.4 序列化和反序列化二叉搜索树

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一棵搜索二叉树&#xff0c;要我们将这棵二叉树转变为字符串&#xff0c;同时我们需要根据字符串再变回二叉树&#xff0c;具体…