From 2f187d6cff808802fa37ceb53a55ef69598e639e Mon Sep 17 00:00:00 2001
From: lvxianya <Devil.lv@thizgroup.com>
Date: Fri, 30 Aug 2024 10:21:21 +0800
Subject: [PATCH] update config

---
 asset_pool/dao/robo_indicator.py |  2 +-
 config-industryfund.yml          |  3 +++
 config-mdis_prr3.yml             | 39 +++++++++++++----------------
 config-stable_prr3.yml           | 42 ++++++++++++++++++++------------
 config-svrobo5.yml               |  3 +++
 config-svrobo6.yml               |  3 +++
 config-svrobo_Mdiv_PRR3.yml      |  3 +++
 config-usmarket_prr4.yml         | 16 ++++++------
 web/robo_controller.py           | 28 +++++++++++----------
 9 files changed, 80 insertions(+), 59 deletions(-)

diff --git a/asset_pool/dao/robo_indicator.py b/asset_pool/dao/robo_indicator.py
index 1f33418..8e77707 100644
--- a/asset_pool/dao/robo_indicator.py
+++ b/asset_pool/dao/robo_indicator.py
@@ -14,7 +14,7 @@ def insert(datas):
     values = ','.join(
         [f'''({','.join([(f"'{x[j]}'" if j in x and x[j] is not None else 'null') for j in __COLUMNS__.keys()])})''' for
          x in datas])
-    return f'''insert into robo_indicator({','.join(__COLUMNS__.keys())}) values {values}'''
+    return f'''insert ignore into robo_indicator({','.join(__COLUMNS__.keys())}) values {values}'''
 
 
 @write
diff --git a/config-industryfund.yml b/config-industryfund.yml
index 9c2e36f..e399143 100644
--- a/config-industryfund.yml
+++ b/config-industryfund.yml
@@ -260,6 +260,9 @@ robo-executor: # 执行器相关
     start-date: 2023-05-08 # 实盘开始时间
     include-date: []
 
+web:
+  guid: 2CB50688-96F8-4C3E-87AB-6DEE2B4713B1
+  port: 8080
 
 
 
diff --git a/config-mdis_prr3.yml b/config-mdis_prr3.yml
index 8d2c4a6..e6b0708 100644
--- a/config-mdis_prr3.yml
+++ b/config-mdis_prr3.yml
@@ -59,15 +59,7 @@ basic: # 基础信息模块
     excludes: # 排除的资料彭博ticker
       backtest:
         - 'FRSTAMP LX Equity'  # 富蘭克林坦伯頓全球投資系列-精選收益基金 美元A(Mdis-pc)股
-#        - 'TEMASAD LX Equity'  # 富蘭克林坦伯頓全球投資系列-亞洲債券基金 美元A(Mdis)股
-#        - 'TEMEAUS LX Equity'  # 富蘭克林坦伯頓全球投資系列-新興國家固定收益基金 美元A(Mdis)股
-#        - 'TEMDAMU LX Equity'  # 富蘭克林坦伯頓全球投資系列-新興市場月收益基金美元A穩定月配股
-#        - 'TEMGINI LX Equity'  # 富蘭克林坦伯頓全球投資系列-全球債券基金 美元A(Mdis)股
-#        - 'TGTRFAD LX Equity'  # 富蘭克林坦伯頓全球投資系列-全球債券總報酬基金 美元A(Mdis)股
-#        - 'LMBADMU ID Equity'  # 美盛布蘭迪全球固定收益基金 A 美元 配息
-#        - 'LGBOAUI ID Equity'  # 美盛布蘭迪全球機會固定收益基金 A 美元 配息 (M)
-#        - 'FTEAMUH LX Equity'   # 富蘭克林坦伯頓全球投資系列-歐洲股票收益基金美元避險A(Mdis)股-H1
-#        - 'TEMHYAD LX Equity'  # 富蘭克林坦伯頓全球投資系列-歐洲非投資等級債券基金 歐元A(Mdis)股
+#        - 'TEMFHYI LX Equity'  # 富蘭克林坦伯頓全球投資系列-公司債基金 美元A(Mdis)股 -> 20240722起可一般申购
       real:
         - 'FRSTAMP LX Equity'  # 富蘭克林坦伯頓全球投資系列-精選收益基金 美元A(Mdis-pc)股
 #        - 'FTSIADU LX Equity'  # 富蘭克林坦伯頓全球投資系列-精選收益基金 美元A(Mdis)股
@@ -212,10 +204,10 @@ reports: # 报告模块相关
         - signal-report # 信号报告
 #        - benckmark-report # benckmark报告
 #        - combo-report # 持仓对比
-        - indicators-report # 各种特殊指标报告
-        - fixed-range-report # 固定区间收益报告
-        - relative-range-report # 相对区间收益报告
-        - year-range-report # 单年区间业绩报告
+#        - indicators-report # 各种特殊指标报告
+#        - fixed-range-report # 固定区间收益报告
+#        - relative-range-report # 相对区间收益报告
+#        - year-range-report # 单年区间业绩报告
 #        - month-div-rate-report # 月度配息率比较
 #        - year-div-rate-report # 年度配息率比较
     real-daily:
@@ -226,9 +218,10 @@ reports: # 报告模块相关
       email:
         receives:
           - brody_wu@chifufund.com
+          - wenwen.tang@thizgroup.com
         copies: ${DAILY_EMAIL_COPIES}
         subject:
-#          default: "ROBO6_TAIBEI-实盘版-每日投組推薦_{today}"
+#          default: "MdisFoF_prr3(實盤)-每日投組推薦_{today}"
           rebalance: "MdisFoF_prr3(實盤)-每月投組推薦_{today}"
         content:
 #          default: "Dear All: 附件是今天生成的推薦組合,請驗收,謝謝! 注>:該郵件為自動發送,如有問題請聯繫矽谷團隊 brody_wu@chifufund.com"
@@ -244,8 +237,8 @@ reports: # 报告模块相关
           min-date: {days: 30}
         - name: asset-pool-report # 基金池
           min-date: {days: 30}
-        - name: combo-report # 持仓报告
-          min-date: {days: 40}
+#        - name: combo-report # 持仓报告
+#          min-date: {days: 40}
         - name: mpt-report
           min-date: {days: 30}
         - name: signal-report
@@ -265,20 +258,22 @@ reports: # 报告模块相关
         subject: "SVROBO6-实盘版-每日监测_{today}"
         content: "Dear All: 附件是今天生成的监测数据,請驗收,謝謝! 注>:該郵件為自動發送,如有問題請聯繫矽谷團隊 telan_qian@chifufund.com"
 robo-executor: # 执行器相关
-  use: ${ROBO_EXECUTOR:backtest} # 执行哪个执行器,优先取系统环境变量ROBO_EXECUTOR的值,默认backtest
+  use: ${ROBO_EXECUTOR:real} # 执行哪个执行器,优先取系统环境变量ROBO_EXECUTOR的值,默认backtest
   sync-data: ${SYNC_DATA:on} # 是否开启同步资料数据
   backtest: # 回测执行器相关
-    start-date: 2013-01-02 # 回测起始日期
-    end-date: 2023-12-29 # 回测截止日期
+    start-date: 2024-01-02 # 回测起始日期
+    end-date: 2024-08-26 # 回测截止日期
     sealing-period: 10 #调仓封闭期
     start-step: ${BACKTEST_START_STEP:1} # 回测从哪一步开始执行 1:计算资产池;2:计算最优投组:3:计算再平衡信号以及持仓投组
     end-step: ${BACKTEST_END_STEP:3} # 回测从哪一步执行完成后结束执行 1:计算资产池;2:计算最优投组:3:计算再平衡信号以及持仓投组
-    clean-up: on
+    clean-up: off
   real: # 实盘执行器
-    export: ${EXPORT_ENABLE:on} # 是否开启报告
+    export: ${EXPORT_ENABLE:off} # 是否开启报告
     start-date: 2023-05-08 # 实盘开始时间
     include-date: []
-
+web:
+  guid: 2CB50688-96F8-4C3E-87AB-6DEE2B4713B1
+  port: 8080
 
 
 
diff --git a/config-stable_prr3.yml b/config-stable_prr3.yml
index d5ec074..a49a4e5 100644
--- a/config-stable_prr3.yml
+++ b/config-stable_prr3.yml
@@ -59,12 +59,23 @@ basic: # 基础信息模块
     excludes: # 排除的资料彭博ticker
       backtest:
         - 'LCUAGAA ID Equity'  # 美盛凱利美國積極成長基金 A 美元 累積
-#        - 'TEMHYAH LX Equity'
-#        - 'FKRCX US Equity'  # 富蘭克林黃金基金 美元 A(Ydis)
-#        - 'TEMHYAH LX Equity' # 富蘭克林坦伯頓全球投資系列-歐洲非投資等級債券基金 美元避險A(Mdis)股-H1
+        - 'TEMASAA LX Equity'  # 富蘭克林坦伯頓全球投資系列-亞洲債券基金 美元A(acc)股
+        - 'TEMEMAU LX Equity'  # 富蘭克林坦伯頓全球投資系列-新興國家固定收益基金 美元A(acc)股
+        - 'FTGBFAC LX Equity'  # 富蘭克林坦伯頓全球投資系列-全球債券基金 美元A(acc)股
+        - 'TGTRFAA LX Equity'  # 富蘭克林坦伯頓全球投資系列-全球債券總報酬基金 美元A(acc)股
+        - 'TGHYACU LX Equity'  # 富蘭克林坦伯頓全球投資系列-全球非投資等級債券基金美元A(acc)股
+        - 'LEGOUAA ID Equity'  # 美盛布蘭迪全球固定收益基金 A 美元 累積
+        - 'LGBOAAU ID Equity'  # 美盛布蘭迪全球機會固定收益基金 A 美元 累積
+#        - 'TEMFHAC LX Equity'  # 富蘭克林坦伯頓全球投資系列-公司債基金 美元A(acc)股 -> 20240722起可一般申购
       real:
-        - 'XXXX LX Equity'
-#        - 'TEMHYAH LX Equity' # 富蘭克林坦伯頓全球投資系列-歐洲非投資等級債券基金 美元避險A(Mdis)股-H1
+        - 'LCUAGAA ID Equity'  # 美盛凱利美國積極成長基金 A 美元 累積
+        - 'TEMASAA LX Equity'  # 富蘭克林坦伯頓全球投資系列-亞洲債券基金 美元A(acc)股
+        - 'TEMEMAU LX Equity'  # 富蘭克林坦伯頓全球投資系列-新興國家固定收益基金 美元A(acc)股
+        - 'FTGBFAC LX Equity'  # 富蘭克林坦伯頓全球投資系列-全球債券基金 美元A(acc)股
+        - 'TGTRFAA LX Equity'  # 富蘭克林坦伯頓全球投資系列-全球債券總報酬基金 美元A(acc)股
+        - 'TGHYACU LX Equity'  # 富蘭克林坦伯頓全球投資系列-全球非投資等級債券基金美元A(acc)股
+        - 'LEGOUAA ID Equity'  # 美盛布蘭迪全球固定收益基金 A 美元 累積
+        - 'LGBOAAU ID Equity'  # 美盛布蘭迪全球機會固定收益基金 A 美元 累積
   navs: # 净值模块
     exrate: # 汇率,如果不开启,整个这块注释掉
       - from: EUR # 需要转换的货币类型
@@ -155,14 +166,12 @@ reports: # 报告模块相关
         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
+      - start: 2015-04-28
+        end: 2016-01-21
+      - start: 2018-01-26
+        end: 2018-10-29
+      - start: 2020-01-20
         end: 2020-03-23
-      - start: 2022-01-03
-        end: 2022-10-12
   relative-range: # 相对区间收益率
     range-dates: # 相对时间周期
       - days: 1
@@ -215,10 +224,10 @@ reports: # 报告模块相关
           - brody_wu@chifufund.com
         copies: ${DAILY_EMAIL_COPIES}
         subject:
-#          default: "ROBO6_TAIBEI-实盘版-每日投組推薦_{today}"
+#          default: "SteadyFoF_prr3(實盤)-每日投組推薦_{today}"
           rebalance: "SteadyFoF_prr3(實盤)-每月投組推薦_{today}"
         content:
-#          default: "Dear All: 附件是今天生成的推薦組合,請驗收,謝謝! 注>:該郵件為自動發送,如有問題請聯繫矽谷團隊 telan_qian@chifufund.com"
+#          default: "Dear All: 附檔為今日投資組合推薦,請驗收,謝謝! 注>:該郵件為自動發送,如有問題請聯繫矽谷團隊 brody_wu@chifufund.com"
           rebalance: "Dear All: 附檔為每月投資組合推薦,請驗收,謝謝! 注>:該郵件為自動發送,如有問題請聯繫矽谷團隊 brody_wu@chifufund.com"
     daily-monitor:
       file-name: svROBO6_monitor
@@ -256,7 +265,7 @@ robo-executor: # 执行器相关
   sync-data: ${SYNC_DATA:on} # 是否开启同步资料数据
   backtest: # 回测执行器相关
     start-date: 2013-01-02 # 回测起始日期
-    end-date: 2023-12-29 # 回测截止日期
+    end-date: 2024-08-26 # 回测截止日期
     sealing-period: 10 #调仓封闭期
     start-step: ${BACKTEST_START_STEP:1} # 回测从哪一步开始执行 1:计算资产池;2:计算最优投组:3:计算再平衡信号以及持仓投组
     end-step: ${BACKTEST_END_STEP:3} # 回测从哪一步执行完成后结束执行 1:计算资产池;2:计算最优投组:3:计算再平衡信号以及持仓投组
@@ -265,6 +274,9 @@ robo-executor: # 执行器相关
     export: ${EXPORT_ENABLE:on} # 是否开启报告
     start-date: 2023-05-08 # 实盘开始时间
     include-date: []
+web:
+  guid: AB088E61-FAB1-4466-B6AD-6E8AE253391E
+  port: 8081
 
 
 
diff --git a/config-svrobo5.yml b/config-svrobo5.yml
index debfbfe..f192b02 100644
--- a/config-svrobo5.yml
+++ b/config-svrobo5.yml
@@ -249,6 +249,9 @@ robo-executor: # 执行器相关
     export: ${EXPORT_ENABLE:on} # 是否开启报告
     start-date: 2023-01-01 # 实盘开始时间
     include-date: []
+web:
+  guid: 2CB50688-96F8-4C3E-87AB-6DEE2B4713B1
+  port: 8080
 
 
 
diff --git a/config-svrobo6.yml b/config-svrobo6.yml
index fd40d59..8e85caf 100644
--- a/config-svrobo6.yml
+++ b/config-svrobo6.yml
@@ -248,6 +248,9 @@ robo-executor: # 执行器相关
     export: ${EXPORT_ENABLE:off} # 是否开启报告
     start-date: 2023-05-08 # 实盘开始时间
     include-date: []
+web:
+  guid: 2CB50688-96F8-4C3E-87AB-6DEE2B4713B1
+  port: 8080
 
 
 
diff --git a/config-svrobo_Mdiv_PRR3.yml b/config-svrobo_Mdiv_PRR3.yml
index fde3167..8747320 100644
--- a/config-svrobo_Mdiv_PRR3.yml
+++ b/config-svrobo_Mdiv_PRR3.yml
@@ -261,6 +261,9 @@ robo-executor: # 执行器相关
     export: ${EXPORT_ENABLE:off} # 是否开启报告
     start-date: 2023-05-08 # 实盘开始时间
     include-date: []
+web:
+  guid: 2CB50688-96F8-4C3E-87AB-6DEE2B4713B1
+  port: 8080
 
 
 
diff --git a/config-usmarket_prr4.yml b/config-usmarket_prr4.yml
index d886e36..ee427f5 100644
--- a/config-usmarket_prr4.yml
+++ b/config-usmarket_prr4.yml
@@ -59,12 +59,9 @@ basic: # 基础信息模块
     excludes: # 排除的资料彭博ticker
       backtest:
         - 'LCUAGAA ID Equity'  # 美盛凱利美國積極成長基金 A 美元 累積
-#        - 'FKRCX US Equity'  # 富蘭克林黃金基金 美元 A(Ydis)
-#        - 'FTNRACU LX Equity'  # 富蘭克林坦伯頓全球投資系列-天然資源基金 美元A(acc)股
-#        - 'TEMBDAI LX Equity'  # 富蘭克林坦伯頓全球投資系列-生技領航基金 A(acc)股
+#        - 'TEMFHAC LX Equity'  # 富蘭克林坦伯頓全球投資系列-公司債基金 美元A(acc)股 -> 20240722起可一般申购
       real:
-        - 'XXXXXXX LX Equity'
-        - 'ZZZZZZZ LX Equity'
+        - 'LCUAGAA ID Equity'  # 美盛凱利美國積極成長基金 A 美元 累積
   navs: # 净值模块
     exrate: # 汇率,如果不开启,整个这块注释掉
       - from: EUR # 需要转换的货币类型
@@ -212,10 +209,10 @@ reports: # 报告模块相关
           - brody_wu@chifufund.com
         copies: ${DAILY_EMAIL_COPIES}
         subject:
-#          default: "USFoF-PRR4-實盤版-每月投組推薦_{today}"
+#          default: "USFoF_prr4(實盤)-每日投組推薦_{today}"
           rebalance: "USFoF_prr4(實盤)-每月投組推薦_{today}"
         content:
-#          default: "Dear All: 附件是每月生成的推薦組合,請驗收,謝謝! 注>:該郵件為自動發送,如有問題請聯繫矽谷團隊 telan_qian@chifufund.com"
+#          default: "Dear All: 附檔為今日投資組合推薦,請驗收,謝謝! 注>:該郵件為自動發送,如有問題請聯繫矽谷團隊 brody_wu@chifufund.com"
           rebalance: "Dear All: 附檔為每月投資組合推薦,請驗收,謝謝! 注>:該郵件為自動發送,如有問題請聯繫矽谷團隊 brody_wu@chifufund.com"
     daily-monitor:
       file-name: svROBO6_monitor
@@ -253,7 +250,7 @@ robo-executor: # 执行器相关
   sync-data: ${SYNC_DATA:on} # 是否开启同步资料数据
   backtest: # 回测执行器相关
     start-date: 2013-01-02 # 回测起始日期
-    end-date: 2023-12-29 # 回测截止日期
+    end-date: 2024-08-26 # 回测截止日期
     sealing-period: 10 #调仓封闭期
     start-step: ${BACKTEST_START_STEP:1} # 回测从哪一步开始执行 1:计算资产池;2:计算最优投组:3:计算再平衡信号以及持仓投组
     end-step: ${BACKTEST_END_STEP:3} # 回测从哪一步执行完成后结束执行 1:计算资产池;2:计算最优投组:3:计算再平衡信号以及持仓投组
@@ -262,6 +259,9 @@ robo-executor: # 执行器相关
     export: ${EXPORT_ENABLE:on} # 是否开启报告
     start-date: 2023-05-08 # 实盘开始时间
     include-date: []
+web:
+  guid: D0FE0BF1-14F8-4350-833C-FD77AEE73E7A
+  port: 8082
 
 
 
diff --git a/web/robo_controller.py b/web/robo_controller.py
index 644bfc7..080af93 100644
--- a/web/robo_controller.py
+++ b/web/robo_controller.py
@@ -19,18 +19,18 @@ app = FastAPI()
 # 创建 AsyncIOScheduler 实例
 scheduler = AsyncIOScheduler()
 
-REC_GID = 'AB088E61-FAB1-4466-B6AD-6E8AE253391E'
+REC_GID = get_config('web.guid')
 fund_infos, cp, roi, risk = None, None, None, None
 
 
-def send_email():
+async def send_email():
     email = get_config('reports.exports.real-daily.email')
     receives = email['receives']
     copies = email['copies'] if 'copies' in email and email['copies'] is not None else []
-    recommends = recommend()
-    subject = email['subject'].format(today=format_date(dt.today()))
+    recommends = await recommend()
+    subject = email['subject']['rebalance'].format(today=format_date(dt.date.today()))
     content = json.dumps(recommends)
-    sendmail(receives=receives, copies=copies, subject=subject, content=content)
+    sendmail(receives=receives, copies=copies, subject=subject, content=content, attach_paths=None)
 
 
 def get_today_rec():
@@ -85,16 +85,17 @@ async def recommend():
                 'risk': risk,
                 'rr': round(sum([id_ticker_map[key]['risk'] * weight for key, weight in funds.items()]), 2), 'cp': cp,
                 'roi': roi}
-        note = {'last_rec': next_workday(sig['date']).strftime('%Y%m%d')}
+        note = {'recomman_reason': "推荐理由是:"}
         data['note'] = json.dumps(note)
         # 计算股债比
-        stock_weight = int(sum(weight * 100 for key, weight in funds.items() if id_ticker_map[key]['category'] == 'STOCK'))
-        data["p_note"] = f"{stock_weight}:{100-stock_weight}"
+        stock_weight = int(
+            sum(weight * 100 for key, weight in funds.items() if id_ticker_map[key]['category'] == 'STOCK'))
+        data["p_note"] = f"{stock_weight}:{100 - stock_weight}"
         portfolios['data'] = data
         rec_list.append(portfolios)
         return rec_list
     else:
-        return {'msg': '当日投组未产生,待10:00后获取'}
+        return {'msg': '当日投组未产生,待10:30后获取'}
 
 
 # 其他异常处理程序
@@ -113,14 +114,15 @@ async def general_exception_handler(request: Request, exc: Exception):
 async def startup_event():
     # 异常情况可以重启跑当天投组
     current_time = dt.datetime.now()
-    target_time = dt.time(10, 0)
+    target_time = dt.time(10, 20)
     if current_time.time() > target_time:
+        # await send_email()
         scheduler.add_job(main.start, trigger=DateTrigger(run_date=current_time))
     # 开启定时任务,执行实盘
-    scheduler.add_job(main.start, 'cron', day_of_week='0-4', hour=10, minute=00)
-    scheduler.add_job(send_email, 'cron', day_of_week='0-4', hour=10, minute=5)
+    scheduler.add_job(main.start, 'cron', day_of_week='0-4', hour=10, minute=20)
+    scheduler.add_job(send_email, 'cron', day_of_week='0-4', hour=10, minute=25)
     scheduler.start()
 
 
 if __name__ == "__main__":
-    uvicorn.run("robo_controller:app", host="0.0.0.0", port=8080)
+    uvicorn.run("robo_controller:app", host="0.0.0.0", port=get_config('web.port'))
-- 
2.18.1