Skip to main content

emoney data file parser

Project description

# emdfparse

## 安装

```
python3 setup.py install # 需要安装python3, setuptools, 如果系统中有pip3, 说明setuptools已经有了
```

## 用途

解析DS几种落地文件(基于移动加强版Linux MDS, 猜测和金融平台使用的文件格式相同)

- K线类型: Day.dat, Day_\*.dat, Min1.dat, Min1_\*.dat, Min5.dat, Min5_\*.dat, Min30.dat, Min30_\*.dat 等
- 分时数据: Minute.dat_n 等
- 成交数据: Bargain.dat_n 等
- HisMin (我不知道怎么文字描述这个类型): HisMin.dat_n

可作为一个包供其他python脚本使用,也可以作为一个打印数据到标准输出的命令行工具使用

### 作为包

```
usage:

>>> from emdfparse import DataFile, Day
>>> df = DataFile('/usr/local/EMoney/Data/Day.dat', Day)
>>> for id, tms in df.items():
print('id: {}'.format(id))
print(tms)

id: 1
time:20171009 open:3403245 high:3410170 low :3366965 close:3374378 volume:191736057 amount:227440594944
time:20171016 open:3393205 high:3400511 low :3374768 close:3378470 volume:174330620 amount:221650690048
...
```


### 作为命令行工具

```
Usage:
emdfparse -h | --help | --version
emdfparse -t <type> (-c| -a| -l| -i <goodsid>) <filename>

Arguments:
filename name of data file

Options:
-h --help show help
-v --version show version
-t <type> specify the file type ( d| m| h| b ) d: Day, m: Minute, h: HisMin, b: Bargain
-c output goods number
-a output all goods time series data in file
-l list goods id in file
-i <goodsid> output the time data of specified good

```

示例:

#### 1. 列出Day.dat 股票数量
```
emdfparse -t d -c Day.dat

6718
```

#### 2. 列出Day.dat 中所有股票

```
emdfparse -t d -l Day.dat

1835474
136611
1835086
1833114
1835479
1835483
1835485
1835486
1835488
1835489
1835490
1150067
1835492
1107513
1835494
1835495
1870213
1835501
1835502
1835503
...

后接 "|less" 可浏览, 接 "|wc -l" 可统计股票数量, 不赘述
```


#### 3. 列出HisMin.dat_1中goodsId为1的股票数据(最后先用1命令查看文件中是否有该goodsId, -i 指定文件中不存在的goodsId会抛KeyError异常)

```
emdfparse -t h -i 1 HisMin.dat_1|less

time:1711130931 price:3439398 ave :3438242 volume:4194014 zjjl:105805922
time:1711130932 price:3439423 ave :3437565 volume:1872804 zjjl:366456452
time:1711130933 price:3440603 ave :3437058 volume:1744091 zjjl:439886382
time:1711130934 price:3442064 ave :3437636 volume:1878208 zjjl:464182285
time:1711130935 price:3443901 ave :3438182 volume:1949975 zjjl:423776842
time:1711130936 price:3445536 ave :3438190 volume:1760475 zjjl:496812106
time:1711130937 price:3446067 ave :3437862 volume:1827598 zjjl:487830651
...
```

#### 4. 列出Bargain.dat_1中所有股票数据(数据较多)

```
emdfparse -t b -a Bargain.dat_1

id:603101
date:0 time:91500 price:16480 volume:500 tradenum:0 bs :-1
date:0 time:91503 price:16600 volume:500 tradenum:0 bs :-1
date:0 time:92006 price:16600 volume:800 tradenum:0 bs :-1
date:0 time:92051 price:16610 volume:800 tradenum:0 bs :-1
date:0 time:92248 price:16600 volume:1500 tradenum:0 bs :-1
date:0 time:92303 price:16600 volume:3100 tradenum:0 bs :1
date:0 time:92339 price:16600 volume:4100 tradenum:0 bs :1
date:0 time:92430 price:16600 volume:4600 tradenum:0 bs :1
date:0 time:92503 price:16600 volume:4600 tradenum:12 bs :1
date:0 time:93003 price:16500 volume:5400 tradenum:21 bs :-1
date:0 time:93006 price:16510 volume:200 tradenum:22 bs :-1
date:0 time:93024 price:16550 volume:11600 tradenum:23 bs :1
...

id:4310001
date:20171017 time:91400 price:94270 volume:35 tradenum:71880 bs :-1
date:20171017 time:91500 price:94275 volume:20 tradenum:71897 bs :1
date:20171017 time:91501 price:94280 volume:44 tradenum:71907 bs :1
date:20171017 time:91501 price:94265 volume:15 tradenum:71916 bs :-1
date:20171017 time:91502 price:94270 volume:24 tradenum:71915 bs :1
date:20171017 time:91502 price:94265 volume:19 tradenum:71916 bs :-1
date:20171017 time:91503 price:94275 volume:25 tradenum:71922 bs :1
date:20171017 time:91503 price:94290 volume:28 tradenum:71938 bs :1
date:20171017 time:91504 price:94285 volume:12 tradenum:71940 bs :1
date:20171017 time:91504 price:94285 volume:4 tradenum:71938 bs :1
date:20171017 time:91505 price:94280 volume:3 tradenum:71938 bs :1
date:20171017 time:91505 price:94290 volume:15 tradenum:71938 bs :1
date:20171017 time:91506 price:94285 volume:6 tradenum:71942 bs :-1
...
```

__注__: 2, 3 命名打印的可能并不是指定数据类型的所有字段, 可以根据需要修改Day, Minute等数据子类的brieflist, 或重写覆盖基类printbrief方法

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
emdfparse-1.0.3.tar.gz (8.7 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page