From 3ccae70f11172dd4deb9fecf10cbc51691823a8d Mon Sep 17 00:00:00 2001
From: jichao <jichao614@foxmail.com>
Date: Thu, 12 Jan 2023 03:47:08 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BF=A1=E5=8F=B7=E8=A7=84?=
 =?UTF-8?q?=E5=88=99=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 config.yml                      |  7 +++----
 rebalance/signals/right_side.py | 28 ----------------------------
 2 files changed, 3 insertions(+), 32 deletions(-)

diff --git a/config.yml b/config.yml
index 1521a19..72401ea 100644
--- a/config.yml
+++ b/config.yml
@@ -40,9 +40,8 @@ py-jftech:
       api.PortfoliosBuilder: portfolios.builder.PoemPortfoliosBuilder
     names:
       crisis_one: rebalance.signals.crisis_signal.LastRateCrisisOneSignal
-      date-curve: rebalance.drift_solver.DateCurve
-      curve-drift: rebalance.signals.curve_drift.Max120tCurveDrift
-      market-right: rebalance.signals.right_side.MarketRight
+      date-curve: rebalance.drift_solver.NonnegativeDateCurve
+      curve-drift: rebalance.signals.curve_drift.AbsCurveDrift
   email:
     server: smtphz.qiye.163.com
     user: jft-ra@thizgroup.com
@@ -150,7 +149,7 @@ rebalance: # 再平衡模块
       crisis-1: # 危机1相关
         mean-count: 850 # spx去多少交易日计算平均值
         consecut-days: 5 # spx连续多少天跌破平均值则触发
-        threshold: -0.1 # spx计算后跌破阀值
+        threshold: -0.05 # spx计算后跌破阀值
       crisis-2: # 危机2相关
         negative-growth: 1 # 实际利率负增长时长,单位年,点到点取值
         fed-months: 3 # fed 滚动月份,点到点取值
diff --git a/rebalance/signals/right_side.py b/rebalance/signals/right_side.py
index 5a30795..248f845 100644
--- a/rebalance/signals/right_side.py
+++ b/rebalance/signals/right_side.py
@@ -91,31 +91,3 @@ class MarketRight(BaseRebalanceSignal):
         spx.dropna(inplace=True)
         spx = spx[['date', 'close', 'rtn']]
         return spx.to_dict('records')
-
-
-@component(bean_name='market-right')
-class FallMarketRight(MarketRight):
-
-    def is_fall(self, day, risk: PortfoliosRisk, spx=None):
-        if spx is None:
-            spx = self.load_spx_close_rtns(day)
-        start_date = self.find_cvar_start_date(day, risk, spx=spx)
-        if start_date:
-            spx = pd.DataFrame(spx)
-            spx = spx[(spx.date >= start_date) & (spx.date <= day)]
-            return spx.iloc[-1].close < spx.iloc[0].close
-        return False
-
-    def is_trigger(self, day, risk: PortfoliosRisk) -> bool:
-        last_re = rrs.get_last_one(risk=risk, max_date=day, effective=True)
-        if last_re is not None and SignalType(last_re['type']) in self.include_last_type:
-            return False
-        spx = self.load_spx_close_rtns(day)
-
-        if self.is_fall(day, risk, spx=spx):
-            return True
-
-        if spx[-1]['rtn'] > self.min_threshold:
-            return False
-        cvar = self.get_cvar(day, risk, spx=spx)
-        return cvar is not None and spx[-1]['rtn'] < cvar
-- 
2.18.1