def setUp(self): self.symbol = 'GOOG' self.learn_start_date = dt.datetime(2004,9,1) self.learn_end_date = dt.datetime(2011,1,1) self.stock_period_start = dt.datetime(2000,1,1) now = dt.datetime.now() today = dt.datetime(now.year, now.month, now.day) # stock_period contains important information like # stock period start and the market symbol that was used in training and discolvery self.stock_period = StockPeriod(self.symbol, self.stock_period_start, today) self.mach_learn = EnsembleLearner.machine_learner_for_features_string(self.symbol, GOOGF[0], self.stock_period) self.mach_learn.learn_period(self.learn_start_date, self.learn_end_date) self.predictions = self.mach_learn.predict_period(dt.datetime(2012,1,1), dt.datetime(2013,1,1)) self.market_relative_close_data = self.mach_learn.feats.relative_data['close'][self.symbol] self.perf = PredictionPerformance(self.predictions, self.market_relative_close_data, 2)
from ensemble_learner import EnsembleLearner from simple_order_gen import SimpleOrderGen from prediction_performance import PredictionPerformance import matplotlib.pyplot as plt symbol = "GOOG" learn_start_date = dt.datetime(2004, 9, 1) learn_end_date = dt.datetime(2011, 1, 1) now = dt.datetime.now() today = dt.datetime(now.year, now.month, now.day) stock_period = StockPeriod(symbol, dt.datetime(2000, 1, 1), today) learners = map( lambda fs: EnsembleLearner.machine_learner_for_features_string(symbol, fs, stock_period), ensemble_feats.goog_lower_bound8, ) ensemble = EnsembleLearner(symbol, learn_start_date, learn_end_date, stock_period, learners) ensemble.learn() predictions = ensemble.predict_period(dt.datetime(2012, 1, 1), dt.datetime(2013, 1, 1), 0.1) pp = PredictionPerformance(predictions, ensemble.learners[0].feats.relative_data["close"][symbol], 2) print "tot return:", pp.tot_return() print "mean return:", pp.return_mean() print "std return:", pp.return_std() print "sharpe's ratio:", pp.sharpe_ratio() pp.predictions["tot_return"].plot() plt.show()