将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上

原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件

文件名前加"[paint]"

安照通达信的画图文件和板块文件格式,输出文件

用通达信的导入功能,导入画图文件和板块文件即可

事前数据截图:

处理后所得文件:

导入通达信后板块截图:

k线截图:

代码:

 #coding=utf-8

 #读取'[paint]'开头的csv文件
#copyright @ WangXinsheng
#http://www.cnblogs.com/wangxinsheng/
import os
import struct
import time
import datetime def getPriceByte(infile,arg,code,ss,day):
dirc = {"-5":-3,"-3":-2,"-1":-1,"":1,"":2,"":3,"":4,"":5,"":6}
first = 0
second = 0
a = float(arg)
for i in [-5,-3,-1,1,3,5,7,9,11]:
ib = i - 2
if(a>=2**ib and a<2**i):
#print(str(a)+":["+str(2**ib)+","+str(2**i)+"]"+"i:"+str(i)+" ib:"+str(ib))
first = ib
break;
#print(first)
chushu = 2**first
if(arg >= chushu*2):
second = arg / chushu
#print(second)
second = int(second*64)
else:
second = arg / chushu -1
#print(second)
second = int(second*128) if(first<0):
first = 64 + dirc[str(first)]
else:
first = 63 + dirc[str(first)]
'''
print(first)
print(second)
print(struct.pack('B',first))
print(struct.pack('B',second))
'''
#print(struct.pack('B',first))
#print(struct.pack('B',second)) infile.write(struct.pack('B',ss))
infile.write(code.encode())
infile.write(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
infile.write(b'\x03')
infile.write('STANDK'.encode())
infile.write(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
infile.write(b'\x04')
infile.write(b'\x00')
infile.write(b'\x1a\x10\x00\x00')
infile.write(struct.pack('i',int(day)))
infile.write(b'\x00\x00')
infile.write(struct.pack('B',second))
infile.write(struct.pack('B',first))
infile.write(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdcz3\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') print(str(code)+':已在 '+day+"日,价格:"+str(arg)+"加入标记")
#infile = open("tdxline.eld","rw")
#getPriceByte(5.55)
file = open("WXSline.eld","wb")
zxg = ''
path=r'.'
files = os.listdir(path)
files.sort()
j=0
for f in files:
if(f.startswith('[paint]') and f.endswith('.csv')):
print('读取文件:'+path+'/'+f) f=open(path+'/'+f,'rt')
infos = f.readlines()
f.close()
i=0
for info in infos:
if(i==0):
i=i+1
continue
tmp = info.split(',')
if(len(tmp)<2):
continue
code = str(tmp[1].replace('"','').replace("'",""))
if(code.startswith('')):
ss = 1
else:
ss = 0
addzxg = ''
try:
zxg.index(str(ss)+code)
except:
addzxg = str(ss)+code+"\n" if(addzxg!=''):
zxg = zxg + str(ss)+code+"\n"
if(len(tmp)<10):
continue days = tmp[0].split('-')
if(len(days)<2):
days = tmp[0].split('/') if(len(days)<2):
continue if(len(days[1])<2):
days[1] = ''+days[1]
if(len(days[2])<2):
days[2] = ''+days[2]
day = days[0]+days[1]+days[2]
#print(day) priceArr = tmp[9].replace('"','').split('%')
if(len(priceArr)<2):
continue
a = float(priceArr[1].replace('[','').replace(']',''))*(1-float(priceArr[0].replace('%',''))/100)
a = round(a,2)
code = str(tmp[1].replace('"','').replace("'",""))
if(code.startswith('')):
ss = 1
else:
ss = 0 getPriceByte(file,a,code,ss,day)
'''
if(j>3):
break
else:
j=j+1
''' fileA = open("WXS条件股.ebk","w")
fileA.write(zxg)
fileA.close()
file.close()
print('处理完了\n画图文件地址:./WXSline.eld')
print('\n板块文件地址:./WXS条件股.ebk')

[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上的更多相关文章

  1. [python]沪深龙虎榜数据进一步处理,计算日后5日的涨跌幅

    沪深龙虎榜数据进一步处理,计算日后5日的涨跌幅 事前数据: 前面处理得到的csv文件 文件名前加入“[wait]”等待程序处理 python代码从雅虎股票历史数据api获取数据,计算后面5日的涨跌幅 ...

  2. [python]数据整理,将取得的众多的沪深龙虎榜数据整一整

    将昨日取得的众多的沪深龙虎榜数据整一整 提取文件夹内所有抓取下来的沪深龙虎榜数据,整理出沪深两市(含中小创)涨幅榜股票及前5大买入卖出资金净值,保存到csv文件 再手动使用数据透视表进行统计 原始数据 ...

  3. Python数学建模-02.数据导入

    数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...

  4. python pandas 画图、显示中文、股票K线图

    目录: 1.pandas官方画图链接 2.标记图中数据点 3.画图显示中文 4.画股票K线图 5.matplotlib基本用法 6.format输出 6.format输出例子 eps_range=[0 ...

  5. 使用Python的pandas模块、mplfinance模块、matplotlib模块绘制K线图

    目录 pandas模块.mplfinance模块和matplotlib模块介绍 pandas模块 mplfinance模块和matplotlib模块 安装mplfinance模块.pandas模块和m ...

  6. C#下如何用NPlot绘制期货股票K线图(2):读取数据文件让K线图自动更新

    [内容介绍]上一篇介绍了K线图的基本绘制方法,但很不完善,本篇增加了它直接读取数据的功能,这对于金融市场的数据量大且又需要动态刷新功能的实现很重要. [实现方法] 1.需要一个数据文件,这里用的是直接 ...

  7. 【Python 数据分析】pandas数据导入

    导入CSV文件数据 环境 C:\Users\Thinkpad\Desktop\Data\信息表.csv 语法 pd.read_csv(filename):从CSV文件导入数据 实现代码 import ...

  8. python twisted异步将数据导入到数据库中

    from twisted.enterprise import adbapi from twisted.internet import reactor def creat_conn(): # 数据库基本 ...

  9. python读取csv文件数据绘制图像,例子绘制天气每天最高最低气温气象图

随机推荐

  1. Uiautomator 2.0之UiWatcher类学习小记

    1. 主要功能 使用此方法可以处理中断问题,从而保证测试用例的正常运行. 2. 相关API API 说明 registerWatcher (String name, UiWatcher watcher ...

  2. Android开发-之SQLite数据库

    之前我们讲了如何将数据存储在文件中,那么除了这种方式呢,就是我们常见的大家都知道的将数据存储在数据库当中了. 将数据存储在数据库中的优势: 1)存储在数据库中的数据更加方便操作,比如增.删.改.查等 ...

  3. EntityFramework之Log(五)

    关于日志 属性日志 DbContext.Database.Log 属性被设置为一个委托,该委托能接受带有一个字符串参数的任何方法,最主要的是,通过设置它到 TextWriter 的 Write 方法将 ...

  4. mac下安装tomcat

    在window下面搭建tomcat环境很简单,那是因为我们不熟悉mac系统,当我们习惯了命令行的时候,也是so easy,只要通过以下几个步骤就可以解决,本人亲测可用,不会可以留言. 1.进入apch ...

  5. 应用程序框架实战三十三:表现层及ASP.NET MVC介绍(二)

    最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和Asp.net Mvc,我将在本篇讨论一些 ...

  6. ES6 - Note5:Promise

    1.Promise介绍 Promise最早是社区提出和实现,后面ES6将其写入标准,并原生提供Promise对象,是一种异步编程的解决方案,具体的概念大家可以去查看相关的资料.传统上处理异步都是以ca ...

  7. [ES] 基础概念

    Elasticsearch是基于Luence实现的一款搜索引擎,支持分布式和集群,并且搜索近实时,主要用于搜索和数据分析 索引 index 可以理解为数据库中的database,存储的是实际数据,因为 ...

  8. 软件工程-构建之法 Visual Studio开发平台的安装与单元测试

    一.前言 自从开始了大三下的生活,学校开设一门课程“软件工程”,刚好我们是第一届进行课程改革,不在像以前那样背背概念,考前进行好好突击,然后考试就能过,最后毕业了发现软件工程课程到底我们在其中学习了什 ...

  9. Kooboo CMS - Html.FrontHtml.Position 详解

    DataContract 数据契约 http://www.cnblogs.com/Gavinzhao/archive/2010/06/01/1748736.html https://msdn.micr ...

  10. 【面试】输出"蛇形"矩阵

    一.题目描述 腾讯实习在线笔试的一道题目. 根据输入的数字(< 1000),输出这样的"蛇形"矩阵,如下.输入n,输出(n * n)阶矩阵,满足由外到内依次增大. 如: 输入 ...