diff --git a/app/service/fund_service.py b/app/service/fund_service.py
index c7b11005805aba6e769098bb52b60dc5b2cf5896..e2fd8f6807bb3620604422e295033ac78d9b2d34 100644
--- a/app/service/fund_service.py
+++ b/app/service/fund_service.py
@@ -77,8 +77,11 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
     end_date = datetime.datetime(datetime.date.today().year,
                                  datetime.date.today().month, 1) - datetime.timedelta(1)
     start_date = cal_date(end_date, 'Y', 1)
-
-    z_score = search_rank(fund_rank, fund_id, metric='z_score')
+    if invest_type == 0:
+        rank_df = tx_fund_rank
+    else:
+        rank_df = fund_rank
+    z_score = search_rank(rank_df, fund_id, metric='z_score')
     total_level = np.select([z_score >= 80,
                              70 <= z_score < 80,
                              z_score < 70], [0, 1, 2]).item()
@@ -93,7 +96,7 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
     compare = pd.merge(index_return_monthly, fund_return_monthly, how='inner', left_index=True, right_index=True)
     fund_win_rate = ((compare[fund_id] - compare['pct_chg']) > 0).sum() / compare[fund_id].count()
 
-    return_rank = search_rank(fund_rank, fund_id, metric='annual_return_rank')
+    return_rank = search_rank(rank_df, fund_id, metric='annual_return_rank')
     return_level = np.select([return_rank >= 0.8,
                               0.7 <= return_rank < 0.8,
                               0.6 <= return_rank < 0.7,
@@ -101,8 +104,8 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
     return_bool = 1 if return_level > 2 else 0
     return_triple = return_level - 1 if return_level >= 2 else return_level
 
-    drawdown_rank = search_rank(fund_rank, fund_id, metric='max_drawdown_rank')
-    drawdown_value = search_rank(fund_rank, fund_id, metric='max_drawdown')
+    drawdown_rank = search_rank(rank_df, fund_id, metric='max_drawdown_rank')
+    drawdown_value = search_rank(rank_df, fund_id, metric='max_drawdown')
     drawdown_level = np.select([drawdown_rank >= 0.8,
                                 0.7 <= drawdown_rank < 0.8,
                                 0.6 <= drawdown_rank < 0.7,
@@ -110,7 +113,7 @@ def single_evaluation(fund_id, invest_type=2, index_id='000905.SH'):
     drawdown_bool = 1 if drawdown_level > 2 else 0
     drawdown_triple = drawdown_level - 1 if drawdown_level >= 2 else drawdown_level
 
-    sharp_rank = search_rank(fund_rank, fund_id, metric='sharp_ratio_rank')
+    sharp_rank = search_rank(rank_df, fund_id, metric='sharp_ratio_rank')
     sharp_level = np.select([sharp_rank >= 0.8,
                              0.6 <= sharp_rank < 0.8,
                              sharp_rank < 0.6], [0, 1, 2]).item()