从零学习量化交易30股票开盘价关联性分析

(1)打开Spyder软件,在目录D:\zwPython\zwrk\1_Quant_TensorFlow,新建文件30-
CorrelationAnalysisStockOpeningPrices.py

# -*- coding: utf-8 -*-
"""
Created on Fri Feb 14 20:34:12 2025
Learning from Zero - Quantitative Trading (30) - Correlation analysis of stock opening prices
从零学习-量化交易(30)-股票开盘价关联性分析
@author: Administrator
"""

import sys, os
sys.path.append("topqt/")

import numpy as np
import pandas as pd
import tushare as ts
import plotly as py
import plotly.figure_factory  as pyff


import math,arrow,ffn
import pypinyin 
import pandas_datareader as pdr 
import matplotlib.pyplot as plt

import zsys2025                     #20250213
import ztools as zt
import ztools_str as zstr
import ztools_data2025 as zdat
import ztools_draw2025 as zdr       
import ztools_tq2025 as ztq         #20250213
import zpd_talib2025 as zta

#----------
#1
print('\n#1,init ')
pd.set_option('display.width', 450)    
pd.set_option('display.float_format', zt.xfloat5)    

#2
print('\n#2,set.dat')
df=pd.read_csv('data/002046.csv')
df=df.sort_values('date')

#3
print('\n#3,set.new dat')
df['xopen']=df['open'].shift(-1)

#4
print('\n#4,corr')
df['kopen']=df['xopen'].corr(df['open'])
df['khigh']=df['xopen'].corr(df['high'])
df['klow']=df['xopen'].corr(df['low'])
df['kclose']=df['xopen'].corr(df['close'])
print(df.tail())

#5
print('\n#5,describe')
print(df.describe())

#6
print('\n#6,ok')

(2)程序输出结果

runfile('D:/zwPython/zwrk/1_Quant_TensorFlow/30- CorrelationAnalysisStockOpeningPrices.py', wdir='D:/zwPython/zwrk/1_Quant_TensorFlow')
Reloaded modules: zsys2025, ztools, zsys, ztools_str, ztools_web, ztools_data, ztools_tq, zpd_talib, ztools_data2025, zpd_talib2025, ztools_draw2025, ztools_tq2025

#1,init 

#2,set.dat

#3,set.new dat

#4,corr
            date    open    high   close     low        volume         amount   xopen   kopen   khigh    klow  kclose
3     2016-02-01 8.44000 8.50000 8.11000 8.00000 3718571.00000 30546260.00000 8.22000 0.99496 0.99673 0.99727 0.99933
2     2016-02-02 8.22000 8.63000 8.50000 8.15000 4749541.00000 40346672.00000 8.40000 0.99496 0.99673 0.99727 0.99933
1     2016-02-03 8.40000 8.65000 8.57000 8.23000 3784234.00000 31847344.00000 8.57000 0.99496 0.99673 0.99727 0.99933
0     2016-02-04 8.57000 8.82000 8.78000 8.55000 4433431.00000 38708548.00000 8.76000 0.99496 0.99673 0.99727 0.99933
2530  2016-02-05 8.76000 8.96000 8.72000 8.72000 4712004.00000 41542508.00000     nan 0.99496 0.99673 0.99727 0.99933

#5,describe
            open       high      close        low         volume          amount      xopen      kopen      khigh       klow     kclose
count 2531.00000 2531.00000 2531.00000 2531.00000     2531.00000      2531.00000 2530.00000 2531.00000 2531.00000 2531.00000 2531.00000
mean     7.01571    7.18598    7.02777    6.86563  4177114.16199  52442418.20269    7.01768    0.99496    0.99673    0.99727    0.99933
std      2.94936    3.04282    2.95553    2.86540  5294199.15901  65775698.91657    2.94828    0.00000    0.00000    0.00000    0.00000
min      1.90000    1.96000    1.89000    1.84000   226010.00000   1519046.00000    1.90000    0.99496    0.99673    0.99727    0.99933
25%      5.11000    5.23000    5.12000    5.00000  1235698.50000  16252776.50000    5.11000    0.99496    0.99673    0.99727    0.99933
50%      6.60000    6.74000    6.62000    6.49000  2165597.00000  29504510.00000    6.60000    0.99496    0.99673    0.99727    0.99933
75%      8.59000    8.85000    8.65500    8.43000  4440049.50000  57215579.00000    8.59000    0.99496    0.99673    0.99727    0.99933
max     20.78000   21.55000   20.25000   19.98000 59404440.00000 605952256.00000   20.78000    0.99496    0.99673    0.99727    0.99933

#6,ok

(3)程序代码注释

# -*- coding: utf-8 -*-
# 声明文件使用 UTF-8 编码,确保可以处理包含非 ASCII 字符的文本

"""
Created on Fri Feb 14 20:34:12 2025
Learning from Zero - Quantitative Trading (30) - Correlation analysis of stock opening prices
从零学习-量化交易(30)-股票开盘价关联性分析
@author: Administrator
"""
# 文档字符串,记录代码的创建时间、程序功能和作者信息

import sys, os
# 导入 sys 和 os 模块
# sys 模块提供与 Python 解释器和系统相关的功能,如修改模块搜索路径
# os 模块提供与操作系统交互的功能,如文件和目录操作
sys.path.append("topqt/")
# 将 'topqt/' 目录添加到 Python 的模块搜索路径中,以便后续导入该目录下的自定义模块

import numpy as np
# 导入 numpy 库并别名为 np,numpy 用于数值计算和数组操作
import pandas as pd
# 导入 pandas 库并别名为 pd,pandas 用于数据处理和分析
import tushare as ts
# 导入 tushare 库,用于获取财经数据
import plotly as py
# 导入 plotly 库并别名为 py,plotly 用于创建交互式可视化图表
import plotly.figure_factory  as pyff
# 从 plotly 库中导入 figure_factory 模块并别名为 pyff,用于创建特定类型的图表

import math,arrow,ffn
# 导入 math 模块用于数学计算,arrow 模块用于处理日期和时间,ffn 模块用于金融数据分析
import pypinyin 
# 导入 pypinyin 库,用于将中文转换为拼音
import pandas_datareader as pdr 
# 导入 pandas_datareader 库并别名为 pdr,用于从不同数据源读取数据
import matplotlib.pyplot as plt
# 导入 matplotlib 库的 pyplot 模块并别名为 plt,用于创建静态可视化图表

import zsys2025                     #20250213
# 导入自定义模块 zsys2025,注释表明该模块在 2025 年 2 月 13 日有相关操作
import ztools as zt
# 导入自定义模块 ztools 并别名为 zt
import ztools_str as zstr
# 导入自定义模块 ztools_str 并别名为 zstr
import ztools_data2025 as zdat
# 导入自定义模块 ztools_data2025 并别名为 zdat
import ztools_draw2025 as zdr       
# 导入自定义模块 ztools_draw2025 并别名为 zdr
import ztools_tq2025 as ztq         #20250213
# 导入自定义模块 ztools_tq2025 并别名为 ztq,注释表明该模块在 2025 年 2 月 13 日有相关操作
import zpd_talib2025 as zta
# 导入自定义模块 zpd_talib2025 并别名为 zta

#----------
#1
print('\n#1,init ')
# 打印提示信息,表示开始初始化操作
pd.set_option('display.width', 450)    
# 设置 pandas 显示 DataFrame 时的宽度为 450 个字符,方便查看宽表格数据
pd.set_option('display.float_format', zt.xfloat5)    
# 设置 pandas 显示浮点数的格式,使用 zt 模块中的 xfloat5 函数进行格式化

#2
print('\n#2,set.dat')
# 打印提示信息,表示开始设置数据
df = pd.read_csv('data/002046.csv')
# 使用 pandas 的 read_csv 函数读取指定路径下的 CSV 文件,并将其存储为 DataFrame 对象 df
df = df.sort_values('date')
# 按照 'date' 列对 DataFrame 进行升序排序,确保数据按日期顺序排列

#3
print('\n#3,set.new dat')
# 打印提示信息,表示开始设置新数据
df['xopen'] = df['open'].shift(-1)
# 在 DataFrame 中新增一列 'xopen',其值为 'open' 列向下移动一行后的值
# shift(-1) 表示将数据向上移动一行,最后一行的值会变成 NaN

#4
print('\n#4,corr')
# 打印提示信息,表示开始进行相关性分析
df['kopen'] = df['xopen'].corr(df['open'])
# 在 DataFrame 中新增一列 'kopen',其值为 'xopen' 列与 'open' 列的相关性系数
# corr 方法用于计算两列之间的相关性,默认使用皮尔逊相关系数
df['khigh'] = df['xopen'].corr(df['high'])
# 新增 'khigh' 列,存储 'xopen' 列与 'high' 列的相关性系数
df['klow'] = df['xopen'].corr(df['low'])
# 新增 'klow' 列,存储 'xopen' 列与 'low' 列的相关性系数
df['kclose'] = df['xopen'].corr(df['close'])
# 新增 'kclose' 列,存储 'xopen' 列与 'close' 列的相关性系数
print(df.tail())
# 打印 DataFrame 的最后几行,查看计算结果

#5
print('\n#5,describe')
# 打印提示信息,表示开始进行数据描述性统计分析
print(df.describe())
# 使用 describe 方法对 DataFrame 中的数值列进行描述性统计,包括计数、均值、标准差等

#6
print('\n#6,ok')
# 打印提示信息,表示程序执行完毕

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/907133
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 3小时前
下一篇 3小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注