py-jftech:
  logger:
    version: 1
    formatters:
      brief:
        format: "%(asctime)s - %(levelname)s - %(message)s"
      simple:
        format: "%(asctime)s - %(filename)s - %(levelname)s - %(message)s"
    handlers:
      console:
        class: logging.StreamHandler
        formatter: simple
        level: DEBUG
        stream: ext://sys.stdout
      file:
        class: logging.handlers.TimedRotatingFileHandler
        level: INFO
        formatter: brief
        filename: ${LOG_FILE:logs/info.log}
        interval: 1
        backupCount: 30
        encoding: utf8
        when: D
#    loggers:
#      basic.sync:
#        level: DEBUG
#        handlers: [console]
#        propagate: no
    root:
      level: ${LOG_LEVEL:INFO}
      handlers: ${LOG_HANDLERS:[ console ]}
  database:
    host: ${MYSQL_HOST:192.168.68.85}
    port: ${MYSQL_PORT:3306}
    user: ${MYSQL_USER:root}
    password: ${MYSQL_PWD:changeit}
    dbname: ${MYSQL_DBNAME:industryfund}  # industryfund
  injectable:
    names:
      backtest: robo_executor.BacktestExecutor
      datum: basic.datum.DefaultDatum
      hold-report: portfolios.holder.DivHoldReportor
      mpt: portfolios.builder.PoemARCPortfoliosBuilder  # PoemARCPortfoliosBuilder, RiskParityARCPortfoliosBuilder
      dividend-holder: portfolios.holder.InvTrustPortfoliosHolder
      navs-sync: basic.sync.TWFundNavSync
  email:
    server: smtphz.qiye.163.com
    user: jft-ra@thizgroup.com
    password: 5dbb#30ec6d3
  mulit-process:
    max-workers: ${MAX_PROCESS:1}
basic: # 基础信息模块
  sync:
    start-date: 1990-01-01 # 同步数据开始日期
  datum: # 资料模块
    change:
      date: ${DATUM_CHANGE_DATE}
      file: ${DATUM_CHANGE_FILE}
    excludes: # 排除的资料彭博ticker
      backtest:
        - 'FRAIAAU LX Equity'  # 富蘭克林坦伯頓全球投資系列-創新科技基金 美元A(acc)股
      real:
        - 'FRAIAAU LX Equity'  # 富蘭克林坦伯頓全球投資系列-創新科技基金 美元A(acc)股
  navs: # 净值模块
    exrate: # 汇率，如果不开启，整个这块注释掉
      - from: EUR # 需要转换的货币类型
        ticker: EURUSD BGN Curncy # 汇率值的彭博ticker
asset-pool: # 资产池模块
  asset-optimize: # 资产优选模块
    sortino-weight: # sortino计算需要的权重，下面每一条为一次计算，e.g. months: 3, weight: 0.5 表示 3个月数据使用权重0.5来计算分值
      - months: 1
        weight: 0.3
      - months: 2
        weight: 0.25
      - months: 3
        weight: 0.2
      - months: 6
        weight: 0.15
      - years: 1
        weight: 0.1
    asset-include: {'customType':[1,2,3,4]}
    optimize-count: 3 #基金优选个数
    annual-volatility-filter: #1各资产年化波动率末exclude位 2各资产年化波动率大于volatility
#      - customType: 1
#        min-retain: 4
#        exclude: 0
#        volatility: 1000
      - customType: 3
        min-retain: 4
        exclude: 0
        volatility: 1000
    annual-volatility-section: # 波动率时间区间
      - years: 1
portfolios: # 投组模块
  holder: # 持仓投组相关
    init-nav: 100 # 初始金额
    min-interval-days: 10 # 两次实际调仓最小间隔期，单位交易日
    dividend-rate: 0.0 #设定年化配息率
    dividend-date: 15 #配息日，每月15号
    dividend-adjust-day: [1,4,7,10]  #每年的首个季度调整配息
    warehouse-frequency: 1  #每隔1个月调一次仓
    warehouse-transfer-date: 1  #调仓日
    redeem-list: [ 'TEUSAAU LX Equity', 'LIGTRAA ID Equity', 'TEMFHAC LX Equity', 'LUSHUAA ID Equity' ] #从持仓中的低风险资产“直接”按序赎回
  solver: # 解算器相关
    model: prr # 结算模型 ARC ,PRR,  ~ 标准解算器
    arc: on  #是否开启ARC
    brr: 0.0 #误差补偿值
    trr: 5
    tol: 1E-10 # 误差满足条件
    navs: # 净值要求
      range: # 需要净值数据的区间, days: 90 表示90自然日，months: 3 表示3个自然月
        days: 90
      max-nan: # 最大缺失净值条件
        asset: 8 # 单一资产最多缺少多少交易日数据，则踢出资产池
        day: 0.5 # 单一交易日最多缺少百分之多少净值，则删除该交易日
      risk: []  # 资产风险等级要求，可分开写也可以合并写，e.g. risk：[ 2, 3 ] 则表示 所有投组资产风险等级都是 2 或 3
    LARC: [0.50, 0.00]  #低阈值
    UARC: [0.95, 1.00]  #高阈值
    matrix-rtn-days: 20 # 计算回报率矩阵时，回报率滚动天数
    asset-count: [3,4] # 投组资产个数。e.g. count 或 [min, max] 分别表示 最大最小都为count 或 最小为min 最大为max，另外这里也可以类似上面给不同风险等级分别配置
    mpt: # mpt计算相关
      cvar-beta: 0.2 # 计算Kbeta 需要用到
      quantile: 0.9 # 分位点，也可以给不同风险等级分别配置
      low-weight: 0.05 # 最低权重
      high-weight: [ 0.50 ] # 最高权重比例，可给一个值，也可以给多个值，当多个值时，第一个表示只有一个资产时权重，第二个表示只有两个资产时权重，以此类推，最后一个表示其他资产个数时的权重
      short-term-strength: on
    poem: # poem相关
      cvar-scale-factor: 0.1 # 计算时用到的系数
  checker:  #投组检测模块
    switch: off  #是否开启检查
    custom-type-priority: [3,2,1,4]  # 检测优先级
    month-fund-filter: {4:['XXX ID Equity']} # 'LMAOMPU ID Equity' 根据月份删除某几档基金,51勞動節:美盛西方資產亞洲機會債券基金 A 增益配息 (M) 美元
reports: # 报告模块相关
  navs:
    type: FUND
    tickers:
      - TEMTECI LX Equity
      - TEPLX US Equity
      - FRDPX US Equity
      - FKRCX US Equity
      - FTNRACU LX Equity
  benchmark: # benchmark报告
    ft:
      init-amount: 100 # 初始金额
      stock-rate: # stock型基金比例
        RR3: 0.3
        RR4: 0.5
        RR5: 0.7
  fixed-range: # 固定区间收益率
    range-dates: # 固定起始截止日期
      - start: 2008-01-01
        end: 2008-10-27
      - start: 2011-05-02
        end: 2011-10-04
      - start: 2013-05-08
        end: 2013-06-24
      - start: 2014-09-03
        end: 2014-12-16
      - start: 2015-05-21
        end: 2016-02-11
      - start: 2018-09-20
        end: 2018-12-24
      - start: 2020-02-19
        end: 2020-03-23
      - start: 2022-01-03
        end: 2022-10-12
      - start: 2025-02-19
        end: 2025-04-08
  relative-range: # 相对区间收益率
    range-dates: # 相对时间周期
      - days: 1
        name: '一天'
      - weeks: 1
        name: '一周'
      - months: 1
        name: '一月'
      - months: 3
        name: '三月'
      - months: 6
        name: '六月'
      - years: 1
        name: '一年'
      - years: 2
        name: '两年'
      - years: 3
        name: '三年'
      - years: 5
        name: '五年'
      - years: 10
        name: '十年'
      - dates: ~
        name: '成立以来'
  exports:
    backtest: # 回测导出曹策略
      save-path: ${EXPORT_PATH:excels} # 导出报告文件存放路径，如果以./或者../开头，则会以执行python文件为根目录，如果以/开头，则为系统绝对路径，否则，以项目目录为根目录
      file-name: ${EXPORT_FILENAME:real} # 导出报告的文件名
      save-config: ${EXPORT_CONFIG:off} # 是否保存配置文件
      include-report: # 需要导出的报告类型列表，下面的顺序，也代表了excel中sheet的顺序
  #      - funds-report # 基金资料
  #      - navs-report # 净值报告
        - hold-report # 持仓报告
        - signal-report # 信号报告
#        - benckmark-report # benckmark报告
#        - combo-report # 持仓对比
        - indicators-report # 各种特殊指标报告
        - fixed-range-report # 固定区间收益报告
        - relative-range-report # 相对区间收益报告
        - year-range-report # 单年区间业绩报告
#        - month-div-rate-report # 月度配息率比较
#        - year-div-rate-report # 年度配息率比较
    real-daily:
      file-name: IndustryFoF_prr5(實盤)-每月投組推薦
      save-path: ${EXPORT_PATH:excels}
      include-report:
#        - daily-hold-report
        - daily-signal-report
        - daily-mpt-report
      email:
        receives: ${REAL_EMAIL_RECEIVES:['brody_wu@chifufund.com']}
#        copies: ${REAL_EMAIL_COPIES:['wenwen.tang@thizgroup.com']}
        subject:
#          default: "ROBO6_TAIBEI-实盘版-每日投組推薦_{today}"
          rebalance: "IndustryFoF_prr5(實盤)-每月投組推薦_{today}"
        content:
#          default: "Dear All: 附件是今天生成的推薦組合，請驗收，謝謝！ 注>：該郵件為自動發送，如有問題請聯繫矽谷團隊 telan_qian@chifufund.com"
          rebalance: "Dear All: 附檔為每月投資組合推薦，請驗收，謝謝！ 注>：該郵件為自動發送，如有問題請聯繫矽谷團隊 brody_wu@chifufund.com"
    daily-monitor:
      file-name: monitor_IndustryFoF_prr5
      save-path: ${EXPORT_PATH:excels}
      include-report:
        - name: daily-mpt-report
          min-date: ~
        - name: fund-selection-process-report
          min-date: ~
        - name: sigma-report
          min-date: ~
      email:
        receives:
          - brody_wu@chifufund.com
        copies: ${MONITOR_EMAIL_COPIES}
        subject: "IndustryFoF_prr5(實盤)-每日監測_{today}"
        content: "Dear All: 附檔為今日監測數據，請驗收，謝謝！ 注>：該郵件為自動發送，如有問題請聯繫矽谷團隊 brody_wu@chifufund.com"
robo-executor: # 执行器相关
  use: ${ROBO_EXECUTOR:real} # 执行哪个执行器，优先取系统环境变量ROBO_EXECUTOR的值，默认backtest
  sync-data: ${SYNC_DATA:on} # 是否开启同步资料数据
  backtest: # 回测执行器相关
    start-date: 2013-01-02 # 回测起始日期
    end-date: 2025-11-26 # 回测截止日期
    sealing-period: 10 #调仓封闭期
    start-step: ${BACKTEST_START_STEP:1} # 回测从哪一步开始执行 1:计算资产池；2:计算最优投组：3:计算再平衡信号以及持仓投组
    end-step: ${BACKTEST_END_STEP:3} # 回测从哪一步执行完成后结束执行 1:计算资产池；2:计算最优投组：3:计算再平衡信号以及持仓投组
    clean-up: ${CLEAN_UP:off}
  real: # 实盘执行器
    export: ${EXPORT_ENABLE:on} # 是否开启报告
    start-date: 2023-05-08 # 实盘开始时间
    include-date: []
web:
  guid: D0FE0BF1-14F8-4350-833C-FD77AEE73E7A
  port: 8082
  save-path: ${EXPORT_PATH:json}
  name: "科技帶路投組"
  feature: "科技為主 + 其他產業為輔 + 風險調控"
  tag: "卡位時機"


