Commit bef905ae authored by stephen.wang's avatar stephen.wang

# 投组代码更新,4组config:stable、mdis、usmarket、indutryfund

parent d10b09d4
......@@ -5,7 +5,7 @@ from sys import exception
import numpy as np
import pandas as pd
from dateutil.relativedelta import relativedelta
from empyrical import sortino_ratio, annual_volatility
from empyrical import sortino_ratio, annual_volatility, downside_risk, annual_return, tail_ratio
from py_jftech import filter_weekend, dict_remove, get_config, component, autowired, next_workday, \
is_workday
......@@ -163,7 +163,7 @@ class FundDividendSortinoAssetOptimize(SortinoAssetOptimize):
pct_change = pct_change.truncate(before=(day - relativedelta(**self.annual_volatility_section[0])))
# 时间未够计算年化波动的直接剔除
funds = [fund for fund in funds if fund['id'] in pct_change.columns]
ratio = annual_volatility(pct_change)
ratio = downside_risk(pct_change) # annual_volatility / downside_risk / tail_ratio
ratio = pd.Series(ratio).to_dict()
annual = dict(zip(pct_change.columns, ratio.values()))
self.save_annual(day, annual)
......
This diff is collapsed.
This diff is collapsed.
......@@ -121,7 +121,7 @@ class MptARCPortfoliosBuilder(MptPortfoliosBuilder):
try:
portfolio = rmp.get_one(day, type, risk)
if not portfolio:
result = self.build_portfolio(day, type)
result, detail = self.build_portfolio(day, type)
for build_risk, datas in result.items():
datas['portfolio'] = self._checker.check(day, json.loads(datas['portfolio']))
try:
......
......@@ -396,7 +396,7 @@ class DivHoldReportor(RoboReportor):
@property
def report_name(self) -> str:
return '投组净值'
return '投組淨值'
def load_report(self, max_date=dt.today(), min_date=None) -> List[dict]:
holds = pd.DataFrame(rhp.get_list(max_date=max_date, min_date=min_date))
......@@ -419,7 +419,7 @@ class DailyHoldReportor(RoboReportor):
@property
def report_name(self) -> str:
return '每日持信息'
return '每日持信息'
def load_report(self, max_date=prev_workday(dt.today()), min_date=None) -> List[dict]:
holds = pd.DataFrame(rhp.get_list(max_date=max_date, min_date=min_date))
......
......@@ -93,7 +93,7 @@ class SignalReportor(RoboReportor):
@property
def report_name(self) -> str:
return '调仓信号'
return '調倉信號'
def load_report(self, max_date=dt.today(), min_date=None) -> List[dict]:
result = []
......@@ -109,7 +109,7 @@ class SignalReportor(RoboReportor):
'rebalance_date': rebalance_date,
'portfolio_type': PortfoliosType(signal['portfolio_type']).name,
'ft_ticker': datums[fund_id]['ftTicker'],
'blooberg_ticker': datums[fund_id]['bloombergTicker'],
'bloomberg_ticker': datums[fund_id]['bloombergTicker'],
'fund_name': datums[fund_id]['chineseName'],
'weight': weight
})
......@@ -126,7 +126,7 @@ class DailySignalReportor(RoboReportor):
@property
def report_name(self) -> str:
return '每日调仓信号'
return '每月調倉信號'
def load_report(self, max_date=prev_workday(dt.today()), min_date=None) -> List[dict]:
signals = pd.DataFrame(rrs.get_list(max_date=max_date, min_date=min_date))
......
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