Пример #1
0
 def alpha_34(self):
     """
     formula: rank(((1 - rank((stddev(returns, 2) / stddev(returns, 5)))) + (1 - rank(delta(close, 1)))))
     :return:
     """
     inner = _utils.stddev(self.returns, 2) / _utils.stddev(self.returns, 5)
     inner = inner.replace([-np.inf, np.inf], 1).fillna(value=1)
     return _utils.rank(2 - _utils.rank(inner) -
                        _utils.rank(_utils.delta(self.close, 1)))
Пример #2
0
 def alpha_39(self):
     """
     formula: ((-1 * rank(stddev(high, 10))) * correlation(high, volume, 10))
     :return:
     """
     return -1 * _utils.rank(_utils.stddev(
         self.high, 10)) * _utils.correlation(self.high, self.volume, 10)
Пример #3
0
 def alpha_22(self):
     """
     formula: (-1 * (delta(correlation(high, volume, 5), 5) * rank(stddev(close, 20))))
     """
     df = _utils.correlation(self.high, self.volume, 5)
     df = df.replace([-np.inf, np.inf], 0).fillna(value=0)
     return -1 * _utils.delta(df, 5) * _utils.rank(
         _utils.stddev(self.close, 20))
Пример #4
0
 def alpha_18(self):
     """
     formula:  (-1 * rank(((stddev(abs((close - open)), 5) + (close - open)) + correlation(close, open,10))))
     :return
     """
     df = _utils.correlation(self.close, self.open, 10)
     df = df.replace([-np.inf, np.inf], 0).fillna(value=0)
     return -1 * _utils.rank(
         _utils.stddev(abs(self.close - self.open), window=5) + self.close -
         self.open) + df
Пример #5
0
 def alpha_1(self):
     """
     Wrapper formula for alpha1, (rank(Ts_ArgMax(SignedPower(((returns < 0)
             ? stddev(returns, 20) : close), 2.), 5)) - 0.5)
     :return: time series alpha feature
     """
     inner = self.close
     # replace all the date where return<0 to std
     # 这里会出warning,不过没什么大事
     inner[self.returns < 0] = _utils.stddev(self.returns, window=20)
     # calculate which day max the time series
     ts_argmax = _utils.ts_argmax(inner**2, 5)
     return _utils.rank(ts_argmax) - 0.5
Пример #6
0
 def alpha_21(self):
     """
     formula: ((((sum(close, 8) / 8) + stddev(close, 8)) < (sum(close, 2) / 2))
     ? (-1* 1) : (((sum(close, 2) / 2) <
     ((sum(close, 8) / 8) - stddev(close, 8))) ? 1 : (((1 < (volume / adv20)) or ((volume / adv20) == 1)) ?
      1 : (-1* 1))))
     need to reconsider
     """
     condition_1 = _utils.ts_ma(self.close, 8) + _utils.stddev(
         self.close, 8) < _utils.ts_ma(self.close, 2)
     condition_2 = _utils.ts_ma(self.volume, 20) / self.volume < 1
     alpha = pd.DataFrame(np.ones_like(self.close),
                          index=self.close.index,
                          columns=self.close.columns)
     alpha[condition_1 | condition_2] = -1
     return alpha