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)
Пример #2
0
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()