Commit 1739f414 authored by 李煜's avatar 李煜

modify factor_constrain

parent 22cd0fd7
...@@ -20,7 +20,6 @@ from vision.utillities.calc_tools import CalcTools ...@@ -20,7 +20,6 @@ from vision.utillities.calc_tools import CalcTools
from ultron.cluster.invoke.cache_data import cache_data from ultron.cluster.invoke.cache_data import cache_data
class FactorContrarian(FactorBase): class FactorContrarian(FactorBase):
def __init__(self, name): def __init__(self, name):
super(FactorContrarian, self).__init__(name) super(FactorContrarian, self).__init__(name)
...@@ -32,15 +31,15 @@ class FactorContrarian(FactorBase): ...@@ -32,15 +31,15 @@ class FactorContrarian(FactorBase):
`id` varchar(32) NOT NULL, `id` varchar(32) NOT NULL,
`symbol` varchar(24) NOT NULL, `symbol` varchar(24) NOT NULL,
`trade_date` date NOT NULL, `trade_date` date NOT NULL,
`sales_cost_ratio_ttm` decimal(19,4), `SalesCostTTM` decimal(19,4),
`tax_ratio_ttm` decimal(19,4), `TaxRTTM` decimal(19,4),
`financail_expense_rate_ttm` decimal(19,4), `FinExpTTM` decimal(19,4),
`operating_expense_rate_ttm` decimal(19,4), `OperExpTTM` decimal(19,4),
`admini_expense_rate_ttm` decimal(19,4), `AdminExpTTM` decimal(19,4),
`period_costs_rate_ttm` decimal(19,4), `PeridCostTTM` decimal(19,4),
`debt_tangible_equity_ratio_latest` decimal(19,4), `DTE` decimal(19,4),
`debts_asset_ratio_latest` decimal(19,4), `DA` decimal(19,4),
`inte_bear_debt_to_total_capital_latest` decimal(19,4), `IntBDToCap` decimal(19,4),
PRIMARY KEY(`id`,`trade_date`,`symbol`) PRIMARY KEY(`id`,`trade_date`,`symbol`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;""".format(self._name) )ENGINE=InnoDB DEFAULT CHARSET=utf8;""".format(self._name)
super(FactorContrarian, self)._create_tables(create_sql, drop_sql) super(FactorContrarian, self)._create_tables(create_sql, drop_sql)
...@@ -49,7 +48,7 @@ class FactorContrarian(FactorBase): ...@@ -49,7 +48,7 @@ class FactorContrarian(FactorBase):
def sales_cost_ratio_ttm(self, tp_contrarian, factor_contrarian): def sales_cost_ratio_ttm(self, tp_contrarian, factor_contrarian):
columns_list = ['operating_cost', 'operating_revenue'] columns_list = ['operating_cost', 'operating_revenue']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['sales_cost_ratio_ttm'] = np.where( contrarian['SalesCostTTM'] = np.where(
CalcTools.is_zero(contrarian['operating_revenue']), CalcTools.is_zero(contrarian['operating_revenue']),
0, contrarian['operating_cost'] / contrarian['operating_revenue'] 0, contrarian['operating_cost'] / contrarian['operating_revenue']
) )
...@@ -61,7 +60,7 @@ class FactorContrarian(FactorBase): ...@@ -61,7 +60,7 @@ class FactorContrarian(FactorBase):
def tax_ratio_ttm(self, tp_contrarian, factor_contrarian): def tax_ratio_ttm(self, tp_contrarian, factor_contrarian):
columns_list = ['operating_tax_surcharges', 'operating_revenue'] columns_list = ['operating_tax_surcharges', 'operating_revenue']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['tax_ratio_ttm'] = np.where( contrarian['TaxRTTM'] = np.where(
CalcTools.is_zero(contrarian['operating_revenue']), 0, CalcTools.is_zero(contrarian['operating_revenue']), 0,
contrarian['operating_tax_surcharges'] / contrarian['operating_revenue'] contrarian['operating_tax_surcharges'] / contrarian['operating_revenue']
) )
...@@ -73,7 +72,7 @@ class FactorContrarian(FactorBase): ...@@ -73,7 +72,7 @@ class FactorContrarian(FactorBase):
def financial_expense_rate_ttm(self, tp_contrarian, factor_contrarian): def financial_expense_rate_ttm(self, tp_contrarian, factor_contrarian):
columns_list = ['financial_expense', 'total_operating_cost'] columns_list = ['financial_expense', 'total_operating_cost']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['financail_expense_rate_ttm'] = np.where( contrarian['FinExpTTM'] = np.where(
CalcTools.is_zero(contrarian['total_operating_cost']), 0, CalcTools.is_zero(contrarian['total_operating_cost']), 0,
contrarian['financial_expense'] / contrarian['total_operating_cost'] contrarian['financial_expense'] / contrarian['total_operating_cost']
) )
...@@ -85,7 +84,7 @@ class FactorContrarian(FactorBase): ...@@ -85,7 +84,7 @@ class FactorContrarian(FactorBase):
def operating_expense_rate_ttm(self, tp_contrarian, factor_contrarian): def operating_expense_rate_ttm(self, tp_contrarian, factor_contrarian):
columns_list = ['sale_expense', 'total_operating_cost', 'total_operating_revenue'] columns_list = ['sale_expense', 'total_operating_cost', 'total_operating_revenue']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['operating_expense_rate_ttm'] = np.where( contrarian['OperExpTTM'] = np.where(
CalcTools.is_zero(contrarian['total_operating_cost']), 0, CalcTools.is_zero(contrarian['total_operating_cost']), 0,
contrarian['sale_expense'] / contrarian['total_operating_revenue'] contrarian['sale_expense'] / contrarian['total_operating_revenue']
) )
...@@ -97,7 +96,7 @@ class FactorContrarian(FactorBase): ...@@ -97,7 +96,7 @@ class FactorContrarian(FactorBase):
def admini_expense_rate_ttm(self, tp_contrarian, factor_contrarian): def admini_expense_rate_ttm(self, tp_contrarian, factor_contrarian):
columns_list = ['administration_expense', 'total_operating_revenue'] columns_list = ['administration_expense', 'total_operating_revenue']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['admini_expense_rate_ttm'] = np.where( contrarian['AdminExpTTM'] = np.where(
CalcTools.is_zero(contrarian['total_operating_revenue']), 0, CalcTools.is_zero(contrarian['total_operating_revenue']), 0,
contrarian['administration_expense'] / contrarian['total_operating_revenue'] contrarian['administration_expense'] / contrarian['total_operating_revenue']
) )
...@@ -109,7 +108,7 @@ class FactorContrarian(FactorBase): ...@@ -109,7 +108,7 @@ class FactorContrarian(FactorBase):
def period_costs_rate_ttm(self, tp_contrarian, factor_contrarian): def period_costs_rate_ttm(self, tp_contrarian, factor_contrarian):
columns_list = ['financial_expense', 'sale_expense', 'administration_expense', 'operating_revenue'] columns_list = ['financial_expense', 'sale_expense', 'administration_expense', 'operating_revenue']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['period_costs_rate_ttm'] = np.where( contrarian['PeridCostTTM'] = np.where(
CalcTools.is_zero(contrarian['operating_revenue']), 0, CalcTools.is_zero(contrarian['operating_revenue']), 0,
(contrarian['financial_expense'] + contrarian['sale_expense'] + contrarian['administration_expense']) / \ (contrarian['financial_expense'] + contrarian['sale_expense'] + contrarian['administration_expense']) / \
contrarian['operating_revenue'] contrarian['operating_revenue']
...@@ -122,7 +121,7 @@ class FactorContrarian(FactorBase): ...@@ -122,7 +121,7 @@ class FactorContrarian(FactorBase):
def debt_tangible_equity_ratio_latest(self, tp_contrarian, factor_contrarian): def debt_tangible_equity_ratio_latest(self, tp_contrarian, factor_contrarian):
columns_list = ['total_liability', 'total_current_liability', 'fixed_assets'] columns_list = ['total_liability', 'total_current_liability', 'fixed_assets']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['debt_tangible_equity_ratio_latest'] = np.where( contrarian['DTE'] = np.where(
CalcTools.is_zero(contrarian['total_current_liability'] + contrarian['fixed_assets']), 0, CalcTools.is_zero(contrarian['total_current_liability'] + contrarian['fixed_assets']), 0,
contrarian['total_current_liability'] / (contrarian['total_current_liability'] + contrarian['fixed_assets']) contrarian['total_current_liability'] / (contrarian['total_current_liability'] + contrarian['fixed_assets'])
) )
...@@ -134,7 +133,7 @@ class FactorContrarian(FactorBase): ...@@ -134,7 +133,7 @@ class FactorContrarian(FactorBase):
def debts_asset_ratio_latest(self, tp_contrarian, factor_contrarian): def debts_asset_ratio_latest(self, tp_contrarian, factor_contrarian):
columns_list = ['total_liability', 'total_assets'] columns_list = ['total_liability', 'total_assets']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['debts_asset_ratio_latest'] = np.where( contrarian['DA'] = np.where(
CalcTools.is_zero(contrarian['total_assets']), 0, CalcTools.is_zero(contrarian['total_assets']), 0,
contrarian['total_liability'] / contrarian['total_assets']) contrarian['total_liability'] / contrarian['total_assets'])
contrarian = contrarian.drop(columns_list, axis=1) contrarian = contrarian.drop(columns_list, axis=1)
...@@ -147,7 +146,7 @@ class FactorContrarian(FactorBase): ...@@ -147,7 +146,7 @@ class FactorContrarian(FactorBase):
columns_list = ['interest_bearing_liability', 'fixed_assets', 'total_current_assets', columns_list = ['interest_bearing_liability', 'fixed_assets', 'total_current_assets',
'total_current_liability'] 'total_current_liability']
contrarian = tp_contrarian.loc[:, columns_list] contrarian = tp_contrarian.loc[:, columns_list]
contrarian['inte_bear_debt_to_total_capital_latest'] = np.where( contrarian['IntBDToCap'] = np.where(
CalcTools.is_zero(contrarian['fixed_assets'] + contrarian['total_current_assets'] + \ CalcTools.is_zero(contrarian['fixed_assets'] + contrarian['total_current_assets'] + \
contrarian['total_current_liability']), 0, contrarian['total_current_liability']), 0,
contrarian['interest_bearing_liability'] / (contrarian['fixed_assets'] + \ contrarian['interest_bearing_liability'] / (contrarian['fixed_assets'] + \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment