Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
FactorCalculate
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李煜
FactorCalculate
Commits
b2dea9f5
Commit
b2dea9f5
authored
Jul 05, 2019
by
李煜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
code update
parent
2353e349
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
61 additions
and
53 deletions
+61
-53
client.py
client.py
+4
-5
factor_base.py
factor/factor_base.py
+7
-7
factor_cash_flow.py
factor/factor_cash_flow.py
+2
-2
factor_config.py
factor/factor_config.py
+1
-1
factor_contrarian.py
factor/factor_contrarian.py
+27
-21
factor_growth.py
factor/factor_growth.py
+0
-9
historical_value.py
factor/historical_value.py
+2
-6
trade_date.py
factor/utillities/trade_date.py
+2
-2
init.py
init.py
+4
-0
q5_cluster_work.py
q5_cluster_work.py
+12
-0
No files found.
client.py
View file @
b2dea9f5
...
@@ -377,7 +377,6 @@ def get_basic_cash_flow(trade_date):
...
@@ -377,7 +377,6 @@ def get_basic_cash_flow(trade_date):
}
}
ttm_factor_sets
=
get_ttm_fundamental
([],
ttm_factors
,
trade_date
)
.
reset_index
()
ttm_factor_sets
=
get_ttm_fundamental
([],
ttm_factors
,
trade_date
)
.
reset_index
()
ttm_factor_sets
=
ttm_factor_sets
[
-
ttm_factor_sets
.
duplicated
()]
ttm_factor_sets
=
ttm_factor_sets
[
-
ttm_factor_sets
.
duplicated
()]
# 合并
# 合并
ttm_factor_sets
=
pd
.
merge
(
ttm_factor_sets
,
valuation_sets
,
on
=
"symbol"
)
ttm_factor_sets
=
pd
.
merge
(
ttm_factor_sets
,
valuation_sets
,
on
=
"symbol"
)
...
@@ -409,7 +408,7 @@ def get_basic_constrain(trade_date):
...
@@ -409,7 +408,7 @@ def get_basic_constrain(trade_date):
Income
.
administration_expense
Income
.
administration_expense
]}
]}
ttm_factors_sets
=
get_ttm_fundamental
([],
ttm_factors
,
trade_date
)
ttm_factors_sets
=
get_ttm_fundamental
([],
ttm_factors
,
trade_date
)
.
reset_index
()
ttm_factors_sets
=
ttm_factors_sets
[
-
ttm_factors_sets
.
duplicated
()]
ttm_factors_sets
=
ttm_factors_sets
[
-
ttm_factors_sets
.
duplicated
()]
return
balance_sets
,
ttm_factors_sets
return
balance_sets
,
ttm_factors_sets
...
@@ -525,7 +524,7 @@ if __name__ == '__main__':
...
@@ -525,7 +524,7 @@ if __name__ == '__main__':
history_value
=
historical_value
.
HistoricalValue
(
'factor_historical_value'
)
history_value
=
historical_value
.
HistoricalValue
(
'factor_historical_value'
)
history_value
.
create_dest_tables
()
history_value
.
create_dest_tables
()
# per sha
pre
# per sha
re indicator
per_share
=
factor_per_share_indicators
.
PerShareIndicators
(
'factor_per_share'
)
per_share
=
factor_per_share_indicators
.
PerShareIndicators
(
'factor_per_share'
)
per_share
.
create_dest_tables
()
per_share
.
create_dest_tables
()
...
@@ -582,8 +581,8 @@ if __name__ == '__main__':
...
@@ -582,8 +581,8 @@ if __name__ == '__main__':
# constrain
# constrain
balance_sets
,
ttm_factors_sets
=
get_basic_constrain
(
date_index
)
balance_sets
,
ttm_factors_sets
=
get_basic_constrain
(
date_index
)
c
onstrain_sets
=
pd
.
merge
(
balance_sets
,
ttm_factors_sets
,
on
=
'symbol'
)
c
ache_data
.
set_cache
(
session5
+
'1'
,
date_index
,
balance_sets
.
to_json
(
orient
=
'records'
)
)
cache_data
.
set_cache
(
session5
,
date_index
,
constrain
_sets
.
to_json
(
orient
=
'records'
))
cache_data
.
set_cache
(
session5
+
'2'
,
date_index
,
ttm_factors
_sets
.
to_json
(
orient
=
'records'
))
factor_contrarian
.
factor_calculate
(
date_index
=
date_index
,
session
=
session5
)
factor_contrarian
.
factor_calculate
(
date_index
=
date_index
,
session
=
session5
)
time5
=
time
.
time
()
time5
=
time
.
time
()
print
(
'constrain_cal_time:{}'
.
format
(
time5
-
time4
))
print
(
'constrain_cal_time:{}'
.
format
(
time5
-
time4
))
...
...
factor/factor_base.py
View file @
b2dea9f5
...
@@ -9,21 +9,21 @@ from sqlalchemy.orm import sessionmaker
...
@@ -9,21 +9,21 @@ from sqlalchemy.orm import sessionmaker
sys
.
path
.
append
(
'..'
)
sys
.
path
.
append
(
'..'
)
from
factor.utillities.trade_date
import
TradeDate
from
factor.utillities.trade_date
import
TradeDate
from
factor
import
config
from
factor
import
factor_
config
class
FactorBase
(
object
):
class
FactorBase
(
object
):
def
__init__
(
self
,
name
):
def
__init__
(
self
,
name
):
destination_db
=
'''mysql+mysqlconnector://{0}:{1}@{2}:{3}/{4}'''
.
format
(
config
.
destination_db_user
,
destination_db
=
'''mysql+mysqlconnector://{0}:{1}@{2}:{3}/{4}'''
.
format
(
factor_
config
.
destination_db_user
,
config
.
destination_db_pwd
,
factor_
config
.
destination_db_pwd
,
config
.
destination_db_host
,
factor_
config
.
destination_db_host
,
config
.
destination_db_port
,
factor_
config
.
destination_db_port
,
config
.
destination_db_database
)
factor_
config
.
destination_db_database
)
self
.
_name
=
name
self
.
_name
=
name
self
.
_destination
=
sa
.
create_engine
(
destination_db
)
self
.
_destination
=
sa
.
create_engine
(
destination_db
)
self
.
_dest_session
=
sessionmaker
(
bind
=
self
.
_destination
,
autocommit
=
False
,
autoflush
=
True
)
self
.
_dest_session
=
sessionmaker
(
bind
=
self
.
_destination
,
autocommit
=
False
,
autoflush
=
True
)
self
.
_trade_date
=
TradeDate
()
self
.
_trade_date
=
TradeDate
()
self
.
_dir
=
config
.
RECORD_BASE_DIR
+
'factor/'
+
str
(
self
.
_name
)
self
.
_dir
=
factor_
config
.
RECORD_BASE_DIR
+
'factor/'
+
str
(
self
.
_name
)
def
_create_index
(
self
):
def
_create_index
(
self
):
session
=
self
.
_dest_session
()
session
=
self
.
_dest_session
()
...
...
factor/factor_cash_flow.py
View file @
b2dea9f5
...
@@ -269,7 +269,7 @@ def factor_calculate(**kwargs):
...
@@ -269,7 +269,7 @@ def factor_calculate(**kwargs):
ttm_factor_sets
=
json_normalize
(
json
.
loads
(
str
(
content2
,
encoding
=
'utf8'
)))
ttm_factor_sets
=
json_normalize
(
json
.
loads
(
str
(
content2
,
encoding
=
'utf8'
)))
tp_cash_flow
.
set_index
(
'symbol'
,
inplace
=
True
)
tp_cash_flow
.
set_index
(
'symbol'
,
inplace
=
True
)
ttm_factor_sets
.
set_index
(
'symbol'
,
inplace
=
True
)
ttm_factor_sets
.
set_index
(
'symbol'
,
inplace
=
True
)
print
(
"len_tp_cash_flow_data {}"
.
format
(
len
(
tp_cash_flow
)))
print
(
"len_ttm_cash_flow_data {}"
.
format
(
len
(
ttm_factor_sets
)))
total_cash_flow_data
=
{
'tp_cash_flow'
:
tp_cash_flow
,
'ttm_factor_sets'
:
ttm_factor_sets
}
total_cash_flow_data
=
{
'tp_cash_flow'
:
tp_cash_flow
,
'ttm_factor_sets'
:
ttm_factor_sets
}
print
(
"len_total_cash_flow_data {}"
.
format
(
len
(
total_cash_flow_data
)))
calculate
(
date_index
,
total_cash_flow_data
,
cash_flow
)
calculate
(
date_index
,
total_cash_flow_data
,
cash_flow
)
factor/config.py
→
factor/
factor_
config.py
View file @
b2dea9f5
...
@@ -11,7 +11,7 @@ source_db_pwd = 'read'
...
@@ -11,7 +11,7 @@ source_db_pwd = 'read'
destination_db_host
=
'10.15.97.128'
destination_db_host
=
'10.15.97.128'
destination_db_port
=
'3306'
destination_db_port
=
'3306'
destination_db_database
=
'
vision
'
destination_db_database
=
'
test
'
destination_db_user
=
'root'
destination_db_user
=
'root'
destination_db_pwd
=
'1234'
destination_db_pwd
=
'1234'
...
...
factor/factor_contrarian.py
View file @
b2dea9f5
...
@@ -158,36 +158,42 @@ class FactorContrarian(FactorBase):
...
@@ -158,36 +158,42 @@ class FactorContrarian(FactorBase):
return
factor_contrarian
return
factor_contrarian
def
calculate
(
trade_date
,
constrain_sets
,
constrain
):
# 计算对应因子
def
calculate
(
trade_date
,
total_constrain_data_dic
,
constrain
):
# 计算对应因子
print
(
trade_date
)
balance_sets
=
total_constrain_data_dic
[
'balance_sets'
]
ttm_factors_sets
=
total_constrain_data_dic
[
'ttm_factors_sets'
]
factor_contrarian
=
pd
.
DataFrame
()
factor_contrarian
=
pd
.
DataFrame
()
tp_contrarian
=
constrain_sets
factor_contrarian
[
'symbol'
]
=
balance_sets
.
index
factor_contrarian
[
'symbol'
]
=
tp_contrarian
[
'symbol'
]
# 非TTM计算
tp_contrarian
.
set_index
(
'symbol'
,
inplace
=
True
)
factor_contrarian
=
constrain
.
inte_bear_debt_to_total_capital_latest
(
balance_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
inte_bear_debt_to_total_capital_latest
(
constrain
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
debts_asset_ratio_latest
(
balance
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
debt
s_asset_ratio_latest
(
constrain
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
debt
_tangible_equity_ratio_latest
(
balance
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
debt_tangible_equity_ratio_latest
(
constrain_sets
,
factor_contrarian
)
# TTM计算
factor_contrarian
=
constrain
.
sales_cost_ratio_ttm
(
constrain
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
sales_cost_ratio_ttm
(
ttm_factors
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
tax_ratio_ttm
(
constrain
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
tax_ratio_ttm
(
ttm_factors
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
financial_expense_rate_ttm
(
constrain
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
financial_expense_rate_ttm
(
ttm_factors
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
operating_expense_rate_ttm
(
constrain
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
operating_expense_rate_ttm
(
ttm_factors
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
admini_expense_rate_ttm
(
constrain
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
admini_expense_rate_ttm
(
ttm_factors
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
period_costs_rate_ttm
(
constrain
_sets
,
factor_contrarian
)
factor_contrarian
=
constrain
.
period_costs_rate_ttm
(
ttm_factors
_sets
,
factor_contrarian
)
factor_contrarian
[
'id'
]
=
factor_contrarian
[
'symbol'
]
+
str
(
trade_date
)
factor_contrarian
[
'id'
]
=
factor_contrarian
[
'symbol'
]
+
str
(
trade_date
)
factor_contrarian
[
'trade_date'
]
=
str
(
trade_date
)
factor_contrarian
[
'trade_date'
]
=
str
(
trade_date
)
constrain
.
_storage_data
(
factor_contrarian
,
trade_date
)
constrain
.
_storage_data
(
factor_contrarian
,
trade_date
)
@
app
.
task
()
@
app
.
task
()
def
factor_calculate
(
**
kwargs
):
def
factor_calculate
(
**
kwargs
):
print
(
"constrain_kwargs: {}"
.
format
(
kwargs
))
print
(
"constrain_kwargs: {}"
.
format
(
kwargs
))
date_index
=
kwargs
[
'date_index'
]
date_index
=
kwargs
[
'date_index'
]
session
=
kwargs
[
'session'
]
session
=
kwargs
[
'session'
]
constrain
=
FactorContrarian
(
'factor_constrain'
)
# 注意, 这里的name要与client中新建table时的name一致, 不然回报错
constrain
=
FactorContrarian
(
'factor_constrain'
)
# 注意, 这里的name要与client中新建table时的name一致, 不然回报错
content
=
cache_data
.
get_cache
(
session
,
date_index
)
content1
=
cache_data
.
get_cache
(
session
+
'1'
,
date_index
)
total_constrain_data
=
json_normalize
(
json
.
loads
(
str
(
content
,
encoding
=
'utf8'
)))
content2
=
cache_data
.
get_cache
(
session
+
'2'
,
date_index
)
print
(
"len_total_constrain_data {}"
.
format
(
len
(
total_constrain_data
)))
balance_sets
=
json_normalize
(
json
.
loads
(
str
(
content1
,
encoding
=
'utf8'
)))
calculate
(
date_index
,
total_constrain_data
,
constrain
)
ttm_factors_sets
=
json_normalize
(
json
.
loads
(
str
(
content2
,
encoding
=
'utf8'
)))
\ No newline at end of file
balance_sets
.
set_index
(
'symbol'
,
inplace
=
True
)
ttm_factors_sets
.
set_index
(
'symbol'
,
inplace
=
True
)
print
(
"len_constrain_data {}"
.
format
(
len
(
balance_sets
)))
print
(
"len_ttm_constrain_data {}"
.
format
(
len
(
ttm_factors_sets
)))
total_constrain_data_dic
=
{
'balance_sets'
:
balance_sets
,
'ttm_factors_sets'
:
ttm_factors_sets
}
calculate
(
date_index
,
total_constrain_data_dic
,
constrain
)
factor/factor_growth.py
View file @
b2dea9f5
...
@@ -687,15 +687,6 @@ def calculate(trade_date, growth_sets, growth):
...
@@ -687,15 +687,6 @@ def calculate(trade_date, growth_sets, growth):
growth
.
_storage_data
(
factor_historical_growth
,
trade_date
)
growth
.
_storage_data
(
factor_historical_growth
,
trade_date
)
def
do_update
(
growth
,
growth_sets
,
start_date
,
end_date
,
count
):
# 读取本地交易日
_trade_date
=
td
.
TradeDate
()
trade_date_sets
=
_trade_date
.
trade_date_sets_ago
(
start_date
,
end_date
,
count
)
for
trade_date
in
trade_date_sets
:
calculate
(
trade_date
,
growth_sets
,
growth
)
print
(
'----->'
)
@
app
.
task
()
@
app
.
task
()
def
factor_calculate
(
**
kwargs
):
def
factor_calculate
(
**
kwargs
):
print
(
"growth_kwargs: {}"
.
format
(
kwargs
))
print
(
"growth_kwargs: {}"
.
format
(
kwargs
))
...
...
factor/historical_value.py
View file @
b2dea9f5
...
@@ -11,20 +11,16 @@ import sys
...
@@ -11,20 +11,16 @@ import sys
from
datetime
import
datetime
from
datetime
import
datetime
sys
.
path
.
append
(
".."
)
sys
.
path
.
append
(
".."
)
import
json
import
math
import
math
import
numpy
as
np
import
numpy
as
np
from
vision.fm.signletion_engine
import
*
from
factor.utillities.calc_tools
import
CalcTools
import
json
from
pandas.io.json
import
json_normalize
from
pandas.io.json
import
json_normalize
from
factor
import
app
from
factor
import
app
from
factor.factor_base
import
FactorBase
from
factor.factor_base
import
FactorBase
from
factor.ttm_fundamental
import
*
from
factor.ttm_fundamental
import
*
from
vision.fm.signletion_engine
import
*
from
vision.fm.signletion_engine
import
*
from
factor.utillities
import
trade_date
as
td
from
factor.utillities
.calc_tools
import
CalcTools
from
ultron.cluster.invoke.cache_data
import
cache_data
from
ultron.cluster.invoke.cache_data
import
cache_data
...
...
factor/utillities/trade_date.py
View file @
b2dea9f5
...
@@ -8,13 +8,13 @@ from collections import OrderedDict
...
@@ -8,13 +8,13 @@ from collections import OrderedDict
import
collections
import
collections
sys
.
path
.
append
(
"../../"
)
sys
.
path
.
append
(
"../../"
)
from
factor
import
config
from
factor
import
factor_
config
class
TradeDate
(
object
):
class
TradeDate
(
object
):
def
__init__
(
self
):
def
__init__
(
self
):
self
.
_all_trade_file
=
config
.
RECORD_BASE_DIR
+
'trade_date/'
+
'trade_date.csv'
self
.
_all_trade_file
=
factor_
config
.
RECORD_BASE_DIR
+
'trade_date/'
+
'trade_date.csv'
self
.
_trade_date_sets
=
OrderedDict
()
self
.
_trade_date_sets
=
OrderedDict
()
self
.
_load_trade_date
()
self
.
_load_trade_date
()
...
...
init.py
0 → 100644
View file @
b2dea9f5
from
ultron.config
import
config_setting
config_setting
.
set_queue
(
qtype
=
'redis'
,
host
=
'10.15.5.34'
,
port
=
6379
,
pwd
=
''
,
db
=
1
)
config_setting
.
update
()
q5_cluster_work.py
0 → 100644
View file @
b2dea9f5
# coding=utf-8
import
sys
import
gevent.monkey
;
gevent
.
monkey
.
patch_all
()
from
twisted.internet
import
reactor
sys
.
path
.
append
(
'../..'
)
from
ultron.cluster.work.work_engine
import
WorkEngine
if
__name__
==
"__main__"
:
reactor
.
__init__
()
work_engine
=
WorkEngine
()
reactor
.
run
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment