使用Python激活成功教程通达信股票数据[通俗易懂]

使用Python激活成功教程通达信股票数据[通俗易懂]使用Python激活成功教程通达信股票数据

大家好,又见面了,我是你们的朋友全栈君。

  使用Python激活成功教程通达信股票数据

  最近在研究软件选股与自动交易,所以需要获取股票的每日数据。

  我的电脑上已经安装了券商的交易软件,交易软件提供商是通达信。

  下面简要介绍从通达信的交易软件中获取股票数据的过程,使用Python语言。

  本文参考了CSDN的一篇文章,原始链接如下:

  http://blog.csdn.net/liuyukuan/article/details/53560278

  一、通达信的股票文件格式

  通过交易软件的“盘后数据下载”功能,可以下载到所有股票的日线数据,具体位置在:

  交易软件的安装目录\vipdoc\sh[sz]\lday

  文件命名为:sh[sz]000001.day

  日线文件中,每32字节(32bytes)为一天的记录。

  每4个字节为一项数据:

  第1项,交易日期

  第2项,开盘价

  第3项,最高价

  第4项,最低价

  第5项,收盘价

  第6项,成交金额

  第7项,成交量

  第8项,未使用

  二、Python代码

  1. 设计思路:

  将日线文件转换成CS格式的文件,方便后期处理。

  CSV是一种文本文件的格式,使用逗号或其它分隔符将数据逐列隔开,每行代表一条记录。

  可以使用Excel打开CSV格式的文件。

  打开日线文件,依次读入32个字节,然后将这8项数据变成字符格式后以逗号隔开,写入CSV文件。

  2. 主要函数介绍:

  这里用到了strut库中的unpack函数,该函数用于将字节序列解析为字符串,有许多可用的格式。

  3. 代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
from struct import unpack


# 将通达信的日线文件转换成CSV格式
def day2csv(source_dir, file_name, target_dir):
    # 以二进制方式打开源文件
    source_file = open(source_dir + os.sep + file_name, 'rb')
    buf = source_file.read()
    source_file.close()

    # 打开目标文件,后缀名为CSV
    target_file = open(target_dir + os.sep + file_name + '.csv', 'w')
    buf_size = len(buf)
    rec_count = buf_size / 32
    begin = 0
    end = 32
    header = str('date') + ', ' + str('open') + ', ' + str('high') + ', ' + str('low') + ', ' \
        + str('close') + ', ' + str('amount') + ', ' + str('vol') + ', ' + str('str07') + '\n'
    target_file.write(header)
    for i in xrange(rec_count):
        # 将字节流转换成Python数据格式
        # I: unsigned int
        # f: float
        a = unpack('IIIIIfII', buf[begin:end])
        line = str(a[0]) + ', ' + str(a[1] / 100.0) + ', ' + str(a[2] / 100.0) + ', ' \
            + str(a[3] / 100.0) + ', ' + str(a[4] / 100.0) + ', ' + str(a[5] / 10.0) + ', ' \
            + str(a[6]) + ', ' + str(a[7]) + ', ' + '\n'
        target_file.write(line)
        begin += 32
        end += 32
    target_file.close()

source = 'C:/new_dxzq_v6/vipdoc/sh/lday'
target = 'E:/tmp'
file_list = os.listdir(source)
for f in file_list:
    day2csv(source, f, target)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149090.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu安装nginx1.8.0_装了centos还可以装ubuntu吗

    ubuntu安装nginx1.8.0_装了centos还可以装ubuntu吗下载nginx包安装由于上面已经安装了nginx,所以我们先卸载nginx。再重新上传nginx包,解压下载。有输入提示时,输入Y即可卸载apt-get安装的nginx#彻底卸载nginxapt-get–purgeautoremovenginx#查看nginx的版本号nginx-v安装依赖包apt-getinstallgccapt-getinstalllibpcre3libpcre3-devapt-getinstallzlib1gzlib1

    2022年9月19日
    5
  • 车用TVS管 SM8S系列 国产替代

    车用TVS管 SM8S系列 国产替代汽车电子产品用TVS瞬态抑制二极管,首要条件就是器件要符合AEC-Q101标准,满足ISO-7637-2测试标准。目前业内比较常用的汽车级TVS二极管功率6600W,DO-218AB封装,工作电压10V-48V,不同品牌厂商对其型号命名是有差异的,比如力特(Littelfuse)是SLD8S系列,威世(Vishay)是SM8S系列,东沃(DOWO)是SM8S系列……具体型号如下:·SLD8S系列(Littelfuse品牌)型号大全:SLD8S10A、SLD8S11A、SLD8S12A、SLD8S13A

    2022年9月23日
    3
  • linux 开发板 ldd,Linux ldd命令

    linux 开发板 ldd,Linux ldd命令Linux下的lld命令的主要作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。ldd是list,dynamic,dependencies的缩写,列出动态库依赖关系。可以用ldd–help或者manldd来看其用法。可以用which命令找到ldd的位置:$whichldd/usr/bin/ldd使用ldd,往往在制作自己的发行版时经常需要判断某条命…

    2022年6月11日
    30
  • 系统安装失败如何恢复原系统_安装失败显示其他原因

    系统安装失败如何恢复原系统_安装失败显示其他原因按照博客上的方法安装了npm,但是安装cnpm出现了“cnpm不是内部命令”那么我就详细的来说下解决方法;1,node.js的安装在node.js官网下载,根据你电脑的选择版本,我的安装路径是D盘,D:\ProgramFiles\nodejs输入npm-v检测是否安装成功。2.安装cnpmnpminstall-gcnpm–registry=https://registry.npm.taobao.org(注意要对环境变量配置)在系统变量path下添加该路径D:\Prog

    2022年10月15日
    3
  • Java判断对象是否为空的方法:isEmpty,null,” “

    Java判断对象是否为空的方法:isEmpty,null,” “今天修改辞职同事遗留的代码才发现这个问题,不能用isEmpty来判断一个对象是否为null,之前没在意这个问题,在报了空指针之后才发现这个问题。查了一下关于判断为空的几个方法的区别,这里做一个简单的总结:null一个对象如果有可能是null的话,首先要做的就是判断是否为null:object==null,否则就有可能会出现空指针异常,这个通常是我们在进行数据库的查询操作时,查询结果首…

    2022年6月13日
    23
  • 面向Windows的Pytorch完整安装教程

    面向Windows的Pytorch完整安装教程目录1.概述2.安装2.1安装cuda2.2安装cudnn2.3安装Pytoch2.4验证1.概述PyTorch是一个开源的Python机器学习库,其前身是著名的机器学习库Torch。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch,它是一个面向Python语言的深度学习框架,不仅能够实现强大的GPU…

    2022年6月24日
    20

发表回复

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

关注全栈程序员社区公众号