久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

使用Python破解通達(dá)信股票數(shù)據(jù)...

 長江黃鶴 2021-01-02

  使用Python破解通達(dá)信股票數(shù)據(jù)

  最近在研究軟件選股與自動交易,,所以需要獲取股票的每日數(shù)據(jù),。

  我的電腦上已經(jīng)安裝了券商的交易軟件,交易軟件提供商是通達(dá)信,。

  下面簡要介紹從通達(dá)信的交易軟件中獲取股票數(shù)據(jù)的過程,使用Python語言,。

  本文參考了CSDN的一篇文章,,原始鏈接如下:

  http://blog.csdn.net/liuyukuan/article/details/53560278

  一、通達(dá)信的股票文件格式

  通過交易軟件的“盤后數(shù)據(jù)下載”功能,,可以下載到所有股票的日線數(shù)據(jù),,具體位置在:

  交易軟件的安裝目錄\vipdoc\sh[sz]\lday

  文件命名為:sh[sz]000001.day

  日線文件中,每32字節(jié)(32bytes)為一天的記錄,。

  每4個字節(jié)為一項(xiàng)數(shù)據(jù):

  第1項(xiàng),,交易日期

  第2項(xiàng),開盤價

  第3項(xiàng),,最高價

  第4項(xiàng),,最低價

  第5項(xiàng),收盤價

  第6項(xiàng),,成交金額

  第7項(xiàng),,成交量

  第8項(xiàng),未使用

  二,、Python代碼

  1. 設(shè)計思路:

  將日線文件轉(zhuǎn)換成CS格式的文件,,方便后期處理。

  CSV是一種文本文件的格式,,使用逗號或其它分隔符將數(shù)據(jù)逐列隔開,,每行代表一條記錄。

  可以使用Excel打開CSV格式的文件,。

  打開日線文件,,依次讀入32個字節(jié),然后將這8項(xiàng)數(shù)據(jù)變成字符格式后以逗號隔開,,寫入CSV文件,。

  2. 主要函數(shù)介紹:

  這里用到了strut庫中的unpack函數(shù),該函數(shù)用于將字節(jié)序列解析為字符串,,有許多可用的格式,。

  3. 代碼:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import os
  4. from struct import unpack
  5. # 將通達(dá)信的日線文件轉(zhuǎn)換成CSV格式
  6. def day2csv(source_dir, file_name, target_dir):
  7. # 以二進(jìn)制方式打開源文件
  8. source_file = open(source_dir + os.sep + file_name, 'rb')
  9. buf = source_file.read()
  10. source_file.close()
  11. # 打開目標(biāo)文件,后綴名為CSV
  12. target_file = open(target_dir + os.sep + file_name + '.csv', 'w')
  13. buf_size = len(buf)
  14. rec_count = buf_size / 32
  15. begin = 0
  16. end = 32
  17. header = str('date') + ', ' + str('open') + ', ' + str('high') + ', ' + str('low') + ', ' \
  18. + str('close') + ', ' + str('amount') + ', ' + str('vol') + ', ' + str('str07') + '\n'
  19. target_file.write(header)
  20. for i in xrange(rec_count):
  21. # 將字節(jié)流轉(zhuǎn)換成Python數(shù)據(jù)格式
  22. # I: unsigned int
  23. # f: float
  24. a = unpack('IIIIIfII', buf[begin:end])
  25. line = str(a[0]) + ', ' + str(a[1] / 100.0) + ', ' + str(a[2] / 100.0) + ', ' \
  26. + str(a[3] / 100.0) + ', ' + str(a[4] / 100.0) + ', ' + str(a[5] / 10.0) + ', ' \
  27. + str(a[6]) + ', ' + str(a[7]) + ', ' + '\n'
  28. target_file.write(line)
  29. begin += 32
  30. end += 32
  31. target_file.close()
  32. source = 'C:/new_dxzq_v6/vipdoc/sh/lday'
  33. target = 'E:/tmp'
  34. file_list = os.listdir(source)
  35. for f in file_list:
  36. day2csv(source, f, target)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多