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