2022年 11月 5日

python量化分析

python量化分析

  • 1 环境配置
  • Python 3.10
  • Numpy、Pandas、Tushare、xlwt
  • 2 获取K线数据
#适用场景:1)已经有合适的标的,寻找合适买点
#2)网格交易中,寻找买点
#3)娱乐可用,不构成投资参考
#缺点:想要获取其他股票数据时需要改股票代码
#解法:把股票代码定义为全局变量并用标识符代替
import tushare as ts
import xlwt
import numpy as np
import pandas as pd
#1. 获取数据
#输入股票代码,获取K线数据
#以工业富联(601138)为例
data=ts.get_k_data('601138')
#查看获取的K线数据类型
print(type(data))
#2.保存数据文件
#创建一个空的EXCLE文件,以股票代码命名
print("创建K线数据文件")
writer = pd.ExcelWriter("C:/Users\Administrator/Desktop/1.量化交易/1.下载k线数据/1.data/601138.xlsx")
print("开始写入K线数据")
data.to_excel(writer,sheet_name='工业富联',startcol=0,index= False)
writer.save()
print("数据保存完成")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 3 数据格式如下

图3-1

  • 4 数据分析(Minitab)

4.1 查看直方图,判断大概的数据分布类型,这里只看开盘价格和收盘价格,由于P<0.05,可以看到开盘价格和收盘价格是不服从正态分布的。
Mark:1)H0: 开盘/收盘价格服从正态分布, H1: 开盘/收盘价格不服从正态分布
2)P值:表示接受H0时,出错的概率(https://wenku.baidu.com/view/7a89c20c763231126edb114e?aggId=efb93d2a00d8ce2f0066f5335a8102d276a26109)
在这里插入图片描述
在这里插入图片描述
4.2 再用做一个分布识别(https://zhuanlan.zhihu.com/p/54314609)

在这里插入图片描述
这里还是看不出服从的分布类型,因为也无法预测某一成本的价格的胜率,和网格的区间是多少。

  • 5 假设服从正态分布,该怎么做?

5.1 如果股价持续低迷,收盘价格总体均值一定低于样本均值13.211,暂且设为12,以样本标准差估计样本总体的标准差,

服从概率分布N(12,4.89)
在这里插入图片描述

至此估计出收盘价格分布。

5.2 解决文首提出的问题
1)已经有合适的标的,寻找合适买点

2022/6/21 收盘价格为 9.72 若此时建仓,败率为0.1512
![在这里插入图片描述](https://img-blog.csdnimg.cn/7f7c6c9465c34f44865954f90de52c57.png

2)网格起始点为均值12,仓位分成三份,9.789买入一份,7.578买入第二份,最终平均价格为8.315,胜率为95.5331%

在这里插入图片描述
在这里插入图片描述

  • 6 此文只计算胜率,不计算收益率。