|
@@ -80,7 +80,7 @@ def generate_entity_risk_stats(entity_info, indicators, isToMySQL, mutable entit
|
|
|
if(isToMySQL) {
|
|
|
|
|
|
t = SELECT entity_id, end_date, std_dev_a AS stddev_6m, ds_dev_a AS downsidedev_6m, alpha_a AS alpha_6m, winrate AS winrate_6m, beta AS beta_6m,
|
|
|
- skewness AS skewness_6m, kurtosis AS kurtosis_6m, wrst_month AS worstmonth_6m, drawdown AS maxdrawdown_6m
|
|
|
+ skewness AS skewness_6m, kurtosis AS kurtosis_6m, wrst_month AS worstmonth_6m, drawdown AS maxdrawdown_6m // mfdb中的真实字段名是 6m_maxdrawdown
|
|
|
FROM indicators['PBI-6M'] AS ind
|
|
|
INNER JOIN entity_info fi ON ind.entity_id = fi.entity_id
|
|
|
WHERE ind.end_date >= fi.price_date.month(); // 过滤掉不必更新的旧记录
|
|
@@ -117,7 +117,7 @@ def generate_entity_risk_stats(entity_info, indicators, isToMySQL, mutable entit
|
|
|
|
|
|
UPDATE t
|
|
|
SET stddev_ytd = std_dev_a, downsidedev_ytd = ds_dev_a, alpha_ytd = alpha_a, winrate_ytd = winrate, beta_ytd = beta,
|
|
|
- skewness_ytd = skewness, kurtosis_ytd = kurtosis, worstmonth_ytd = wrst_month, maxdrawdown_ytd = drawdown
|
|
|
+ skewness_ytd = skewness, kurtosis_ytd = kurtosis, worstmonth_ytd = wrst_month, maxdrawdown_ytd = drawdown // mfdb中的真实字段名是 ytd_maxdrawdown
|
|
|
FROM ej(t, indicators['PBI-YTD'], ['entity_id', 'end_date']);
|
|
|
|
|
|
UPDATE t
|
|
@@ -371,7 +371,7 @@ def generate_entity_latest_performance(entity_info, perf_latest, isToMySQL, muta
|
|
|
* @param entityType <STRING>: 'MF', 'HF'...
|
|
|
* @param date <DATETIME>: 净值更新时间
|
|
|
*
|
|
|
- * TODO: 目前收益表在MySQL中,所以需要将计算的最新收益与MySQL中的历史数据合并
|
|
|
+ * TODO: 当月indicator每日计算是不是没有意义?
|
|
|
*/
|
|
|
def calFundPerformance(entityType, date) {
|
|
|
|
|
@@ -456,23 +456,24 @@ def calFundPerformance(entityType, date) {
|
|
|
try {
|
|
|
|
|
|
chg_columns_for_mysql(tb_fund_performance, 'fund_id');
|
|
|
- save_and_sync(tb_fund_performance, 'raw_db.fund_performance', 'raw_db.sync_fund_performance_from_dolphin');
|
|
|
+ save_and_sync(tb_fund_performance, 'raw_db.fund_performance', 'raw_db.fund_performance');
|
|
|
|
|
|
chg_columns_for_mysql(tb_fund_indicator, 'fund_id');
|
|
|
- save_table(tb_fund_indicator, 'raw_db.fund_indicator', true);
|
|
|
+ save_and_sync(tb_fund_indicator, 'raw_db.fund_indicator', 'raw_db.fund_indicator');
|
|
|
|
|
|
chg_columns_for_mysql(tb_fund_risk_stats, 'fund_id');
|
|
|
- save_table(tb_fund_risk_stats, 'raw_db.fund_risk_stats', true);
|
|
|
+ // mfdb.fund_performance 表中 maxdrawdown_6m & maxdrawdown_ytd 是虚拟列,这里用数据列顺序强行写入真实列 6m_maxdrawdown & ytd_maxdrawdown (DolphinDB 不允许字段名以数字开头)
|
|
|
+ save_and_sync(tb_fund_risk_stats, 'raw_db.fund_risk_stats', 'raw_db.fund_risk_stats');
|
|
|
|
|
|
chg_columns_for_mysql(tb_fund_riskadjret_stats, 'fund_id');
|
|
|
- save_table(tb_fund_riskadjret_stats, 'raw_db.fund_riskadjret_stats', true);
|
|
|
+ save_and_sync(tb_fund_riskadjret_stats, 'raw_db.fund_riskadjret_stats', 'raw_db.fund_riskadjret_stats');
|
|
|
|
|
|
chg_columns_for_mysql(tb_fund_style_stats, 'fund_id');
|
|
|
- save_table(tb_fund_style_stats, 'raw_db.fund_style_stats', true);
|
|
|
+ save_and_sync(tb_fund_style_stats, 'raw_db.fund_style_stats', 'raw_db.fund_style_stats');
|
|
|
|
|
|
- save_table(tb_fund_performance_weekly, 'raw_db.fund_performance_weekly', true);
|
|
|
+ save_and_sync(tb_fund_performance_weekly, 'raw_db.fund_performance_weekly', 'raw_db.fund_performance_weekly');
|
|
|
|
|
|
- save_table(tb_fund_latest_performance, 'raw_db.fund_latest_performance', true);
|
|
|
+ save_and_sync(tb_fund_latest_performance, 'raw_db.fund_latest_performance', 'raw_db.fund_latest_nav_performance');
|
|
|
|
|
|
} catch(ex) {
|
|
|
|