使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 「运维有小邓」给企业文件服务器加把锁(文件服务器审计)

    「运维有小邓」给企业文件服务器加把锁(文件服务器审计)DataSecurityPlus是一款由卓豪ManagerEngine推出的企业文件服务器审计工具,它不仅能对文件服务器内的内容进行审计,还可以对用户的访问行为进行审计,包括:“谁”在“什么时间”访问(修改)了“哪些”文件。

    2022年6月3日
    26
  • mysql卸载教程5.5_centos卸载mysql

    mysql卸载教程5.5_centos卸载mysql完整卸载MySQL数据库1、关掉mysql服务直接搜索服务或者右键“我的电脑”,选择“管理”,打开计算机管理,选择“服务”右键MySQL服务,选择“停止”2、卸载mysql程序开始菜单->控制面板->程序和功能3、删除计算机上的残留文件(1)删除C盘-》programData->mysql文件夹,programData文件夹为隐藏文件夹//这一步很重要(2)删除mysql的安装目录4、删除注册表信息往往我们进行完上面的两个步骤,我们计算机上的mysql就已

    2022年9月30日
    0
  • python获取图片像素矩阵_python图像特征提取进行分类

    python获取图片像素矩阵_python图像特征提取进行分类importnumpyasnpfromPILimportImageim=Image.open(‘test.jpg’)im2=np.array(im)

    2022年9月12日
    0
  • Rsync详解_反向ssh

    Rsync详解_反向sshRsync介绍一、什么是rsyncrsync是一款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具。适用于多个平台。从软件名称可以看出来是远程同步的意思(remotesync)。可使本地主机不同分区或目录之间及本地和远程两台主机之间的数据快速同步镜像,远程备份等功能。  在同步备份时,默认情况下,rsync通过其独特的“quickcheck”算法,仅同步大小…

    2022年10月13日
    0
  • java权限修饰符

    java权限修饰符

    2021年9月29日
    39
  • cbow和skipgram适用于什么场景?_gram矩阵

    cbow和skipgram适用于什么场景?_gram矩阵在cbow方法中,是用周围词预测中心词,从而利用中心词的预测结果情况,使用GradientDesent方法,不断的去调整周围词的向量。当训练完成之后,每个词都会作为中心词,把周围词的词向量进行了调整,这样也就获得了整个文本里面所有词的词向量。要注意的是,cbow的对周围词的调整是统一的:求出的gradient的值会同样的作用到每个周围词的词向量当中去。可以看到,cbow预测行为的次数跟整个文本的…

    2022年9月6日
    2

发表回复

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

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