Commit 4f938e27 authored by stephen.wang's avatar stephen.wang

Merge remote-tracking branch 'origin/dev-dividend' into dev-dividend

parents 90e3aeea 1eff3e20
......@@ -3,9 +3,20 @@ from py_jftech import autowired
from api import DatumType, Datum
risk_dict = {}
@autowired
def format_weight(weight: dict, to=1, datum: Datum = None) -> dict:
def build_risk_dict(datum: Datum = None):
global risk_dict
if risk_dict:
pass
else:
funds = datum.get_datums(type=DatumType.FUND)
risk_dict = {fund['id']: fund['risk'] for fund in funds}
def format_weight(weight: dict, to=1) -> dict:
"""
对权重的小数点进行截取,到指定权重
@param datum:
......@@ -13,19 +24,19 @@ def format_weight(weight: dict, to=1, datum: Datum = None) -> dict:
@param to: 指定权重
@return:
"""
# funds = datum.get_datums(type=DatumType.FUND)
# risk_dict = {fund['id']: fund['risk'] for fund in funds}
# risk = 0
# for k, v in weight.items():
# risk += risk_dict.get(int(k)) * v
# print(risk)
build_risk_dict()
weight_series = pd.Series(weight)
weight_series = weight_series.fillna(0)
weight_series = weight_series.apply(lambda x: round(x, 2))
if weight_series.sum() == to:
return dict(weight_series)
funds = datum.get_datums(type=DatumType.FUND)
risk_dict = {fund['id']: fund['risk'] for fund in funds}
id_sort = sorted(weight_series.to_dict().keys(), key=lambda x: risk_dict.get(int(x)))
# 低风险
minidx = id_sort[0]
......
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