Implement first version of strategy learner
This version does not pass the automatic test.
This commit is contained in:
@@ -93,29 +93,29 @@ def compare_manual_strategies(symbol, sv, sd, ed):
|
||||
|
||||
def experiment1():
|
||||
symbol = "JPM"
|
||||
start_value = 10000
|
||||
sv = 10000
|
||||
sd = dt.datetime(2008, 1, 1) # in-sample
|
||||
ed = dt.datetime(2009, 12, 31) # in-sample
|
||||
# sd = dt.datetime(2010, 1, 1) # out-sample
|
||||
# ed = dt.datetime(2011, 12, 31) # out-sample
|
||||
sd_out = dt.datetime(2010, 1, 1) # out-sample
|
||||
ed_out = dt.datetime(2011, 12, 31) # out-sample
|
||||
|
||||
df = util.get_data([symbol], pd.date_range(sd, ed_out))
|
||||
df.drop(columns=["SPY"], inplace=True)
|
||||
|
||||
# visualize_correlations(symbol, df)
|
||||
# plot_indicators(symbol, df)
|
||||
# compare_manual_strategies(symbol, start_value, sd, ed)
|
||||
|
||||
df = util.get_data([symbol], pd.date_range(sd, ed))
|
||||
df.drop(columns=["SPY"], inplace=True)
|
||||
# compare_manual_strategies(symbol, sv, sd, ed)
|
||||
|
||||
bs = BenchmarkStrategy()
|
||||
orders = bs.testPolicy(symbol, sd, ed, start_value)
|
||||
df["Benchmark"] = marketsim.compute_portvals(orders, start_value)
|
||||
orders = bs.testPolicy(symbol, sd_out, ed_out, sv)
|
||||
df["Benchmark"] = marketsim.compute_portvals(orders, sv)
|
||||
df["Orders Benchmark"] = orders["Shares"]
|
||||
|
||||
sl = StrategyLearner()
|
||||
orders = ms.testPolicy(symbol, sd, ed, start_value)
|
||||
df["SL"] = marketsim.compute_portvals(orders, start_value)
|
||||
sl = StrategyLearner(testing=True)
|
||||
sl.addEvidence(symbol, sd, ed, sv)
|
||||
orders = sl.testPolicy(symbol, sd_out, ed_out, sv)
|
||||
df["SL"] = marketsim.compute_portvals(orders, sv)
|
||||
df["Orders SL"] = orders["Shares"]
|
||||
# df["Holding Manual"] = orders["Shares"].cumsum()
|
||||
|
||||
fig, ax = plt.subplots(3, sharex=True)
|
||||
df[[symbol]].plot(ax=ax[0])
|
||||
@@ -127,6 +127,12 @@ def experiment1():
|
||||
MultiCursor(fig.canvas, ax, color='r', lw=0.5)
|
||||
plt.show()
|
||||
|
||||
# For debugging the classification learner:
|
||||
# df["y_train"] = sl.addEvidence(symbol, sd, ed, sv)
|
||||
# df["y_query"] = sl.testPolicy(symbol, sd, ed, sv)
|
||||
# df[["y_train", "y_query"]].plot(ax=ax[1])
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
experiment1()
|
||||
|
||||
Reference in New Issue
Block a user