Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DemonDamon/tongdaxin-futures-data-clearing-database-operation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

9 Commits

Repository files navigation

通达信数据清洗与MongoDB数据库操作


* 简介

基本步骤如下:

  • 先从通达信上下载1分钟和5分钟的期货数据,操作:系统-盘后数据下载
  • 然后从通达信导出txt或csv文件到指定目录,操作:系统-数据导出-高级导出(注意:这里导出的时候,有分隔格式的选择,优先选择逗号分隔,如果选择其他类型分隔,需要在py文件中第34行代码,split函数里换为相应的分隔字符)
  • 启动MongoDB,然后运行tdx_mongodb-operation.py脚本 注意:这里默认你已经安装好MongoDB、Studio3T(数据可视化工具),并做好了相关配置

开发环境Python-v3(3.6):

  • pandas==0.20.0
  • numpy==1.13.3+mkl
  • pymongo==3.6.0

* 数据清洗与数据库操作(tdx_mongodb-operation.py)

  • conn_mongodb函数,连接数据库,返回一个collection
  • output_symbol_list函数,返回列表,每个元素包含了数据文件夹下所有txt/csv文件的绝对路径和对应的期货品种
  • gen_data_from_txt函数,将txt/csv文件导入并返回DataFrame类型行情数据
  • transfrom函数,将gen_data_from_txt函数导入的数据中的TradingDay(即夜盘数据属于次日交易日)转为ActionDay(即按照正常时间顺序)
  • cut函数,将5分钟数据中的冗余数据清理掉
  • data_processing函数,数据预处理函数,返回最终处理后的数据
  • extract_info函数,从数据库中抽取特定标签数据用作去重处理
  • insert_to_database函数,第一次创建数据库的时候,直接插入数据,往后的维护,需要去重处理之后再插入新数据
  • multi_thread_run函数,单线程处还是有点慢,多线程同时处理多个数据文件导入,效率会高很多,参数:max_threads_num最大线程数量, file_path是通达信txt/csv数据所在文件夹目录

* 用法

  • 配好运行环境以及安装MongoDB,最好再安装一个MongoDB的可视化管理工具Studio 3T
  • 启动MongoDB,最后运行该py脚本即可,需要设置数据跨度(1分钟还是5分钟)、数据库名称、最大启动线程数量,以及通达信txt/csv数据文件夹路径
  • 最终运行后,在MongoDB上显示如下: image

About

对通达信数据进行去重和清洗处理,并将数据存入MongoDB,方便往后研究

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /