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' # 富è˜å…‹æž—å¦ä¼¯é “å…¨çƒæŠ•è³‡ç³»åˆ—-æ–°èˆˆå¸‚å ´æœˆæ”¶ç›ŠåŸºé‡‘ç¾Žå…ƒï¼¡ç©©å®šæœˆé…è‚¡ -# - '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