当然,如果以后这部分数据被官方加密了,那就失效了。 目前的分析是基于当前的情况。
1.通达鑫每日数据
通达信每日数据为何被破译(有点唬人)?
随着道宗的社群日益壮大,目前很多筛选程序,包括决策,都是以通达信的数据为原料进行加工。 这就引发了一个思考,如果通达信数据出现错误怎么办? 如果数据来源不准确怎么办? 。 。 。 。
作为一名码农,坦白说,我最担心的就是这个数据源(原材料)的问题。 正如我们通常担心我们吃的水果和蔬菜不健康一样,我也担心通达信筛查公式中输入的数据存在问题。 一样的。 原因是同样的担忧。
作为RPS最重要的一步,就是扩展数据管理中的数据序号。 原理是引用本地所有日常数据并排队。 增加的将排名第一,获得高分。 将给予100分。 更糟糕的人被抛在了后面。 因此,RPS的核心是日常数据的清洁度。
2. 追根溯源(一)
因此,通过查找资料,我们可以确定通达信的安装位置D:\Files(x86)\\下面就是下载的售后数据的放置位置。
CW放置财务数据的下载信息,是获取资金比例等的数据来源。
目前没有ds和ot的数据,我记不清它的拼音了。 太丢脸了。
sh是上海公司的数据
sz是深圳公司的数据
输入sh或者sz后,我们发现如下目录
今天不明白它写的是什么
放置的数据是5分钟
lday 放置每日数据
放置的数据为1分钟
(2) 破译每日数据
我们在lday目录中看到的是一堆day文件
打开后一片混乱。
另外,通过二进制查看工具,我们可以看到相对可见的信息
通过网上的资料,我发现很多人已经和我对数据源做了同样的研究。 我只是拿他们的研究来验证和确认,以消除我自己的疑虑。
(3) 解析代码
了解了底层结构之后,处理起来就容易多了。 破解,人生苦短,我就用它。
def stock_csv(filepath, name):
data = []
with open(filepath, 'rb') as f:
print(f)
file_object_path = 'D:/myData/' + name +'.csv'
file_object = open(file_object_path, 'w+')
while True:
stock_date = f.read(4)
stock_open = f.read(4)
stock_high = f.read(4)
stock_low= f.read(4)
stock_close = f.read(4)
stock_amount = f.read(4)
stock_vol = f.read(4)
stock_reservation = f.read(4)
# date,open,high,low,close,amount,vol,reservation
if not stock_date:
break
stock_date = struct.unpack("I", stock_date) # 4字节 如20091229
stock_open = struct.unpack("I", stock_open) #开盘价*100
stock_high = struct.unpack("I", stock_high) #最高价*100
stock_low= struct.unpack("I", stock_low) #最低价*100
stock_close = struct.unpack("I", stock_close) #收盘价*100
stock_amount = struct.unpack("f", stock_amount) #成交额
stock_vol = struct.unpack("I", stock_vol) #成交量
stock_reservation = struct.unpack("I", stock_reservation) #保留值
date_format = datetime.datetime.strptime(str(stock_date[0]),'%Y%M%d') #格式化日期
list= date_format.strftime('%Y-%M-%d')+","+str(stock_open[0]/100)+","+str(stock_high[0]/100.0)+","+str(stock_low[0]/100.0)+","+str(stock_close[0]/100.0)+","+str(stock_vol[0])+"\r\n"
file_object.writelines(list)
file_object.close()
stock_csv('D:/Program Files (x86)/new_tdx/vipdoc/sh/lday/sh600000.day', 'sh600000')
程序完成后,使用 Excel 打开我们的输出。 以上是浦发银行的数据。
对比上面和显示后,开盘、最高、最低、收盘、成交量完全一致。
(4)每日数据重复下载会怎样?
这个问题的疑惑来自于前段时间我和一个朋友沟通的时候,他的沟通信中的数据不一致,有些日期重复了。 但根据我对底层程序的理解,不应该。 于是我又试了一次。
首先备份旧的
我们注意到两者的修改日期不一致。 为了防止重蹈覆辙,我不想重复下载20多年的数据。 。 。
其次,我故意反复下载了本周的数据
其实我们仔细看一下上面的文字:下载的数据会覆盖掉本地原来的数据。
这也表明,3月4日至8日的浦发等相同数据被重复下载,但只是被覆盖。 3月4日到8日不会有两组数据。 这也是程序中普遍关注的,去除重复数据的过程。
下载完成后,再次运行上面的程序,发现两次输出的数据是一样的。 也就是说,重复下载某个日期的每日数据不会产生任何影响。 只有当你错过它时才会发生。 有影响。
(五)总结
至此,我对通达信数据的小研究就基本完成了,我的疑虑也消除了。 目前来说,使用起来还是比较安全的。 从底层数据到上层筛选,一切可控、值得信赖。 ,以免成为软件的混乱产品。