title: Python ZIPLINE:_RunAlgoError: No ``benchmark_spec`` was provided, and ``zipline.api.set_benchmark`` was not called in ``initialize``
body: <p>This is my First Question Here, Excuse me for my mistakes
  I have been reading Andreas Clenow's Trading Evolved, a Book about Backtesting and Finance using Python
  Here is the Code that and error that I receive</p>
  <pre><code>%matplotlib inline
  
  # Import Zipline functions that we need
  from zipline import run_algorithm
  from zipline.api import order_target_percent, symbol
  
  # Import date and time zone libraries
  from datetime import datetime
  import pytz
  import pandas as pd
  
  # Import visualization
  import matplotlib.pyplot as plt
  
  
  def initialize(context):
      # Which stock to trade
      context.stock = symbol('AAPL')
      
      # Moving average window
      context.index_average_window = 100
      
  def handle_data(context, data):
      # Request history for the stock
      equities_hist = data.history(context.stock, &quot;close&quot;, 
                                   context.index_average_window, &quot;1d&quot;)
      
      # Check if price is above moving average
      if equities_hist[-1] &gt; equities_hist.mean():
          stock_weight = 1.0
      else:
          stock_weight = 0.0
      
      # Place order
      order_target_percent(context.stock, stock_weight)
  
  def analyze(context, perf):
      fig = plt.figure(figsize=(12, 8))
      
      # First chart
      ax = fig.add_subplot(311)
      ax.set_title('Strategy Results')
      ax.semilogy(perf['portfolio_value'], linestyle='-', 
                  label='Equity Curve', linewidth=3.0)
      ax.legend()
      ax.grid(False)
      
      # Second chart
      ax = fig.add_subplot(312)
      ax.plot(perf['gross_leverage'], 
              label='Exposure', linestyle='-', linewidth=1.0)
      ax.legend()
      ax.grid(True)
  
      # Third chart
      ax = fig.add_subplot(313)
      ax.plot(perf['returns'], label='Returns', linestyle='-.', linewidth=1.0)
      ax.legend()
      ax.grid(True)
  
  # Set start and end date
  #start_date = datetime(1996, 1, 1, tzinfo=pytz.UTC)
  #end_date = datetime(2018, 12, 31, tzinfo=pytz.UTC)
  #start_date = pd.to_datetime('1996-1-1', utc=True)
  #end_date = pd.to_datetime('2018-12-31', utc=True)
  start_date = pd.to_datetime('1996-1-1', utc=True)
  end_date = pd.to_datetime('2018-12-31', utc=True)
  
  
  # Fire off the backtest
  results = run_algorithm(
      start=start_date, 
      end=end_date, 
      initialize=initialize, 
      analyze=analyze, 
      handle_data=handle_data, 
      capital_base=10000, 
      data_frequency = 'daily', bundle='quandl' 
  ) 
  </code></pre>
  <p>The error I receive is this</p>
  <blockquote>
  <p>NoBenchmark                               Traceback (most recent call last)
  _RunAlgoError: No <code>benchmark_spec</code> was provided, and <code>zipline.api.set_benchmark</code> was not called in <code>initialize</code>.</p>
  </blockquote>
  <p>Thanks in Advance</p>