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()
gse = pickle.load(open(filename, 'r')) print gse found_ensemble = gse.found_ensembles[0] settings = found_ensemble.ensemble_settings symbol = settings.symbol learn_start_date = settings.learn_start_time learn_end_date = settings.learn_end_time now = dt.datetime.now() today = dt.datetime(now.year, now.month, now.day) stock_period = StockPeriod(symbol, settings.stock_period_start, today, data_source = settings.data_source) first_learners = map(lambda fs: EnsembleLearner.machine_learner_for_features_string(symbol, fs, stock_period), map(lambda x: x.feature_string, found_ensemble.found_forests)) prediction_performances = [] val_prediction_performances = [] another_domain_pp = [] use_another_domain = (settings.predict_cache_end_time == dt.datetime(2013,2,1)) for found_ensemble in gse.found_ensembles: all_predictions = map(lambda ff: ff.test_predictions, found_ensemble.found_forests) #all_predictions = [found_ensemble.found_forests[0].test_predictions] joined_cached_predicitons = EnsembleLearner.process_predictions(all_predictions, 0.1) test_period_predicitons = joined_cached_predicitons[settings.test_start_time:settings.test_end_time] #test_period_predicitons = joined_cached_predicitons[settings.val_end_time:(settings.val_end_time + relativedelta(months=1) )] pp = PredictionPerformance(test_period_predicitons, first_learners[0].feats.relative_data['close'][symbol], 2)
symbol = sys.argv[1] else: symbol = "GOOG" 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() monitor_start = dt.datetime(2012, 1, 1) predictions = ensemble.predict_period(monitor_start, today, 0.1) relative_data = ensemble.learners[0].feats.relative_data["close"]["GOOG"] pp = PredictionPerformance(predictions, relative_data, 2) history_filename = "buy_google_today_history.pkl"
found_ensemble = gse.found_ensembles[int(generation) - 1] print found_ensemble settings = found_ensemble.ensemble_settings symbol = settings.symbol learn_start_date = settings.learn_start_time learn_end_date = settings.learn_end_time now = dt.datetime.now() today = dt.datetime(now.year, now.month, now.day) stock_period = StockPeriod(symbol, settings.stock_period_start, today, data_source = settings.data_source) learners = map(lambda fs: EnsembleLearner.machine_learner_for_features_string(symbol, fs, stock_period), map(lambda x: x.feature_string, found_ensemble.found_forests)) ensemble = EnsembleLearner(symbol, learn_start_date, learn_end_date, stock_period, learners) ensemble.learn() #all_predictions = map(lambda ff: ff.test_predictions[settings.test_start_time:settings.test_end_time], found_ensemble.found_forests) all_predictions = ensemble._period_predictions(settings.test_start_time, settings.test_end_time) joined_cached_predicitons = ensemble.process_predictions(all_predictions, 0.1)