Commit f72a7872 authored by 纪超's avatar 纪超

完成日志、配置文件、数据库工具模块

parent 495d15b0
import json
import os
import sys
from logging import DEBUG
import pandas as pd
from dateutil.relativedelta import relativedelta
......@@ -108,7 +109,8 @@ class MptSolver:
return min_rtn, min_var, maxCVaR_whenMinV
def solve_mpt(self, min_rtn, max_rtn):
logger.debug(f'...... ...... ...... ...... ...... ...... ...... ...... MPT ... sub risk : pct_value = {self.pct_value}')
logger.debug(
f'...... ...... ...... ...... ...... ...... ...... ...... MPT ... sub risk : pct_value = {self.pct_value}')
big_y = min_rtn + self.pct_value * (max_rtn - min_rtn)
logger.debug(f'big_Y = target_Return = {big_y}')
model = self.create_model()
......@@ -127,7 +129,8 @@ class MptSolver:
def solve_poem(self, min_rtn, max_rtn, base_cvar, max_cvar):
k_history = len(self.rtn_history)
quantile = self.pct_value
logger.debug(f'...... ...... ...... ...... ...... ...... ...... ...... POEM With CVaR constraints ... sub risk : pct_value = {quantile}')
logger.debug(
f'...... ...... ...... ...... ...... ...... ...... ...... POEM With CVaR constraints ... sub risk : pct_value = {quantile}')
big_y = min_rtn + quantile * (max_rtn - min_rtn)
small_y = base_cvar + (max_cvar - base_cvar) * self.get_config('poem.cvar-scale-factor') * quantile
logger.debug(f'big_Y = target_Return = {big_y} | small_y = target_cvar = {small_y}')
......
......@@ -7,8 +7,11 @@ logger = get_logger('test')
@autowired(names={'builder': 'poem'})
def test_portfolio_builder(builder: PortfoliosBuilder = None):
result, detail = builder.build_portfolio(parse_date('2011-11-07'), PortfoliosType.NORMAL)
logger.info(result)
logger.info(detail)
logger.info("portfolios: ")
for risk, portfolio in result.items():
logger.info(risk.name)
logger.info(portfolio)
logger.info(detail[risk])
if __name__ == '__main__':
......
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