def alpha_44(self): """ formula: (-1 * ((rank((sum(delay(close, 5), 20) / 20)) * correlation(close, volume, 2)) *rank(correlation(sum(close, 5), sum(close, 20), 2)))) :return: dataframe, need more stock and long range """ df = _utils.correlation(self.close, self.volume, 2) df = df.replace([-np.inf, np.inf], 0).fillna(value=0) df = -1 * (_utils.rank(_utils.ts_ma(_utils.delay(self.close, 5), 20)) * df * _utils.rank( _utils.correlation(_utils.ts_sum(self.close, 5), _utils.ts_sum(self.close, 20), 2))) return df.fillna(method='backfill')
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)
def alpha_2(self): """ formula for alpha2: (-1*correlation(rank(delta(log(volume), 2)), rank(((close - open) / open)), 6)) :return: time series df of all stocks """ x1 = _utils.rank(_utils.delta(np.log(self.volume), period=2)) x2 = _utils.rank((self.close - self.open) / self.open) return -1 * _utils.correlation(x1, x2, window=6)
def alpha_15(self): """ formula: (-1 * sum(rank(correlation(rank(high), rank(volume), 3)), 3)) """ df = _utils.correlation(_utils.rank(self.high), _utils.rank(self.volume), 3) df = df.replace([-np.inf, np.inf], 0).fillna(method='backfill') return (-1 * _utils.ts_sum(_utils.rank(df), 3)).fillna(method='ffill')
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))
def alpha_43(self): """ formula: (-1 * correlation(high, rank(volume), 5)) :return: """ df = _utils.correlation(self.high, _utils.rank(self.volume), 5) df = df.replace([-np.inf, np.inf], 0).fillna(value=0) return -1 * df
def alpha_14(self): """ formula:((-1 * rank(delta(returns, 3))) * correlation(open, volume, 10)) :return: dataframe need a lot stock to prevent inf """ df = _utils.correlation(self.open, self.volume, window=10) df = df.replace([-np.inf, np.inf], 0).fillna(method='backfill') return -1 * _utils.rank(_utils.delta(self.returns, period=3)) * df
def alpha_36(self): """ formula: (rank(correlation(delay((open - close), 1), close, 200)) + rank((open - close))) :return:dataframe, need long range """ return (_utils.rank( _utils.correlation(_utils.delay(self.open - self.close, 1), self.close, 200)) + _utils.rank(self.open - self.close)).fillna(method='backfill')
def alpha_28(self): """ formula: scale(((correlation(adv20, low, 5) + ((high + low) / 2)) - close)) :return: scaled df """ adv20 = _utils.ts_ma(self.volume, 20) df = _utils.correlation(adv20, self.low, 5) df = df.replace([-np.inf, np.inf], 0).fillna(value=0) return _utils.scale(((df + ((self.high + self.low) / 2)) - self.close))
def alpha_3(self): """ data size should increse to see the difference formula for alpha3: (-1*correlation(rank(open), rank(volume), 10)) :return:time series df of all stocks """ df = -1 * _utils.correlation( _utils.rank(self.open), _utils.rank(self.volume), window=10) return df.replace([-np.inf, np.inf], 0)
def alpha_25(self): """ formula: (-1 * ts_max(correlation(ts_rank(volume, 5), ts_rank(high, 5), 5), 3)) """ return -1 * _utils.ts_max(_utils.correlation( _utils.ts_rank(self.volume, window=5), _utils.ts_rank(self.high, window=5), window=5), window=3).fillna(method='backfill')
def alpha_26(self): """ formula: (-1* ts_max(correlation(ts_rank(volume, 5), ts_rank(high, 5), 5), 3)) """ df = _utils.correlation(_utils.ts_rank(self.volume, window=5), _utils.ts_rank(self.high, window=5), window=3) df = df.replace([-np.inf, np.inf], 0) df = -1 * _utils.ts_max(df.fillna(method='backfill'), window=3) return df.fillna(0.5)
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
def alpha_32(self): """ formula: (scale(((sum(close, 7) / 7) - close)) + (20* scale(correlation(vwap, delay(close, 5), 230)))) long time series :return: """ return _utils.scale( ((_utils.ts_ma(self.close, 7) / 7) - self.close) ) + (20 * _utils.scale( _utils.correlation(self.vwap, _utils.delay(self.close, 5), 230)))
def alpha_48(self): """ formula: (-1 * ts_max(rank(correlation(rank(volume), rank(vwap), 5)), 5)) :return: """ df = (-1 * _utils.ts_max( _utils.rank( _utils.correlation(_utils.rank(self.volume), _utils.rank(self.vwap), 5)), 5)) return df.fillna(method='bfill')
def alpha_27(self): """ formula: ((0.5 < rank((sum(correlation(rank(volume), rank(vwap), 6), 2) / 2.0))) ? (-1* 1) : 1) :return replaced nan to -1 """ alpha = _utils.rank((_utils.ts_ma( _utils.correlation(_utils.rank(self.volume), _utils.rank(self.vwap), 6), 2))) alpha[alpha > 0.5] = -1 alpha[alpha <= 0.5] = 1 return alpha.fillna(-1)
def alpha_31(self): """ formula: ((rank(rank(rank(decay_linear((-1* rank(rank(delta(close, 10)))), 10)))) + rank((-1* delta(close, 3)))) + sign(scale(correlation(adv20, low, 12)))) :return: """ adv20 = _utils.ts_ma(self.volume, 20) df = _utils.correlation(adv20, self.low, 12).replace([-np.inf, np.inf], 0).fillna(value=0) p1 = _utils.rank( _utils.rank( _utils.rank( _utils.decay_linear_pn((-1 * _utils.rank( _utils.rank(_utils.delta(self.close, 10)))), 10)))) p2 = _utils.rank((-1 * _utils.delta(self.close, 3))) p3 = np.sign(_utils.scale(df)) return p1 + p2 + p3
def alpha_6(self): """ formula for alpha6: (-1*correlation(open, volume, 10)) """ df = -1 * _utils.correlation(self.open, self.volume, window=10) return df.replace([-np.inf, np.inf], 0)