Cuantificación financiera de Python: segmentación de datos de acciones + cálculo de la curva de tasa de interés de acciones individuales (código)

Tabla de contenido

1. Segmentación de datos de acciones

2. Calcular la curva de tipos de interés de una única acción


1. Segmentación de datos de acciones

import pandas as pd


# 读取数据并进行初步处理
def read_csv_shuju(path):
    '''

    :param path:
    path:文件路径
    :return:
    data2: 处理后数据
    '''
    data1 = pd.read_csv(path, sep=',')
    data1['date'] = pd.to_datetime(data1['time'])
    data1['date']=data1['date'].dt.date
    data2 = data1.drop([ 'time','volume', 'amount', 'open_interest'], axis=1)
    data2.set_index('code', inplace=True)
    states = ['date','open', 'hight', 'low', 'close']
    data2.reindex(columns=states)
    return data2

# 对数据进行分割并保存
def write_csv_data(data,start,code):
    '''
    :param:
    data:需要分割的原始数据
    start:上一次调用所到数据(每次输入时需要修改start的值为上一次输出的end值)
    code:输入需要分割的数据的股票名称
    :return: 根据输入的股票名称截取股票数据所在的列范围数据

    '''
    stock_code=[]
    end=0
    end+=start

    for i in range(end,len(data.index)):
         if data.index[i] == code:
              end+=1
         else:
              continue
    stock_code=data[start:end]
    return end,stock_code



if __name__ == '__main__':
    '''
    stock_data为读取后初步处理数据(未分割)
    stock_code为对数据按照股票代码进行分割后数据
    '''
    # 文件路径
    path1 = '../data/附录一:30支股票行情.csv'

    stock_data = read_csv_shuju(path1)
    print("初步处理数据:")
    print(stock_data)
    # print(len(stock_data.index))
    # print(stock_data.index[69696])


    '''
     # 这里需要手动修改参数,依次分割30支股票
    需要修改的参数:
    start: 修改为上一次输出的end值
    code: 修改为需要分割出来的股票代码
    文件名: 存入csv时的路径文件名
    '''
    end=0
    start=67431
    code='szse.000028'
    stock_code=[]
    end,stock_code=write_csv_data(stock_data,start,code)
    # stock_code.to_csv('./code_data/30.csv')
    print('分割后股票数据:')
    print(stock_code)
    print(stock_code.index)
    print('end:')
    print(end)

2. Calcular la curva de tipos de interés de una única acción

import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
import datetime

file_path = './data/30gupiao.csv'
data = pd.read_csv(file_path, header=0, low_memory=False, index_col=1)

print(data.head())
data['value'] = data['close'] / data['open']
print(data['value'])

print(data.index)
data['date'] = pd.to_datetime(data.index)
data['year'] = data['date'].dt.date
print(data['date'])
print(data['year'])
data.index=data['year']
data1=data[:2000]
data2=[]


fig, ax = plt.subplots(1,2,figsize=(14,4))
ax[0].plot(data1['close'],color='b')
ax[1].plot(data1['value'],color='r')
# ax.set_xlim(data['time'])
plt.title('szse_002027')
plt.show()

resultado de la operación:

 

Supongo que te gusta

Origin blog.csdn.net/weixin_52135595/article/details/127374547
Recomendado
Clasificación