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("数据保存完成")
- 3 数据格式如下
- 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
2)网格起始点为均值12,仓位分成三份,9.789买入一份,7.578买入第二份,最终平均价格为8.315,胜率为95.5331%
- 6 此文只计算胜率,不计算收益率。