您的位置  > 互联网

通达信日线数据出现错误怎么办?万一数据源不准确?

当然,如果以后这部分数据被官方加密了,那就失效了。 目前的分析是基于当前的情况。

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日不会有两组数据。 这也是程序中普遍关注的,去除重复数据的过程。

下载完成后,再次运行上面的程序,发现两次输出的数据是一样的。 也就是说,重复下载某个日期的每日数据不会产生任何影响。 只有当你错过它时才会发生。 有影响。

(五)总结

至此,我对通达信数据的小研究就基本完成了,我的疑虑也消除了。 目前来说,使用起来还是比较安全的。 从底层数据到上层筛选,一切可控、值得信赖。 ,以免成为软件的混乱产品。