forked from GongCQ/QuantFactor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CashFlow.py
51 lines (43 loc) · 2.51 KB
/
CashFlow.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
import Public
import pymongo as pm
import cx_Oracle as co
import datetime as dt
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
def CashFlow():
connStr = Public.GetPara('connStr')
conn = co.connect(connStr)
mongoConn = Public.GetPara('mongoConn')
mc = pm.MongoClient(mongoConn)
db = mc['factor']
# factor
configDictList = [{'facName': 'FIN_OCF_Q', 'column': 5, 'qfData': 2}, # 季度经营活动现金流
{'facName': 'FIN_OCF_QG', 'column': 5, 'qfData': 5}, # 季度经营活动现金流增长率
{'facName': 'FIN_OCF_12M', 'column': 5, 'qfData': 3}, # 12个月经营活动现金流
{'facName': 'FIN_OCE_12MG', 'column': 5, 'qfData': 6}, # 12个月经营活动现金流增长率
{'facName': 'FIN_ICF_Q', 'column': 8, 'qfData': 2}, # 季度投资活动现金流
{'facName': 'FIN_ICF_QG', 'column': 8, 'qfData': 5}, # 季度投资活动现金流增长率
{'facName': 'FIN_ICF_12M', 'column': 8, 'qfData': 3}, # 12个月投资活动现金流
{'facName': 'FIN_ICE_12MG', 'column': 8, 'qfData': 6}, # 12个月投资活动现金流增长率
{'facName': 'FIN_FCF_Q', 'column': 11, 'qfData': 2}, # 季度筹资活动现金流
{'facName': 'FIN_FCF_QG', 'column': 11, 'qfData': 5}, # 季度筹资活动现金流增长率
{'facName': 'FIN_FCF_12M', 'column': 11, 'qfData': 3}, # 12个月筹资活动现金流
{'facName': 'FIN_FCE_12MG', 'column': 11, 'qfData': 6}, # 12个月筹资活动现金流增长率
]
for configDict in configDictList:
facName = configDict['facName']
print('==== ' + facName)
lastUpdateDate = Public.GetLastUpdateDate(facName, mc)
dataList = Public.GetDataList(Public.sqlCash,
lastUpdateDate - dt.timedelta(days=365 * 3),
dt.datetime.now(),
conn)
qfDataTuple = Public.QuarterFormat(dataList)
column = configDict['column']
dataDict = qfDataTuple[configDict['qfData']]
facDict = {}
for symbol, data in dataDict.items():
facDict[symbol] = data[:, [0, 1, 2, column]]
Public.ToDB(facDict, facName, endDate=None, updateReportDate=False, mongoClient=mc)
ddd = 0
CashFlow()