code: def forecast_cone_bootstrap(
      is_returns,
      num_days,
      cone_std=(1.0, 1.5, 2.0),
      starting_value=1,
      num_samples=1000,
      random_seed=None,
  ):
      """
      Determines the upper and lower bounds of an n standard deviation
      cone of forecasted cumulative returns. Future cumulative mean and
      standard devation are computed by repeatedly sampling from the
      in-sample daily returns (i.e. bootstrap). This cone is non-parametric,
      meaning it does not assume that returns are normally distributed.
  
      Parameters
      ----------
      is_returns : pd.Series
          In-sample daily returns of the strategy, noncumulative.
           - See full explanation in tears.create_full_tear_sheet.
      num_days : int
          Number of days to project the probability cone forward.
      cone_std : int, float, or list of int/float
          Number of standard devations to use in the boundaries of
          the cone. If multiple values are passed, cone bounds will
          be generated for each value.
      starting_value : int or float
          Starting value of the out of sample period.
      num_samples : int
          Number of samples to draw from the in-sample daily returns.
          Each sample will be an array with length num_days.
          A higher number of samples will generate a more accurate
          bootstrap cone.
      random_seed : int
          Seed for the pseudorandom number generator used by the pandas
          sample method.
  
      Returns
      -------
      pd.DataFrame
          Contains upper and lower cone boundaries. Column names are
          strings corresponding to the number of standard devations
          above (positive) or below (negative) the projected mean
          cumulative returns.
      """
  
      samples = simulate_paths(
          is_returns=is_returns,
          num_days=num_days,
          starting_value=starting_value,
          num_samples=num_samples,
          random_seed=random_seed,
      )
  
      cone_bounds = summarize_paths(
          samples=samples,
          cone_std=cone_std,
          starting_value=starting_value,
      )
  
      return cone_bounds
  
imports: from __future__ import division
  from collections import OrderedDict
  from functools import partial
  import empyrical
  import numpy
  import pandas
  import scipy
  import scipy.stats
  from sklearn import linear_model
  from .deprecate import deprecated
  from .interesting_periods import PERIODS
  from .txn import get_turnover
  from .utils import APPROX_BDAYS_PER_MONTH, APPROX_BDAYS_PER_YEAR
  from .utils import DAILY
label_desc: Use image node_id 35 for calling a global function with example usage: forecast_cone_bootstrap(is_returns, num_days, cone_std, starting_value, num_samples, random_seed) and returns: cone_bounds