""" See http://qoppac.blogspot.co.uk/2015/11/using-random-data.html for more examples """ from commonrandom import arbitrary_timeseries, skew_returns_annualised from common import cum_perc from matplotlib.pyplot import show ans=arbitrary_timeseries(skew_returns_annualised(annualSR=0.5, want_skew=0.0, size=2500)) cum_perc(ans).plot() show() ans=arbitrary_timeseries(skew_returns_annualised(annualSR=0.5, want_skew=1.0, size=2500)) cum_perc(ans).plot() show() ans=arbitrary_timeseries(skew_returns_annualised(annualSR=1.0, want_skew=-3.0, size=2500)) cum_perc(ans).plot() show()
from commonrandom import arbitrary_timeindex, skew_returns_annualised from matplotlib.pyplot import show, hist from common import DAYS_IN_YEAR, ROOT_DAYS_IN_YEAR, account_curve import pandas as pd import numpy as np import scipy.stats as st length_backtest_years=2 number_of_random_curves=100 annualSR=0.5 want_skew=0.0 length_bdays=length_backtest_years*DAYS_IN_YEAR print length_bdays random_curves=[skew_returns_annualised(annualSR=annualSR, want_skew=want_skew, size=length_bdays) for NotUsed in range(number_of_random_curves)] random_curves_npa=np.array(random_curves).transpose() pddf_rand_data=pd.DataFrame(random_curves_npa, index=arbitrary_timeindex(length_bdays), columns=[str(i) for i in range(number_of_random_curves)]) acccurves_rand_data=[account_curve(pddf_rand_data[x]) for x in pddf_rand_data] #results=[x.worst_drawdown() for x in acccurves_rand_data] #results=[x.avg_drawdown() for x in acccurves_rand_data] #print results
Set up the parameters """ length_backtest_years = 10 number_of_random_curves = 1000 annualSR = 0.5 want_skew = 1.0 """ Do the bootstrap of many random curves """ length_bdays = length_backtest_years * DAYS_IN_YEAR random_curves = [ skew_returns_annualised(annualSR=annualSR, want_skew=want_skew, size=length_bdays) for NotUsed in range(number_of_random_curves) ] ## Turn into a dataframe random_curves_npa = np.array(random_curves).transpose() pddf_rand_data = pd.DataFrame( random_curves_npa, index=arbitrary_timeindex(length_bdays), columns=[str(i) for i in range(number_of_random_curves)]) ## This is a nice representation as well acccurves_rand_data = [ account_curve(pddf_rand_data[x]) for x in pddf_rand_data
""" See http://qoppac.blogspot.co.uk/2015/11/using-random-data.html for more examples """ from common import arbitrary_timeseries from commonrandom import skew_returns_annualised from common import cum_perc from matplotlib.pyplot import show ans = arbitrary_timeseries( skew_returns_annualised(annualSR=0.5, want_skew=0.0, size=2500)) cum_perc(ans).plot() show() ans = arbitrary_timeseries( skew_returns_annualised(annualSR=0.5, want_skew=1.0, size=2500)) cum_perc(ans).plot() show() ans = arbitrary_timeseries( skew_returns_annualised(annualSR=1.0, want_skew=-3.0, size=2500)) cum_perc(ans).plot() show()
import logging """ See http://qoppac.blogspot.co.uk/2015/11/using-random-data.html for more examples """ from common import arbitrary_timeseries from commonrandom import skew_returns_annualised from common import cum_perc from matplotlib.pyplot import show ans=arbitrary_timeseries(skew_returns_annualised(annualSR=0.5, want_skew=0.0, size=2500)) cum_perc(ans).plot() show() ans=arbitrary_timeseries(skew_returns_annualised(annualSR=0.5, want_skew=1.0, size=2500)) cum_perc(ans).plot() show() ans=arbitrary_timeseries(skew_returns_annualised(annualSR=1.0, want_skew=-3.0, size=2500)) cum_perc(ans).plot() show()