This repository was archived by the owner on Feb 17, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCFFEX.py
61 lines (59 loc) · 1.64 KB
/
CFFEX.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import pandas as pd
from Time import time_column
"""
in `cffexes`
{
"_id" : ObjectId("5b3e0027f91a696438efc5a3"),
"instrumentid" : "IC1807",
"tradingday" : "20180705",
"openprice" : 5065.2,
"highestprice" : 5091.4,
"lowestprice" : 4919.6,
"closeprice" : 4920.2,
"openinterest" : 25525,
"presettlementprice" : 5071.6,
"settlementpriceif" : 4960,
"settlementprice" : 4960,
"volume" : 15688,
"turnover" : 15735446000.0,
"productid" : "IC",
"expiredate" : "20180720",
"__v" : 0
}
"""
def generalize(queries):
"""
Returns:
'Instrument','TradingDay''OpenPrice','HighestPrice','LowestPrice','ClosePrice','PreSettlementPrice','SettlementPrice','Volume','OpenInterest','TurnOver','ExpireDate'
"""
data = pd.DataFrame([(
doc['instrumentid'],
doc['tradingday'],
doc['openprice'],
doc['highestprice'],
doc['lowestprice'],
doc['closeprice'],
doc['presettlementprice'],
doc['settlementprice'],
doc['volume'],
doc['openinterest'],
doc['turnover'],
doc['expiredate']
) for doc in queries], columns= [
'Instrument',
'TradingDay',
'OpenPrice',
'HighestPrice',
'LowestPrice',
'ClosePrice',
'PreSettlementPrice',
'SettlementPrice',
'Volume',
'OpenInterest',
'TurnOver',
'ExpireDate'
])
data['TradingDay'] = pd.Series(list(time_column(data['TradingDay'])))
data['ExpireDate'] = pd.Series(list(time_column(data['ExpireDate'])))
data.set_index('Instrument', inplace=True)
return data