python计算卡方分布_如何用Python计算上证指数的涨跌幅分布情况?

话不多说先上代码,这个分布情况指的就是分析一下涨跌幅在每个百分比阶段各有多少天,例如0%-1%有多少天,1%-2%有多少天:

import os#缓存数据class SecurityData:  count = 0 #数量  endRange = 0 #结束幅度  startRange = 0 #开始幅度#数据集合lst = []for val in range(-10,11):  securityData = SecurityData()  securityData.startRange = val  securityData.endRange = val + 1  lst.append(securityData)#打开日志文件fs = open(r'C:\Py\result.txt','a+')#打开日K线文件fs2 = open(r'C:\Py\SH000001.txt', 'r', True)#索引pos = 0#上次收盘价lastClose = 0#循环遍历每一行while True:  #读取该行  line = fs2.readline()  #没有行的时候退出  if not line: break  #去除前2行和尾行  if pos > 1 and len(line) > 20:    #分割字符串    strs = line.split(',')    #收盘价    closePrice = float(strs[4])    #开盘价    openPrice = float(strs[1])    if pos == 2:      lastClose = openPrice    if lastClose > 0:      diffRange = 100 * (closePrice - lastClose) / lastClose      if diffRange >= -10 and diffRange <= 10:        data = lst[int(diffRange) + 10]        data.count = data.count + 1    lastClose = closePrice  #累加索引  pos = pos + 1#给列表排序from operator import attrgetterlst2 = sorted(lst, key=attrgetter('startRange'), reverse=False)#输出for val in lst2:  print(str(val.startRange) + '% to ' + str(val.endRange) + '%,' + str(val.count))  fs.write(str(val.startRange) + '% to' + str(val.endRange) + '%,' + str(val.count) + '\r\n')#关闭文件流fs.close()fs2.close()

新建一个文件,命名为RANGE.py,并将上述代码粘贴到你的文件中。

7bf48d751b5bf6d95cd6ab30428deb06.png

02d776020df214e4954708b1ee4c014e.png

按照教程下载K线数据,并放到一个文件夹中:

b605aa86a8540da6c904a8b8f7d64f24.png

修改Python中的文件和文件夹路径为你的路径:

3a16a76346dfc02b8f8a1d08244a9fde.png

如果没有安装Python,就到这个地址下载安装一下:

https://www.python.org/ftp/python/3.9.0/python-3.9.0-amd64.exe

注意第一个界面的Add to Path一定要勾上。

打开命令提示行,输入python C:\PY\RANGE.py

e2405ec9923eb32e0f99250bad9d24dc.png

输入回车运行脚本,得到如下结果:

71b34eeaa989c284f5dbecea461c76e0.png

result.txt中也输出了结果:

d83bfcf0621cf1d1090c7e26dac4c6c5.png

通过上述数据我们可以看到,上证指数涨幅在0%-1%的天数是最多的,达到了一半,并且阳线的数量要远远多于阴线。

9fb92d445af8cdad9d2d6092d65aa5c1.png

结论:

    1.计算结果完全正确,而且是完全对应通达信的;

    2.可以直接运行,得到结果文件result.txt,怎么用看你的;

    3.可以修改代码,例如修改输入结果文件的格式;

    4.不止用于A股,什么品种,数据,包括1分钟,5分钟,60分钟线也都可以;

    5.可以用来做交易回测。

    6.可以把代码嵌入你的Python中,用来做实时监控。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值