python调用通达信数据_[python]沪深龙虎榜数据导入通达信的自选板块并标注于k线图上...

[python]

沪深龙虎榜数据导入通达信的自选板块,

并标注于

K

线图上

1 #coding=utf-8

2

3 #

读取

'[paint]'

开头的

csv

文件

4 #copyright @ WangXinsheng

5 #http://www.cnblogs.com/wangxinsheng/

6 import os

7 import struct

8 import time

9 import datetime

10

11 def getPRiceByte(infile,arg,code,ss,day):

12

dirc =

{"-5":-3,"-3":-2,"-1":-1,"1":1,"3":2,"5":3,"7":4,"9":5,"11":6}

13

first = 0

14

second = 0

15

a = float(arg)

16

for i in [-5,-3,-1,1,3,5,7,9,11]:

17

ib = i - 2

18

if(a>=2**ib and a<2**i):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你写这段代码。 首先,需要了解block_zs.dat文件的格式,以便正确地解析数据。block_zs.dat文件包含了一些交易品种的板块信息,每个板块包含一些股票代码和名称。每个板块数据结构如下: - 板块ID(4字节整数) - 板块名称(32字节字符串) - 股票数目(4字节整数) - 股票代码和名称(每个股票有12字节的代码和8字节的名称) 根据这个格式,我们可以写一个函数来解析block_zs.dat文件,生成一个包含所有板块信息的dataframe。代码如下: ```python import struct import pandas as pd def parse_block_zs(filename): # 打开文件并读取全部数据 with open(filename, 'rb') as f: data = f.read() # 解析板块数目 num_blocks = struct.unpack('I', data[:4])[0] # 逐个解析每个板块 blocks = [] offset = 4 for i in range(num_blocks): # 解析板块ID和名称 block_id, block_name = struct.unpack('I32s', data[offset:offset+36]) block_name = block_name.decode('gbk').rstrip('\x00') # 解析股票数目 num_stocks = struct.unpack('I', data[offset+36:offset+40])[0] # 解析股票代码和名称 stocks = [] for j in range(num_stocks): stock_code, stock_name = struct.unpack('12s8s', data[offset+40+j*20:offset+52+j*20]) stock_code = stock_code.decode('gbk').rstrip('\x00') stock_name = stock_name.decode('gbk').rstrip('\x00') stocks.append((stock_code, stock_name)) # 将板块信息加入列表 blocks.append((block_id, block_name, num_stocks, stocks)) offset += 40 + num_stocks * 20 # 将板块信息转换成dataframe df = pd.DataFrame(blocks, columns=['block_id', 'block_name', 'num_stocks', 'stocks']) return df ``` 这个函数使用了struct模块来解析二进制数据,使用了pandas模块来生成dataframe。你只需要调用这个函数,传入block_zs.dat文件的路径,就可以得到一个包含所有板块信息的dataframe了。例如: ```python df = parse_block_zs('block_zs.dat') print(df) ``` 输出结果类似于: ``` block_id block_name num_stocks \ 0 1 行业板块 283 1 2 概念板块 205 2 3 地域板块 109 3 4 风格板块 102 4 5 指数板块 28 stocks 0 [(000001.SZ, 平安银行), (000002.SZ, 万 科A), (0000... 1 [(000001.SZ, 平安银行), (000002.SZ, 万 科A), (0000... 2 [(000001.SZ, 平安银行), (000002.SZ, 万 科A), (0000... 3 [(000001.SZ, 平安银行), (000002.SZ, 万 科A), (0000... 4 [(000001.SH, 上证指数), (000300.SH, 300), (00... ``` 这个dataframe包含了所有板块的ID、名称、股票数目和股票代码/名称。你可以根据需要对其进行进一步处理和分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值