diff --git a/app/service/result_service_v2.py b/app/service/result_service_v2.py
index 911a8de8ebbf979fd5dc238edc01113aade159e1..cd8f0dd8599b5ced7e2ee9a5fb50ade872eaafe0 100644
--- a/app/service/result_service_v2.py
+++ b/app/service/result_service_v2.py
@@ -11,7 +11,7 @@ import numpy as np
 import datetime
 from decimal import Decimal
 from app.service.data_service_v2 import UserCustomerDataAdaptor
-from app.service.portfolio_diagnose import cal_correlation, get_fund_name
+from app.service.portfolio_diagnose import cal_correlation, get_fund_name, get_frequency
 from app.utils.week_evaluation import *
 
 
@@ -30,7 +30,11 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
 
             cur_folio_result_cnav_data = self.group_data[folio]["result_cnav_data"]
             cur_folio_order_data = self.group_data[folio]["order_df"]
-            freq_max = cur_folio_order_data["freq"].max()
+            # freq_max = cur_folio_order_data["freq"].max()
+            freq_list = [get_frequency(cur_folio_result_cnav_data[[p_nav]]) for p_nav in
+                         cur_folio_result_cnav_data.columns]
+            freq_dict = {250: 1, 52: 2, 24: 4, 12: 3, 4: 5}
+            freq_max = freq_dict[min(freq_list)]
             first_trade_date = cur_folio_order_data["confirm_share_date"].min()
 
             fund_id_list = list(cur_folio_order_data["fund_id"].unique())
@@ -43,6 +47,11 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
             # return_ratio_df, contribution_decomposition= self.combination_yield(cur_folio_result_cnav_data, fund_id_list)
             # resample_df = resample(return_ratio_df, self.trade_cal_date, freq_max)
             resample_cur_folio_result_cnav_data = resample(cur_folio_result_cnav_data, self.trade_cal_date, freq_max)
+            if resample_cur_folio_result_cnav_data.index.values[-1] > self.end_date:
+                last = resample_cur_folio_result_cnav_data.index.values[-1]
+                resample_cur_folio_result_cnav_data["index_date"] = resample_cur_folio_result_cnav_data.index
+                resample_cur_folio_result_cnav_data.loc[last, "index_date"] = self.end_date
+                resample_cur_folio_result_cnav_data.set_index("index_date", inplace=True)
             resample_cur_folio_result_cnav_data = resample_cur_folio_result_cnav_data[resample_cur_folio_result_cnav_data.index <= self.end_date]
             return_ratio_df, month_return_ratio_df, contribution_decomposition = self.combination_yield(resample_cur_folio_result_cnav_data,
                                                                                  fund_id_list)
@@ -190,7 +199,11 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
 
         cur_folio_result_cnav_data = self.total_customer_order_cnav_df.copy()
         cur_folio_order_data = self.user_customer_order_df
-        freq_max = cur_folio_order_data["freq"].max()
+        # freq_max = cur_folio_order_data["freq"].max()
+        freq_list = [get_frequency(cur_folio_result_cnav_data[[p_nav]]) for p_nav in
+                     cur_folio_result_cnav_data.columns]
+        freq_dict = {250: 1, 52: 2, 24: 4, 12: 3, 4: 5}
+        freq_max = freq_dict[min(freq_list)]
         #
         fund_id_list = list(cur_folio_order_data["fund_id"].unique())
         fund_id_list_earn = [i + "_earn" for i in fund_id_list]
@@ -208,6 +221,11 @@ class UserCustomerResultAdaptor(UserCustomerDataAdaptor):
         # resample_df = resample(return_ratio_df, self.trade_cal_date, freq_max)
 
         resample_cur_folio_result_cnav_data = resample(cur_folio_result_cnav_data, self.trade_cal_date, freq_max)
+        if resample_cur_folio_result_cnav_data.index.values[-1] > self.end_date:
+            last = resample_cur_folio_result_cnav_data.index.values[-1]
+            resample_cur_folio_result_cnav_data["index_date"] = resample_cur_folio_result_cnav_data.index
+            resample_cur_folio_result_cnav_data.loc[last, "index_date"] = self.end_date
+            resample_cur_folio_result_cnav_data.set_index("index_date", inplace=True)
         resample_cur_folio_result_cnav_data = resample_cur_folio_result_cnav_data[resample_cur_folio_result_cnav_data.index <=self.end_date]
         return_ratio_df, month_return_ratio_df, contribution_decomposition = self.combination_yield(resample_cur_folio_result_cnav_data, fund_id_list)
         resample_df = resample(return_ratio_df, self.trade_cal_date, freq_max)