Hi,
I try to debug:zipline algo and get error Usecols do not match names
from zipline.api import (history,
set_slippage,
slippage,
set_commission,
commission,
order_target_percent)
from zipline import TradingAlgorithm
from zipline.utils.factory import load_bars_from_yahoo
def initialize(context):
set_slippage(slippage.FixedSlippage(spread=0.0))
set_commission(commission.PerShare(cost=0.01, min_trade_cost=1.0))
context.tick = 0
def handle_data(context, data):
context.tick += 1
if context.tick < 100:
return
prices = history(100, '1d', 'price').dropna()
returns = prices.pct_change().dropna()
try:
weights, _, _ = optimal_portfolio(returns.T)
for stock, weight in zip(prices.columns, weights):
order_target_percent(stock, weight)
except ValueError as e:
pass
end = pd.Timestamp.utcnow()
start = end - 2500 * pd.tseries.offsets.BDay()
data = load_bars_from_yahoo(stocks=['IBM', 'GLD', 'XOM', 'AAPL','MSFT', 'TLT', 'SHY'],start=start, end=end)
# Instantinate algorithm
algo = TradingAlgorithm(initialize=initialize,handle_data=handle_data)
# Run algorithm
results = algo.run(data)
results.portfolio_value.plot()
raise ValueError("Usecols do not match names.")
ValueError: Usecols do not match names.
What is this error mean how can i fix it?