Skip to main content

factor model

Project description

This programme is built for back testing alpha factors. Each factor is tested alone.

sample with a single processor

from single_factor_model.single import preprocessing,back_testing,ic_measurement,ic_measure_summary,back_test_summary,bt_figure

parms={'factor_path':'factor_folder_path'# file name: xxx_yyyymmdd.csv columns(no order): StkID,factor1,factor2,...
      ,'ind_path':'industry_folder_path'# file name: xxx_yyyymmdd.csv columns(no order): StkID,level1,level2,...
      ,'ind_level':'industry_level_name'
      ,'price_path':'market_folder_path'# file name: xxx_yyyymmdd.csv columns(no order): StkID,vwap,adjfactor,susp_days,maxupordown
      ,'cap_path':'cap_folder_path' # file name: xxx_yyyymmdd.csv columns(no order): StkID,SRcap
      ,'index_weight_path':'index_weight_folder_path'  file name: xxx_yyyymmdd.csv columns(no header): StkID,weight
      ,'start_time':20170101
      ,'end_time':20180101
      ,'sub_factor':None # or list of factors of interest
      ,'flag':'monthly' # monthly or daily
      ,'day_lag':1 # lag of days to receive these factors
      ,'ind_mapping_flag':False # whether to use number to represent industry, this could spead up calculation
      }
parms2={'n':5 # portfolio number
        ,'silent':True # whether to output detail
        }
parms3={'window':3 # window for regression sample data
        ,'half_decay':200 # weight for regression parameters
        }
P=preprocessing()
D=P(**parms)
T=back_testing(D) # back testing
B=T(**parms2)
T2=ic_measurement(D) # regression
M=T2(**parms3)

Table0=ic_measure_summary(M)
Dict1,Table2,Dict3=back_test_summary(B)
Dict4=bt_figure(B,show_plot=True) # plot backtesting result

Table0.to_csv('table0.csv')

from RNWS import write
write.write_dict(Dict1,path='E:',file_pattern='dict1')

sample with multi processors

nearly same as single processor sample. Just replace single_factor_model.single to single_factor_model.multi. Then you can address 'processors' in parms and parms2 and parms3 as processors. Also if __name__=='__main__': is needed to run programme on Windows.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

single_factor_model-0.0.7.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

single_factor_model-0.0.7-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file single_factor_model-0.0.7.tar.gz.

File metadata

  • Download URL: single_factor_model-0.0.7.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.14.2 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.5.5

File hashes

Hashes for single_factor_model-0.0.7.tar.gz
Algorithm Hash digest
SHA256 e5142c7acec2d9d47da1da4a07cf27d40783e62a073716abd7c0fb31a9b01d94
MD5 6139d12c6f3eaffea4dba8c34b7b22ac
BLAKE2b-256 33b8738a0b656e19af3ba8fda1208fdeefe9ae42189c0c71feda0622aeb7e17e

See more details on using hashes here.

File details

Details for the file single_factor_model-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: single_factor_model-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.14.2 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.5.5

File hashes

Hashes for single_factor_model-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ecf2a37c48372e02171e9c485b0df7d7624a736e5106c6392134b7ea1d5aefb5
MD5 d46026cb9773eea953a96bad196d578e
BLAKE2b-256 c69656d4bcef619a141bdc9c818aca33680909d8085db537556b1e642e59c7de

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page