Exemple #1
0
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()
Exemple #2
0
    val_prediction_performances.append(val_pp)

    if use_another_domain:
        another_domain_predictions = joined_cached_predicitons[settings.test_end_time:(settings.test_end_time + relativedelta(months=1))]
        #another_domain_predictions = joined_cached_predicitons[(settings.val_end_time + relativedelta(months=1)):(settings.val_end_time + relativedelta(months=2) )]
        another_pp = PredictionPerformance(another_domain_predictions, first_learners[0].feats.relative_data['close'][symbol], 2)
        another_domain_pp.append(another_pp)

    
    
data_holder = []

if use_another_domain:
    for pp, pp_val, pp_another in iter.izip(prediction_performances, val_prediction_performances, another_domain_pp):
        data_holder.append([pp.tot_return(), 
                            pp.return_mean(), 
                            pp.return_std(), 
                            pp.sharpe_ratio(), 
                            pp_val.tot_return(),
                            pp_another.tot_return()])

        chart_df = pd.DataFrame(data= data_holder, columns = ["tot_return", "mean", "std", "sharpe", "val_return", "cur_return"])
        # chart_df["cur_return"] = ((1 + chart_df["cur_return"]) ** 12) - 1
        chart_df["cur_return"] = chart_df["cur_return"] * 12
        #chart_df["tot_return"] = chart_df["tot_return"] * 12
else:
    for pp, pp_val in iter.izip(prediction_performances, val_prediction_performances):
        data_holder.append([pp.tot_return(), 
                            pp.return_mean(), 
                            pp.return_std(), 
                            pp.sharpe_ratio(),