Skip to main content

factor model

Project description

This programme is built for back-testing factors.

Dependencies

  • python 3.5

  • pandas 0.23.0

  • numba 0.38.0

  • empyrical 0.5.0

  • pickle

  • multiprocessing

Example

Data Box: pre-process

from single_factor_model import data_box
db=data_box()
db.load_indestry(ind)
db.load_indexWeight(ind_weight)
db.load_suspend(sus)
db.load_adjPrice(price)
db.add_factor('factor0',factor0)
db.add_factor('factor1',factor1)
db.set_lag(freq='d',day_lag=1)
# freq can be 'd' or 'm', for detail please refer to db.set_lag doc.
db.compile_data()

Where price,ind,ind_weight,sus,factor0,factor1 are all dataframes with index as date (yyyymmdd,int) and column as tickers. You can save and load this data box object by db.save('path') and db.load('path').

Back Test

from single_factor_model import run_back_test

single process

Value,Turnover=run_back_test(data_box=db,back_end=None,n=5,weight_path=None,double_side_cost=0.003)

multi process

Value,Turnover=run_back_test(data_box=db,back_end='loky',n=5,weight_path=None,verbose=50,double_side_cost=0.003)

or

with __name__=='__main__':
    Value,Turnover=run_back_test(data_box=db,back_end='multiprocessing',n=5,weight_path=None,double_side_cost=0.003)

To check detailed position of each portfolio each day, just assign weight_path.

Summary and Plot

summary by month

from single_factor_model import summary
S=summary(Value)

summary whole time period only

from single_factor_model import summary_total
S=summary_total(Value)

plot

from single_factor_model import run_plot,run_plot_turnover
run_plot(Value,show=True)
run_plot_turnover(Turnover,show=True)

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

single_factor_model-0.1.3-py3-none-any.whl (11.8 kB view hashes)

Uploaded Python 3

Supported by

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