[关闭]
@Channelchan 2017-07-08T16:44:26.000000Z 字数 467 阅读 31813

基本面选股


数据处理

  1. def winsorize(df):
  2. q = df.quantile([0.025, 0.975])
  3. if isinstance(q, pd.Series) and len(q) == 2:
  4. df[df < q.iloc[0]] = q.iloc[0]
  5. df[df > q.iloc[1]] = q.iloc[1]
  6. return df
  7. def standardize(df):
  8. df_std = df.std()
  9. df_mean = df.mean()
  10. return (df - df_mean) / df_std
  11. S_PE = standardize(winsorize(PN.minor_xs('PE')))
  12. S_PB = standardize(winsorize(PN.minor_xs('PB')))
  13. S_PS = standardize(winsorize(PN.minor_xs('PS')))
  14. S_PCF = standardize(winsorize(PN.minor_xs('PCF')))

算法设计

  1. S = -(S_PE+2*S_PB+2*S_PS+0.5*S_PCF)
  2. factor = S.stack()
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注