diff --git a/_sources/example-algos.txt b/_sources/example-algos.txt index 550d8b58..ff5d5ea7 100644 --- a/_sources/example-algos.txt +++ b/_sources/example-algos.txt @@ -31,6 +31,11 @@ Overview `two-part video tutorial `_ to show how to get started in backtesting and live trading with Catalyst. +- :ref:`Simple Universe `: This code provides the 'universe' + of available trading pairs on a given exchange on any given day. You can use + this code to dynamically select which currency pairs you want to trade each + day of your strategy. This example does not make any trades. + - :ref:`Portfolio Optimization `: Use this code to execute a portfolio optimization model. This strategy will select the portfolio with the maximum Sharpe Ratio. The parameters are set to use 180 @@ -753,6 +758,177 @@ implemented after the video was recorded, which executes the orders at slighlty different prices, but resulting in significant changes in performance of our strategy. +.. _simple_universe: + +Simple Universe +~~~~~~~~~~~~~~~ + +Source code: `examples/simple_universe.py `_ + +This example aims to provide an easy way for users to learn how to +collect data from any given exchange and select a subset of the available +currency pairs for trading. You simply need to specify the exchange and +the market (base_currency) that you want to focus on. You will then see +how to create a universe of assets, and filter it based the market you +desire. + +The example prints out the closing price of all the pairs for a given +market in a given exchange every 30 minutes. The example also contains +the OHLCV data with minute-resolution for the past seven days which +could be used to create indicators. Use this code as the backbone to +create your own trading strategy. + +The lookback_date variable is used to ensure data for a coin existed on +the lookback period specified. + +To run, execute the following two commands in a terminal (inside catalyst +environment). The first one retrieves all the pricing data needed for this +script to run (only needs to be run once), and the second one executes this +script with the parameters specified in the run_algorithm() call at the end +of the file: + +.. code-block:: bash + + catalyst ingest-exchange -x bitfinex -f minute + +.. code-block:: bash + + python simple_universe.py + +Credits: This code was originally submitted by `Abner Ayala-Acevedo +`_. Thank you! + +.. code-block:: python + + from datetime import timedelta + + import numpy as np + import pandas as pd + + from catalyst import run_algorithm + from catalyst.exchange.exchange_utils import get_exchange_symbols + from catalyst.api import (symbols, ) + + + def initialize(context): + context.i = -1 # minute counter + context.exchange = context.exchanges.values()[0].name.lower() + context.base_currency = context.exchanges.values()[0].base_currency.lower() + + + def handle_data(context, data): + context.i += 1 + lookback_days = 7 # 7 days + + # current date & time in each iteration formatted into a string + now = data.current_dt + date, time = now.strftime('%Y-%m-%d %H:%M:%S').split(' ') + lookback_date = now - timedelta(days=lookback_days) + # keep only the date as a string, discard the time + lookback_date = lookback_date.strftime('%Y-%m-%d %H:%M:%S').split(' ')[0] + + one_day_in_minutes = 1440 # 60 * 24 assumes data_frequency='minute' + # update universe everyday at midnight + if not context.i % one_day_in_minutes: + context.universe = universe(context, lookback_date, date) + + # get data every 30 minutes + minutes = 30 + # get lookback_days of history data: that is 'lookback' number of bins + lookback = one_day_in_minutes / minutes * lookback_days + if not context.i % minutes and context.universe: + # we iterate for every pair in the current universe + for coin in context.coins: + pair = str(coin.symbol) + + # Get 30 minute interval OHLCV data. This is the standard data + # required for candlestick or indicators/signals. Return Pandas + # DataFrames. 30T means 30-minute re-sampling of one minute data. + # Adjust it to your desired time interval as needed. + opened = fill(data.history(coin, 'open', + bar_count=lookback, frequency='30T')).values + high = fill(data.history(coin, 'high', + bar_count=lookback, frequency='30T')).values + low = fill(data.history(coin, 'low', + bar_count=lookback, frequency='30T')).values + close = fill(data.history(coin, 'price', + bar_count=lookback, frequency='30T')).values + volume = fill(data.history(coin, 'volume', + bar_count=lookback, frequency='30T')).values + + # close[-1] is the last value in the set, which is the equivalent + # to current price (as in the most recent value) + # displays the minute price for each pair every 30 minutes + print('{now}: {pair} -\tO:{o},\tH:{h},\tL:{c},\tC{c},\tV:{v}'.format( + now=now, + pair=pair, + o=opened[-1], + h=high[-1], + l=low[-1], + c=close[-1], + v=volume[-1], + )) + + # ------------------------------------------------------------- + # --------------- Insert Your Strategy Here ------------------- + # ------------------------------------------------------------- + + + def analyze(context=None, results=None): + pass + + + # Get the universe for a given exchange and a given base_currency market + # Example: Poloniex BTC Market + def universe(context, lookback_date, current_date): + # get all the pairs for the given exchange + json_symbols = get_exchange_symbols(context.exchange) + # convert into a DataFrame for easier processing + df = pd.DataFrame.from_dict(json_symbols).transpose().astype(str) + df['base_currency'] = df.apply(lambda row: row.symbol.split('_')[1],axis=1) + df['market_currency'] = df.apply(lambda row: row.symbol.split('_')[0],axis=1) + + # Filter all the pairs to get only the ones for a given base_currency + df = df[df['base_currency'] == context.base_currency] + + # Filter all the pairs to ensure that pair existed in the current date range + df = df[df.start_date < lookback_date] + df = df[df.end_daily >= current_date] + context.coins = symbols(*df.symbol) # convert all the pairs to symbols + + return df.symbol.tolist() + + + # Replace all NA, NAN or infinite values with its nearest value + def fill(series): + if isinstance(series, pd.Series): + return series.replace([np.inf, -np.inf], np.nan).ffill().bfill() + elif isinstance(series, np.ndarray): + return pd.Series(series).replace( + [np.inf, -np.inf], np.nan + ).ffill().bfill().values + else: + return series + + + if __name__ == '__main__': + start_date = pd.to_datetime('2017-11-10', utc=True) + end_date = pd.to_datetime('2017-11-13', utc=True) + + performance = run_algorithm(start=start_date, end=end_date, + capital_base=100.0, # amount of base_currency + initialize=initialize, + handle_data=handle_data, + analyze=analyze, + exchange_name='bitfinex', + data_frequency='minute', + base_currency='btc', + live=False, + live_graph=False, + algo_namespace='simple_universe') + + + .. _portfolio_optimization: Portfolio Optimization diff --git a/appendix.html b/appendix.html index be60c150..89e02d03 100644 --- a/appendix.html +++ b/appendix.html @@ -125,6 +125,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/beginner-tutorial.html b/beginner-tutorial.html index 59a5d366..0d9e8630 100644 --- a/beginner-tutorial.html +++ b/beginner-tutorial.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/bundles.html b/bundles.html index 2216b565..f5f40da3 100644 --- a/bundles.html +++ b/bundles.html @@ -125,6 +125,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/development-guidelines.html b/development-guidelines.html index 0aaa17ca..919698a0 100644 --- a/development-guidelines.html +++ b/development-guidelines.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/example-algos.html b/example-algos.html index 80d99c40..96031835 100644 --- a/example-algos.html +++ b/example-algos.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • @@ -279,6 +280,10 @@ in the analyze() strategy that is used in our two-part video tutorial to show how to get started in backtesting and live trading with Catalyst. +
  • Simple Universe: This code provides the ‘universe’ +of available trading pairs on a given exchange on any given day. You can use +this code to dynamically select which currency pairs you want to trade each +day of your strategy. This example does not make any trades.
  • Portfolio Optimization: Use this code to execute a portfolio optimization model. This strategy will select the portfolio with the maximum Sharpe Ratio. The parameters are set to use 180 @@ -963,8 +968,165 @@ implemented after the video was recorded, which executes the orders at slighlty different prices, but resulting in significant changes in performance of our strategy.

    +
    +

    Simple Universe

    +

    Source code: examples/simple_universe.py

    +

    This example aims to provide an easy way for users to learn how to +collect data from any given exchange and select a subset of the available +currency pairs for trading. You simply need to specify the exchange and +the market (base_currency) that you want to focus on. You will then see +how to create a universe of assets, and filter it based the market you +desire.

    +

    The example prints out the closing price of all the pairs for a given +market in a given exchange every 30 minutes. The example also contains +the OHLCV data with minute-resolution for the past seven days which +could be used to create indicators. Use this code as the backbone to +create your own trading strategy.

    +

    The lookback_date variable is used to ensure data for a coin existed on +the lookback period specified.

    +

    To run, execute the following two commands in a terminal (inside catalyst +environment). The first one retrieves all the pricing data needed for this +script to run (only needs to be run once), and the second one executes this +script with the parameters specified in the run_algorithm() call at the end +of the file:

    +
    catalyst ingest-exchange -x bitfinex -f minute
    +
    +
    +
    python simple_universe.py
    +
    +
    +

    Credits: This code was originally submitted by Abner Ayala-Acevedo. Thank you!

    +
    from datetime import timedelta
    +
    +import numpy as np
    +import pandas as pd
    +
    +from catalyst import run_algorithm
    +from catalyst.exchange.exchange_utils import get_exchange_symbols
    +from catalyst.api import (symbols, )
    +
    +
    +def initialize(context):
    +    context.i = -1  # minute counter
    +    context.exchange = context.exchanges.values()[0].name.lower()
    +    context.base_currency = context.exchanges.values()[0].base_currency.lower()
    +
    +
    +def handle_data(context, data):
    +    context.i += 1
    +    lookback_days = 7  # 7 days
    +
    +    # current date & time in each iteration formatted into a string
    +    now = data.current_dt
    +    date, time = now.strftime('%Y-%m-%d %H:%M:%S').split(' ')
    +    lookback_date = now - timedelta(days=lookback_days)
    +    # keep only the date as a string, discard the time
    +    lookback_date = lookback_date.strftime('%Y-%m-%d %H:%M:%S').split(' ')[0]
    +
    +    one_day_in_minutes = 1440  # 60 * 24 assumes data_frequency='minute'
    +    # update universe everyday at midnight
    +    if not context.i % one_day_in_minutes:
    +        context.universe = universe(context, lookback_date, date)
    +
    +    # get data every 30 minutes
    +    minutes = 30
    +    # get lookback_days of history data: that is 'lookback' number of bins
    +    lookback = one_day_in_minutes / minutes * lookback_days
    +    if not context.i % minutes and context.universe:
    +        # we iterate for every pair in the current universe
    +        for coin in context.coins:
    +            pair = str(coin.symbol)
    +
    +            # Get 30 minute interval OHLCV data. This is the standard data
    +            # required for candlestick or indicators/signals. Return Pandas
    +            # DataFrames. 30T means 30-minute re-sampling of one minute data.
    +            # Adjust it to your desired time interval as needed.
    +            opened = fill(data.history(coin, 'open',
    +                                  bar_count=lookback, frequency='30T')).values
    +            high = fill(data.history(coin, 'high',
    +                                  bar_count=lookback, frequency='30T')).values
    +            low = fill(data.history(coin, 'low',
    +                                  bar_count=lookback, frequency='30T')).values
    +            close = fill(data.history(coin, 'price',
    +                                  bar_count=lookback, frequency='30T')).values
    +            volume = fill(data.history(coin, 'volume',
    +                                  bar_count=lookback, frequency='30T')).values
    +
    +            # close[-1] is the last value in the set, which is the equivalent
    +            # to current price (as in the most recent value)
    +            # displays the minute price for each pair every 30 minutes
    +            print('{now}: {pair} -\tO:{o},\tH:{h},\tL:{c},\tC{c},\tV:{v}'.format(
    +                    now=now,
    +                    pair=pair,
    +                    o=opened[-1],
    +                    h=high[-1],
    +                    l=low[-1],
    +                    c=close[-1],
    +                    v=volume[-1],
    +                 ))
    +
    +            # -------------------------------------------------------------
    +            # --------------- Insert Your Strategy Here -------------------
    +            # -------------------------------------------------------------
    +
    +
    +def analyze(context=None, results=None):
    +    pass
    +
    +
    +# Get the universe for a given exchange and a given base_currency market
    +# Example: Poloniex BTC Market
    +def universe(context, lookback_date, current_date):
    +    # get all the pairs for the given exchange
    +    json_symbols = get_exchange_symbols(context.exchange)
    +    # convert into a DataFrame for easier processing
    +    df = pd.DataFrame.from_dict(json_symbols).transpose().astype(str)
    +    df['base_currency'] = df.apply(lambda row: row.symbol.split('_')[1],axis=1)
    +    df['market_currency'] = df.apply(lambda row: row.symbol.split('_')[0],axis=1)
    +
    +    # Filter all the pairs to get only the ones for a given base_currency
    +    df = df[df['base_currency'] == context.base_currency]
    +
    +    # Filter all the pairs to ensure that pair existed in the current date range
    +    df = df[df.start_date < lookback_date]
    +    df = df[df.end_daily >= current_date]
    +    context.coins = symbols(*df.symbol)  # convert all the pairs to symbols
    +
    +    return df.symbol.tolist()
    +
    +
    +# Replace all NA, NAN or infinite values with its nearest value
    +def fill(series):
    +    if isinstance(series, pd.Series):
    +        return series.replace([np.inf, -np.inf], np.nan).ffill().bfill()
    +    elif isinstance(series, np.ndarray):
    +        return pd.Series(series).replace(
    +                     [np.inf, -np.inf], np.nan
    +                    ).ffill().bfill().values
    +    else:
    +        return series
    +
    +
    +if __name__ == '__main__':
    +    start_date = pd.to_datetime('2017-11-10', utc=True)
    +    end_date = pd.to_datetime('2017-11-13', utc=True)
    +
    +    performance = run_algorithm(start=start_date, end=end_date,
    +                                capital_base=100.0,  # amount of base_currency
    +                                initialize=initialize,
    +                                handle_data=handle_data,
    +                                analyze=analyze,
    +                                exchange_name='bitfinex',
    +                                data_frequency='minute',
    +                                base_currency='btc',
    +                                live=False,
    +                                live_graph=False,
    +                                algo_namespace='simple_universe')
    +
    +
    +
    -

    Portfolio Optimization

    +

    Portfolio Optimization

    Use this code to execute a portfolio optimization model. This strategy will select the portfolio with the maximum Sharpe Ratio. The parameters are set to use 180 days of historical data and rebalance every 30 days. This code was used diff --git a/genindex.html b/genindex.html index ab32f1d2..33cef0bf 100644 --- a/genindex.html +++ b/genindex.html @@ -126,6 +126,7 @@

  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/index.html b/index.html index cd22746f..d1f70e4d 100644 --- a/index.html +++ b/index.html @@ -126,6 +126,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/install.html b/install.html index 054f1519..3bfef630 100644 --- a/install.html +++ b/install.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/jupyter.html b/jupyter.html index 15fce782..8614729d 100644 --- a/jupyter.html +++ b/jupyter.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/live-trading.html b/live-trading.html index 1eba32bc..0400f091 100644 --- a/live-trading.html +++ b/live-trading.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/naming-convention.html b/naming-convention.html index cfdbd94e..00a44294 100644 --- a/naming-convention.html +++ b/naming-convention.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/objects.inv b/objects.inv index 28406ec2..598caf9d 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/release-process.html b/release-process.html index 64d5c351..080121f2 100644 --- a/release-process.html +++ b/release-process.html @@ -125,6 +125,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/releases.html b/releases.html index 6541ad5f..346c6f72 100644 --- a/releases.html +++ b/releases.html @@ -126,6 +126,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/resources.html b/resources.html index 6751df26..61b47a04 100644 --- a/resources.html +++ b/resources.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/search.html b/search.html index ad103ba9..b777029d 100644 --- a/search.html +++ b/search.html @@ -125,6 +125,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/searchindex.js b/searchindex.js index e3325eea..f6f5f3c8 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({envversion:46,filenames:["appendix","beginner-tutorial","bundles","development-guidelines","example-algos","index","install","jupyter","live-trading","naming-convention","release-process","releases","resources","utilities","videos","welcome"],objects:{"zipline.data.bundles":{bundles:[0,0,1,""]}},objnames:{"0":["py","data","Python data"]},objtypes:{"0":"py:data"},terms:{"000000e":1,"1000th":7,"15t":4,"1st":1,"328842e":1,"340mb":11,"380954e":1,"40mb":11,"460mb":11,"505275d6646a41f3856b22b16678d":1,"536708e":1,"5min":[4,7],"650729e":1,"7869f7828fa140328eb40477bb7d":1,"998236e":1,"998677e":1,"999120e":1,"999558e":1,"99mb":11,"__file__":[4,13],"__future__":4,"__main__":[1,4],"__name__":[1,4],"__wrapped__":10,"_tkinter":1,"boolean":[2,8],"case":[1,2,3,6,13],"class":[3,10],"default":1,"export":10,"final":[1,2,3],"float":[1,11],"import":[1,2,4,7,10,13],"int":2,"long":[1,2,4],"new":1,"public":11,"return":[1,4,8,10,11,12],"short":[1,3,4],"static":10,"throw":11,"true":[1,4,7,8],"try":[4,6],"var":1,"while":[6,10,11],aapl:2,abil:2,abl:[1,2,6],about:[1,2,5,6,15],abov:[1,3,4,6,8,9,10],accept:[2,6,10],accord:10,accordingli:[1,4],account:[2,4,5,7,11,15],acquir:[2,6],across:[5,9,11,15],activ:[6,10],actual:7,add:[1,2,3,6,10,13],addit:[1,3,5,6,11,15],address:10,adjust:[2,11],administr:6,advantag:6,afford:[4,7],aforement:1,after:[1,2,4,6,7,10],again:1,against:[1,5,8,11,14,15],agre:4,ahead:1,aim:12,algebra:[4,6],algo:[1,2,4,11],algo_namespac:[1,4,8],algo_volatil:[1,7],algofil:[1,2],algorith:1,algorithm_period_return:[1,4,7],algotext:1,alia:4,alias:4,all:[0,1,2,3,4,5,6,7,8,9,10,11,15],allow:[1,2,5,6,15],along:2,alongsid:1,alpha:[1,4,6,7],alreadi:[1,2,3,6,7],also:[1,2,3,4,5,6,7,8,10,15],altern:[1,6,9],although:1,alwai:[2,8,9,10],amount:[1,4,7,11],amp_btc:9,anaconda:[1,6,10],analog:1,analysi:[1,4,5,10,11,12,15],analyst:12,analyt:[5,6,15],analyz:[1,4,7,8,11,13],ani:[1,2,4,6,7,9,10,13],anonym:2,anoth:[1,2,4,7],anymor:1,anyth:[1,6,10],apach:4,appar:1,appear:[2,10],append:10,appli:1,applic:[1,4],appropri:[1,3,4],approxim:[4,7],appveyor:10,apt:[1,6],arang:[1,4],arbitrari:8,arbitrarili:1,arch:6,architectur:1,ardr_btc:9,arg:[1,10],argument:[0,1,2,7,8,10],argv:13,around:[5,10,15],arrai:[4,6],art:[5,15],articl:[3,4],ask:[1,3],asmatrix:4,assess:1,asset_nam:[4,7],assetdbwrit:2,assign:[1,8],assimil:1,assist:6,assum:[1,3,6],atla:6,attempt:[2,8],attribut:[4,10],auth:[8,11],auto:11,avail:1,avoid:[1,2,4],awar:10,ax1:[1,4,7],ax2:[1,4,7],ax3:[1,4,7],ax4:[1,4,7],ax5:[4,7],ax6:[4,7],axhlin:4,axi:4,back:[3,6,9],backend:6,bah:4,bar:[1,4,11],bar_count:[1,4],base:[1,2,4,5,6,7,8,14,15],base_curr:[1,4,8,9,13],base_pric:[1,4],basenam:[4,13],basi:[4,11],batch:6,batteri:1,bch_btc:9,bch_eth:9,bch_usdt:9,bcn_btc:9,bcn_xmr:9,bcolz:2,bcolzdailybarread:2,bcolzdailybarwrit:2,bcolzminutebarread:2,bcolzminutebarwrit:2,bcy_btc:9,be62ff77760c4599abaac43be9cc9:1,bear:[1,4],beautifi:1,becaus:[6,7,10,11],been:[0,1,2,6,10],befor:[1,2,4,6,8,11],before_trading_start:[0,4],beggin:4,begin:[1,4,6],behavior:0,bela_btc:9,believ:1,below:[1,4,6,7,13],benchmark:[4,5,7,11,15],benchmark_period_return:[1,4,7],benchmark_volatil:[1,7],benefit:1,best:[3,5,6,15],beta:[1,4,7],better:1,between:[1,3,4,5,9,15],bia:1,big:6,bin:[4,6],binari:[6,10],bit:[3,6],bitcoin:[1,4,5,8,9,13,15],bitcoin_usd_asset:8,bitfinex:[1,4,5,7,8,11,15],bittrex:[1,4,5,8,11,14,15],bld:3,blk_btc:9,blk_xmr:9,blockchain:9,blotter:13,blue:1,bodi:3,book:1,both:[1,3,8,9,10],bought:1,bound:1,breakdown:8,brew:6,brother:6,brows:6,browser:[3,7,10],btc:1,btc_usd:[1,4,7,8,9],btc_usdt:[4,5,9,13,15],btcd_btc:9,btcd_xmr:9,btm_btc:9,bts_btc:9,bug:[2,3],bui:1,build:[1,3,6,10],build_ext:3,burst_btc:9,button:[6,10],buy_and_hodl:[4,11],buy_btc_simpl:[1,4],buy_btc_simple_out:[1,4],buy_df:[1,4],buy_low_sell_high:11,calcul:[1,3,4,8],call:[1,2,3,4],can:[1,2,3,4,5,6,8,9,10,11,13,15],can_trad:[1,4,11],cancel_ord:[4,7],candl:[1,9,11],candle_s:4,cannot:[1,4,6],canon:3,capit:[1,4,7],capital_bas:[1,4,11,13],capital_us:[1,7],captur:1,cash:[1,2,3,4,7,11],catalyst_dev:[1,5,6,15],caus:[0,1,2,3],cell:7,cert:11,certian:0,chanc:1,chang:[1,3,4,5,6,7,10,11,15],channel:[1,5,6,15],charact:3,charg:1,chart:[1,4,6],check:[1,2,3,4,6,7,8,9],checker:10,checkout:[3,10],choic:10,choos:[1,4,6,9,10,13],chosen:[1,13],chunk:[1,11],circumv:6,clam_btc:9,classic:[1,4],classifi:1,clean:[2,6,10,11],clear:2,cli:[1,4,7,11,13],click:[6,10],client:8,clone:3,close:[1,4,7,13],cmap:4,cmd:[1,6],code:[1,4,6,10,11,13],codebas:3,coin:[7,11],collect:[1,2,4],color:[4,7],colorbar:4,colour:4,column:[1,2,4,7],com:[1,2,3,8],combin:[6,8],come:[2,6],comment:1,common:1,commonli:1,commun:[6,12],comp:4,compar:[1,4,5,15],comparison:11,compat:[5,11,15],compil:[6,10,11],complement:4,complet:8,complex:[1,6],complianc:4,complimentari:13,comprehens:11,compress:[1,11],comput:[1,4,6,11,12],concept:1,conda:1,conda_build_matrix:10,condit:4,config:6,configur:[1,6,11],congratul:6,consid:[1,4],consist:[1,9],constant:7,constraint:2,consum:10,contain:[1,2,3,6,7],content:1,context:[1,4,7,13],continu:1,continuum:6,conveni:1,convent:[4,8],convers:2,convert:[2,4],copi:[1,2,3,4,10],copyright:4,core:6,corr_m:4,correct:[2,6,8,10],correctli:[1,6,10],correctwai:6,correl:4,correspond:[1,6,8,13],cost:[1,4],could:[0,1,2,4,6,7,13],count:2,coupl:1,cov_m:4,covari:4,cover:[1,4,13],coverag:[5,8,9,15],cpython:6,crash:2,creat:[1,2],creation:11,crossov:1,crowd:12,crypto:[1,5,11,15],cryptoasset:[1,4,13,14],cryptocurr:[4,9],csv:[4,7,11],csvfile:13,csvwriter:13,cumul:11,cumulative_capital_us:3,curat:[1,5,15],currenc:[1,4],current:[0,1,2,4,6,7,8,10,11,13],current_dai:4,current_dt:[4,13],custom:[1,2,13],cvc_btc:9,cvc_eth:9,cython:10,d6dca79513214346a646079213526:1,dai:[1,2,4,7,10],daili:[1,2,4,5,9,11,13,15],darkgoldenrod:4,dash:8,dash_btc:9,dash_usdt:[4,9],dash_xmr:9,data_frequ:[1,4,13],databas:2,datafram:[1,2,4,5,7,12,13,15],dataframe_cach:2,dataset:[1,2],date:[1,2,4,6,10,11,13],datetim:[4,13],dcr_btc:9,debian:[1,6],debug:10,decid:10,decim:11,decor:10,decreas:4,def:[1,4,7,13],defin:[1,4,7,8],delai:1,delet:2,demonstr:1,denomin:7,dep:3,depend:[1,3,6,10,11,13],deploi:10,deprec:3,deriv:6,descript:[3,6],desir:[7,13],desktop:9,detail:[4,5,15],determin:4,dev1:6,dev2:6,dev3:6,dev4:6,dev5:6,dev6:6,dev8:6,dev9:6,dev:[3,6,9],devel:6,develop:1,deviat:4,devis:1,dgb_btc:9,dictionari:11,did:[5,15],didn:6,differ:[1,2,4,6,8,9,10,13],dir:6,directli:[1,2,6,11,13],directori:[1,2,3,4,6,8,10],disabl:11,disablemsi:6,discord:[1,3,5,6,15],discuss:1,disk:11,dismiss:1,displai:[1,4,6,7,10,11],dist:10,distribut:[4,6,10],distutil:10,divid:3,dividend:2,divis:4,dma:1,dname:1,dnf:6,doc:2,docker:3,dockerfil:3,document:[3,4,6,8],doe:[2,4,6,7,9],doesn:2,doge_btc:9,dollar:9,don:[1,3,7,14],done:[1,4,7,10],dot:4,down:[1,4,14],download:[1,2,6,7,11],draft:10,drawback:2,drive:1,driven:[1,5,15],dropbox:11,dual_moving_averag:[1,4],dword:6,each:[1,2,3,4,5,6,8,9,11,13,15],earlier:[1,2,3,4],earliest:4,eas:[5,15],easi:[1,2,7,12],easier:[1,2,9],easiest:6,easili:[1,5,6,15],echo:6,eco:[5,15],edit:[3,4,6,10],editor:6,educ:1,educt:1,either:[1,4,6],elaps:4,element:4,elif:[1,4],els:6,emc2_btc:9,empow:[1,5,15],empti:[1,2,3,4,8,10,11],enabl:8,encount:6,end:[1,4,7,11,13],end_dat:1,ending_cash:[1,7],ending_exposur:[1,7],enh:3,enhanc:3,enigma:[1,4,5,6,8,9,15],enigmampc:[1,3],enough:[1,6],ensur:[0,6,8,10],ensure_directori:4,enter:[1,6],entir:3,entri:[1,6],env:[4,6],enviorn:2,enviro:6,environ:1,environemnt:[6,7],equal:[2,4,7,13],equiti:2,error:[1,3,4,6,7,8,9,11],especi:1,establish:[5,15],estim:1,etc:[3,10,11],etc_btc:9,etc_eth:9,etc_usdt:9,eth:[1,8],eth_btc:[8,9],eth_usdt:[4,9],ethereum_bitcoin_asset:8,evalu:1,even:[2,6],event:1,eventu:1,everi:[1,4,6,7],everyth:[1,2],exact:[4,13],examin:1,excel:6,except:[1,4],excess:4,exchang:[1,2,4],exchange_algorithm:1,exchange_nam:[1,4,8,13],exclud:4,execut:[0,1,4,7,8,11],exist:[2,3,5,6,15],exit:[1,4,10],exit_success:10,exp_btc:9,expect:[0,2,4,6,7,9,10],experi:6,experienc:6,explain:[6,8],explicitli:10,explictili:6,express:[1,4,5,15],extend:1,extens:[2,3,6],extern:[1,4,6],extra:10,extract_transact:[1,4],facto:7,fail:[2,6,7],failur:2,fairli:[1,3],fals:[4,7],familiar:3,fantast:1,far:2,fast:2,fatal:6,fct_btc:9,featur:[1,4],fedora:6,feedback:2,feel:[1,7],fetch:[2,9,11],few:[1,2,10],fewer:6,field:[2,4,10],file:[1,2,3,4,6,7,8],filenam:[1,4,13],fill:1,filter:11,financ:7,financi:[1,11],find:[1,2,6,10],fine:10,finish:1,fix:3,flag:[1,4,6,8,10],flake8:3,fldc_btc:9,flo_btc:9,floor:4,focu:[1,5,15],folder:[4,6,11],follow:[0,1,2,3,4,6,7,8,9,10,13],footprint:6,fork:12,form:[1,4,9],format:[1,2],fortran:6,forward:2,foster:12,found:[1,3,6,9],fourth:[1,4],fraction:11,frame:[1,4],free:[1,4,7],freelanc:12,freetyp:6,freq:[1,4],frequenc:[1,4,11],fresh:10,from:[0,1,2,3,4,6,7,9,10,11,13],full:[1,7,13],fund:12,fundament:12,further:[1,4,5,15],futur:[1,2],game_btc:9,gas_btc:9,gas_eth:9,gave:1,gcc:6,gcf:[4,7],gen_type_stub:10,gener:[2,3,5,6,8,10,11,13,15],get:[1,2,3,4],get_open_ord:[1,4,7],get_ylim:[1,4],gettempdir:4,gfortran:6,github:[1,3,6,10],give:4,given:[1,2,9,13],global:1,gno_btc:9,gno_eth:9,gnt_btc:9,gnt_eth:9,goe:[4,8,14],good:[1,10],goog:2,got:1,govern:4,grain:10,graph:7,grc_btc:9,green:[1,4],group:[1,3],grow:2,guid:[3,6,11],gzip:10,hand:3,handi:[1,4,6],handl:[3,4,11],handle_data:[0,1,4,7,8,13],hang:6,happen:[1,2],happi:10,hard:1,hash:11,have:[0,1,2,3,5,6,7,10,14,15],haven:1,head:[1,6,7],header:[6,10],heavi:[1,4],heavili:12,hedg:12,held:9,help:[1,2],henc:1,here:[1,2,6,7,8],hidden:10,high:[1,8,12,13],highest:[4,10],highlight:4,hint:[6,10],histor:[1,4,5,11,15],hit:[1,11],hitchhik:6,hkey_local_machin:6,hold:[4,8],home:11,homebrew:6,hope:1,hopefulli:[4,14],how:[1,2,4,6,7,8],howev:[8,10],html:[3,4,10],http:[1,4,8,10],huc_btc:9,idea:[1,2,3],idxmax:4,idxmin:4,illustr:8,iloc:4,immedi:[1,4],immut:0,impact:11,imper:3,implement:[1,2,4,11,14],impli:4,implicitli:0,importerror:1,improv:[3,11],inc:4,includ:[1,2,3,4,6,10,13],incomplet:2,inconsist:8,increas:[2,4,11],increment:[1,10],independ:6,index:[1,3,4,7,10],indic:[2,4,6],individu:[1,8],infer:2,influenc:1,info:[1,4,7],inform:[0,1,2,4,6,10],initi:[0,1,4,7,8,11,13],inlin:7,inplac:3,input:[5,7,9,15],insid:[1,6,7],insight:[1,5,15],inspect:[1,4],instal:[1,3],installt:6,instanc:[0,2,4],instead:[1,2,3,4,7,9,11],instruct:[1,3,6],integ:[2,11],integr:[5,15],intend:[1,3,10],interact:7,intern:[2,6],interpret:[4,7,13],interv:4,introduc:[1,4,8,9,11],invest:[1,5,15],invok:[1,2],involv:[2,6],ipython:7,is_bui:[4,7],issu:[1,3,6,9,10,11],iter:[1,2,13],itself:1,jan:1,join:[4,5,6,15],json:[8,11],juli:13,jump:6,jupyt:1,just:[1,2,4,7,9,10],keep:[1,2,4,6],kei:[2,5,6,8,15],kept:1,keyerror:11,kind:4,know:7,knowledg:[5,15],kwarg:10,label:[1,4,8,10],lack:9,languag:4,lapack:6,larg:2,larger:11,last:[1,2,4,6,7,11],later:[1,2,3,4],latest:[10,11],launch:[6,7],law:4,layer:9,lazi:2,lbc_btc:9,leak:2,learn:[1,5,6,15],least:[1,3],legend:[4,7],legend_:[1,4],len:[1,4],less:2,let:[1,4,7],level:[1,2,4],leverag:[4,7,12],lib:4,libatla:6,libfreetype6:6,libgfortran:6,librari:[1,3,4,5,6,11,12,15],licens:4,lifetim:2,like:[1,2,3,5,6,9,10,15],limit:[1,4,9,11],limit_pric:[4,7],linear:6,linter:10,linux:1,list:[0,2,4,6,9,10,13],littl:[1,3],live:[1,4,6],live_algo:4,live_graph:4,load:[1,2,7],load_ext:7,loc:[1,4,7],local:[1,2,3,6,7,10],locat:[1,2,4,13],log:[1,4,6],logbook:[1,4],logger:[1,4],logic:[1,4,11],long_mavg:[1,4],long_window:[1,4],longer:[1,3,10],look:[1,2,4,7,10,13],lookup:1,loop:2,loss:11,lot:2,low:[1,8],lower:11,lowercas:[8,9],lsk_btc:9,lsk_eth:9,ltc:8,ltc_btc:9,ltc_usd:[1,4],ltc_usdt:[4,9],ltc_xmr:9,machin:[2,5,10,15],maco:1,made:[2,3],magic:[1,7],mai:[1,2,4,6,10],maid_btc:9,maid_xmr:9,main:[1,6,10],maint:3,maintain:[9,10],mainten:3,major:10,make:[1,2,3,4,6,7,9,10],manag:[1,4,6,10],mani:[1,2,4,6,10,12],manifest:10,manner:8,manual:[6,10],map:[0,2,9],marker:[1,4],markers:7,market:[1,8,9],market_curr:9,marketplac:1,markowitz:4,master:10,match:[1,6,8,10],matplotlib:[1,4],matplotlibrc:6,matrix:[4,10],matter:3,mavg:1,max_capital_us:3,max_leverag:3,max_sharpe_port:4,maxim:[5,15],maximum:4,maybe_show_progress:2,mcoin:[4,7],mean:[1,2],mean_reversion_simpl:4,memori:2,mention:[1,6,10],menu:6,merg:1,merger:2,messag:1,method:[0,1,2,4,6,10,11,13],metric:[1,11],micro:10,microsoft:6,might:1,migrat:1,min:4,min_vol_port:4,mind:[1,4],miniconda:6,minim:[4,5,15],minimum:[4,11],minor:10,minut:[1,2,4,5,6,11,13,15],miss:[1,6,8,11],mkvirtualenv:3,mode:[1,4,5,8,11,15],modif:[3,8],modifi:13,modul:1,moment:[6,10],momentum:[1,4,14],monei:0,month:[10,13],more:[0,1,2,4,5,6,11,13,15],most:[1,2,4,6,7,8,11],mostli:1,movement:1,mpc:[1,4],msft:2,msi:6,msiexec:6,much:[1,2],multipl:[2,4,10,11],must:[1,2,8,10],my_algo_cod:8,my_algo_nam:8,n_portfolio:4,name:[1,2,3,4,6,7,8],namespac:[1,4,10],nan:[1,4,7],nano:10,nasset:4,nativ:6,naut_btc:9,nav_btc:9,navig:[3,6],nchang:4,ndarrai:1,necessari:6,nee:6,need:[1,2,3,4,6,9,10,12,13],neg:1,neo:4,neo_eth:[4,8],neo_ethereum_asset:8,neo_usd:4,neos_btc:9,never:2,newer:2,nice:[5,15],nmc_btc:9,non:6,none:[1,4,7,13],nor:4,normal:11,note:[1,4],note_btc:9,notebook:1,noth:6,notic:4,notion:4,novemb:10,now:[1,2,4,6,10,11,14],number:[1,2,4,6,10,11],numer:6,numpi:[1,3,4,6,10,12],nvalu:4,nxc_btc:9,nxt_btc:9,nxt_usdt:9,nxt_xmr:9,observ:6,obtain:[1,4],occur:[1,8],off:12,offer:1,offset:4,ohlc:1,ohlcv:11,older:2,omg_btc:9,omg_eth:9,omni:9,omni_btc:9,onc:[1,2,4,6,7,10],onli:[0,1,2,3,4,5,6,10,13,15],open:[1,3,6,7,11,13],openssl:6,oper:6,operatbl:6,opt:4,optim:1,option:[1,2,6,13],order_id:1,order_target_perc:[1,4],order_target_valu:[4,7],ordered_pip:3,org:[4,10],organ:1,origin:[1,10],osx:10,other:[1,2,4,6,9,10,13],otherwis:6,our:[1,3,4,5,6,10,14,15],out:[1,2,3,4,5,6,7,10,15],outdat:6,outlin:6,output:[1,2,4,7],outstand:[4,7],overcom:9,overfit:1,overrid:[6,10],overview:1,overwhelm:1,own:[2,6,8],p_r:4,p_std:4,packag:[1,6,7],pacman:6,page:[3,6,10,11],pair:[1,4,7,8,9,11],pairon:4,panda:[1,2,4,5,12,15],paper:3,parent:6,pars:2,part:[1,2,4,6,8,14],partial:6,particular:[5,6,15],pasc_btc:9,pass:[1,2,4,7,10],password:10,past:1,path:[2,4,6,11,13],pend:10,peopl:3,pep8:3,per:[1,2,4,11],percent:[1,4,7],percentag:[1,4],perf:[1,3,4],perform:[0,1,3,4,5,6,7,11,12,15],period:[3,4],permiss:[4,6],persist:[1,4,11],pickl:[1,4],piec:[2,6],pink_btc:9,pip:[1,3],pkg:6,place:[1,4,7,11],platform:[6,11,12],pleas:[1,5,6,13,15],plot:[1,4,7,12],plt:[1,4,7],plu:13,png:7,point:[1,9,10],poloniex:[1,4,5,7,8,9,11,13,15],popul:10,portfolio:1,portfolio_optim:4,portfolio_valu:[1,4,7],pos_amount:[1,4],posit:[1,4,7,11],positon:4,possibl:[2,3,6],post:10,pot_btc:9,power:[1,4,7,12],ppc_btc:9,practic:[1,3],pre:[2,6],precis:11,predict:[1,8],prefer:6,prefix:3,preload:2,prepare_chunk:11,preprocess:10,prerequisit:[1,6],present:1,preserv:11,prevent:[2,6,10],previous:1,price_chang:[1,4],primari:6,print:[1,4,6,10],print_result:1,prior:[1,4],privileg:6,probabl:1,problem:[1,2,6,10],proce:6,proceed:6,process:[1,2,8],produc:[2,4,6],profit:[1,5,15],program:6,progress:2,project:[5,6,12,15],prompt:[1,6],proper:6,properli:[1,4,6,13],protect:0,protocol:[1,9],provid:[0,1,2,5,6,7,8,11,12,13,15],publish:10,pull:[3,10],pun:1,purchas:[4,7],purpos:[1,8],push:10,put:8,pycharm:10,pydata:[4,5,15],pyfolio:11,pypirc:10,pypitest:10,pyplot:[1,4,7],python2:[6,11],python3:11,python:[1,3,4,6,7],pytz:[4,13],quandl_api_kei:2,quandl_download_attempt:2,quantit:[7,12],queri:2,question:[1,3,5,15],quick:1,quickli:[4,14],quirk:6,quit:2,rads_btc:9,rais:3,ran:2,random:4,rang:[1,2,4],rate:4,rather:[1,6],ratio:4,raw:[2,6],rdylgn:4,read:[1,2,6],read_pickl:1,readi:10,real:[0,4],realist:[1,4],reason:[1,2,6],rebal:4,rebalanc:[1,4],rebalance_period:4,recal:1,receiv:[1,2],recent:[1,2,4,6],recogn:6,recommend:[2,6],reconstruct:1,record:[1,4,7,13],red:[1,4],redhat:6,redon:11,redownload:[2,7],reduc:11,refactor:3,referenc:8,refus:7,regard:[5,15],regardless:[6,7,8],regedit:6,regist:[0,2,7],registri:6,regular:6,rel:3,relat:3,relationship:2,releas:[3,6],reli:12,remain:11,rememb:6,remot:2,remov:[1,3,4,6,10,11],renam:10,rep:6,rep_btc:9,rep_eth:9,rep_usdt:9,report:[1,3,6],repositori:[6,10,11],repres:[2,8],reproduc:2,request:[1,2,3,4],requir:[1,3,4],requirements_blaz:3,requirements_dev:3,requirements_doc:3,research:7,reserv:[4,7,9],reserve_ratio:[4,7],reserve_valu:[4,7],resolut:[1,4,5,11,13,15],resourc:[2,11],respect:[3,10,13],respons:2,rest:2,restart:11,restrict:6,restructuredtext:3,result:[1,2,4,6,7,8,13],results_arrai:4,results_fram:4,resum:4,retri:2,retriev:[4,7,11],rev:3,revert:3,review:[1,6],revis:1,rhel:6,ric_btc:9,ride:[4,14],right:6,risk:[1,4,11],roll:1,rollup:2,root:[3,10],routin:6,row:[1,7],rsi:4,rsi_overbought:4,rsi_oversold:4,rst:[3,10],run_algo:[1,4,13],run_algorithm:[1,4,8,13],runtim:1,safe:1,said:1,same:[1,2,4,6,7,8,10,11,13],sampl:11,satisfi:6,save:[1,2,3,4,6,13],sbd_btc:9,sc_btc:9,scale:[7,11],scatter:[1,4],scientif:12,scikit:1,scipi:[4,5,6,15],scratch:6,script:[1,10,13],scriptnam:13,seamless:[5,15],search:6,second:[1,4,6,14],secret:8,section:[1,3,4,6,8,10,13],secur:[4,5,12,15],see:[0,1,2,4,5,6,8,13,15],seek:6,seen:4,select:[4,6],self:0,sell:[1,4,8,11,12,14],sell_df:[1,4],separ:[1,3,6,8,9],seper:8,seri:[1,14],seriou:1,server:[1,2,7,10],servic:2,session:6,set:[1,2,4,6,11],set_printopt:4,set_size_inch:[4,7],set_tick:[1,4],set_ylabel:[1,4,7],setup:[3,7,10],setuptool:6,sever:[1,5,6,15],share:[1,5,15],sharex:[1,4,7],sharp:[1,4],ship:[2,6,10],short_exposur:1,short_mavg:[1,4],short_valu:1,short_window:[1,4],shorter:1,shorts_count:1,should:[0,1,2,3,6,8,10],shourc:2,show:[1,2,4,7],shown:2,sid:[2,7,11],signal:2,signatur:2,signific:4,similar:[1,6,8],simpl:1,simpler:13,simplest:4,simpli:[1,3,6,13],simplic:4,simplifi:1,simultan:11,sinc:[1,4,6,7,10,13],singl:[2,4,6,11],size:[4,6,11],sjcx_btc:9,skeleton:10,skim:1,skip:[1,4],sklearn:[5,15],slighlti:4,slightli:6,smaller:6,smoothli:14,snip:7,snippet:13,softwar:[4,6],solut:6,solv:[1,2,6],some:[1,2,3,4,6,8,11,12],someon:6,someth:3,somewhat:1,sortino:[1,11],sourc:[1,2,3,4,6,10,12],space:7,special:8,specif:[1,4,11],specifi:[1,2,4,7,8,10],spend:1,spent:9,sphinx:[3,10],split:[1,2],splitext:[4,13],spring:12,sqliteadjustmentwrit:2,sqrt:4,ssl:11,stabl:[4,6],stai:10,standard:[2,3,4,9,11],star:4,start:[1,2,3,4,5,6,7,8,13,15],start_dat:1,start_tim:4,starting_cash:[1,4,7],starting_exposur:[1,7],starting_valu:[1,7],stat:[4,11],state:[1,2,4,5,11,15],statist:[1,5,8,11,15],stats_util:[1,4],statsmodel:[5,15],statu:[4,8],std:4,stdev:4,stdout:1,steem_btc:9,steem_eth:9,still:[1,2,4,6,7],stock:[1,2],stop:[4,7,11],stop_pric:[4,7],storag:[1,8,11],store:[1,2,4,9,13],str_btc:9,str_usdt:9,straightforward:4,strat_btc:9,strategi:[1,4],stream:1,strftime:4,strictli:[2,6],string:[2,7,10],strongli:6,sty:3,style:[3,4],subdirectori:2,subject:3,submit:3,subplot:[1,4,7],substanti:1,succe:10,succeed:7,success:[2,3],sudo:[1,6],suffici:6,suggest:3,sum:4,summar:6,summari:11,suppli:[1,7],support:[1,4,6,7],suppos:[1,7],suppress:4,sure:[4,6],surpris:1,suspect:3,symbol:[1,2,4,7],symbolnotfoundonexchang:9,sync:10,syntax:[10,11],sys_btc:9,system:[1,3,5,6,15],t_price:4,t_val:4,tag:10,take:[1,2,6,7,11,14],taken:10,talib:4,tar:10,tarbal:10,target:[1,8],target_hodl_ratio:[4,7],target_hodl_valu:[4,7],technic:[4,5,15],tempfil:4,templat:10,temporari:10,ten:1,tend:8,tens:3,term:1,termin:[1,4,6],test:[1,3,10,11,12],testpypi:10,tether:9,text:1,than:[1,2,3,6],thei:[1,2,10,11,12],them:[1,3,6,10],therefor:10,therein:6,thi:[0,1,2,3,4,6,7,8,9,10,13,14],thing:14,third:[1,4],those:[1,3,4,10],though:2,three:[1,2,4,5,15],threshold:[4,7],through:[0,1,2,6,7],throughout:1,thu:[1,4,6,7],tick:4,tick_siz:7,ticker:2,time:[1,2,4,5,6,7,10,13,15],timeperiod:4,timeseri:4,timestamp:[1,2,11],timestr:4,titl:10,tkagg:6,tminus_pric:4,tminus_v:4,to_csv:[4,13],to_datetim:[1,4],to_pydatetim:[1,4],todai:[4,10],togeth:1,token:[4,8,13],tool:[2,3,6,10,12],top:[1,5,10,15],total:2,toward:1,traceback:9,track:[1,3,4,11],tracker:1,traded_todai:4,trader:[1,12],trading_dai:[1,7],tradingalgorithm:[0,10],tradingcalendar:2,tradit:1,train:1,tran:[4,7],transact:[1,4,7,11],transaction:2,transaction_df:[1,4],transfer:9,transform:1,transit:[5,15],transpos:4,travi:10,treasuri:[4,7],treasury_period_return:[1,4,7],trend:1,tri:[1,5,15],trigger:4,tst:3,tupl:2,turn:10,tweak:1,twice:10,two:[1,4,5,6,13,14,15],twoargument:1,txt:[3,6,10],type:[4,6,10],typo:3,ubuntu:[1,6],uncompress:11,under:[1,2,4,10],underli:1,underlin:10,underscor:9,understand:[1,6],undesir:0,unexpect:6,unit:[1,9,11],univers:[1,8],unknown:7,unless:4,unlik:2,unpack:6,unregist:0,unresolv:11,untar:2,until:[1,4],unus:3,updat:1,upgrad:[6,10],upper:[1,4],upward:1,url:10,usag:1,usd:[1,4,7,9],usdt:[4,9,13],usdt_btc:7,usdt_btc_benchmark:7,user:[1,2,5,6,7,9,10,15],usernam:10,usr:4,usual:1,utc:[1,4,13],utilit:13,valid:11,valu:[1,4,6,7,8,11],vari:[4,6,13],variabl:[1,2,4,7,13],varianc:4,varieti:13,variou:[1,2,4],varnam:1,vcforpython27:6,venv:6,veri:[1,2,4,6,7,10],verifi:[6,10],versatil:13,version:[1,4,6,10],via:[1,6,7,9],via_btc:9,viabl:9,victori:9,video:[4,11],view:[3,10],virtual:6,virtualenvwrapp:3,visit:[4,5,15],visual:[1,4,5,6,15],volatil:4,volum:[1,4,5,7,9,11,13,15],volumeshareslippag:7,vrc_btc:9,vtc_btc:9,wai:[1,2,5,6,7,15],wait:[1,4],want:[1,2,3,4,7,9],warn:[7,10,11],warranti:4,wave:[4,14],web:10,weight:4,welcom:3,well:[1,2,5,6,15],were:[3,4,10],what:[1,3,4,6,8,10],whatev:2,whatsnew:10,wheel:[6,10],when:[0,1,2,3,4,6,8,10,14],where:[1,2,3,4,5,6,8,9,13,14,15],which:[1,2,3,4,6,7,8,10,11,13],whitepap:[5,12,15],whitespac:3,who:3,whole:1,why:3,width:10,win:10,window:[1,4],within:[6,7],without:[2,4,6,7,8,11],workaround:11,world:1,wors:1,worth:1,would:[1,2,4,6,10],wouldlik:1,wrap:10,writ:4,write:1,writerow:13,written:[1,2,5,9,15],wrong:9,www:[4,8],xbc_btc:9,xbt:8,xcp_btc:9,xem_btc:9,xlabel:4,xmr_btc:9,xmr_usdt:[4,9],xpm_btc:9,xrang:4,xrp_btc:9,xrp_usdt:9,xvc_btc:9,yahoo_equ:2,yaxi:[1,4],year:10,yet:1,ylabel:4,yml:[6,11],you:[1,2,3,4,5,6,7,9,10,13,15],your:[1,2,3,4,5,6,7,8,10,12,13,15],yourself:3,yum:6,zec_btc:9,zec_eth:9,zec_usdt:9,zec_xmr:9,zero:[3,4],ziplin:[0,2,3,5,10,12,15],zipline_root:[2,10],zlib:6,zrx_btc:9,zrx_eth:9},titles:["API Reference","Catalyst Beginner Tutorial","Data Bundles","Development Guidelines","Example Algorithms","Features","Install","Catalyst & Jupyter Notebook","Live Trading","Naming Convention","Release Process","Release Notes","Resources","Utilities","Videos","Features"],titleterms:{"3rd":12,"__version__":10,"default":2,"function":0,"new":2,access:1,adjustment_writ:2,algorithm:[0,1,4,7,8],amazon:6,ami:6,api:[0,12],asset:0,asset_db_writ:2,authent:8,avail:2,averag:[1,4],backtest:[0,2,14],basic:1,bdist:10,beginn:1,branch:3,btc:4,bug:11,bui:4,build:11,built:0,bundl:[0,2],cach:[0,2],calendar:[0,2],cancel:0,catalyst:[1,7],command:[0,1],commiss:0,commit:[3,10],conda:[6,10],content:5,contribut:3,control:0,convent:9,creat:3,cross:1,crossov:4,csv:13,currenc:8,daily_bar_writ:2,data:[0,1,2,13],dev1:11,dev2:11,dev3:11,dev4:11,dev5:11,dev6:11,dev7:11,dev8:11,dev9:11,develop:3,discov:2,doc:3,docstr:3,document:[10,11],dual:[1,4],end_sess:2,engin:0,environ:[2,3],exampl:[1,4],exchang:8,extract:13,factor:0,factori:2,featur:[5,15],file:[10,13],first:1,fix:11,format:3,get:6,git:3,gnu:6,guidelin:3,help:6,histori:1,hodl:4,ingest:[1,2],instal:[6,7,14],interfac:1,jupyt:7,line:[0,1],linux:6,live:[8,14],loader:0,maco:[6,14],market:13,matplotlib:6,mean:4,messag:3,metadata:0,minute_bar_writ:2,mirror:2,miscellan:0,model:0,move:[1,4],name:9,next:[1,10],note:[6,10,11],notebook:7,object:0,old:2,optim:4,order:0,output:13,output_dir:2,over:1,overview:4,packag:10,paramet:0,parti:12,pip:6,pipelin:0,polici:0,portfolio:4,previou:1,price:1,process:10,pypi:10,python:10,quandl:2,quantopian:2,reader:0,refer:0,relat:12,releas:[10,11],requir:6,resourc:12,revers:4,run:[0,1,2,7],schedul:0,sdist:10,show_progress:2,simpl:4,simul:0,slippag:0,start_sess:2,step:1,strategi:14,structur:3,stub:10,support:8,symbol:8,tabl:5,trade:[0,8,14],troubleshoot:6,tutori:1,updat:10,upload:10,util:[0,13],version:11,video:14,virtualenv:6,wiki:2,window:[6,14],work:1,write:2,writer:0,yahoo:2}}) \ No newline at end of file +Search.setIndex({envversion:46,filenames:["appendix","beginner-tutorial","bundles","development-guidelines","example-algos","index","install","jupyter","live-trading","naming-convention","release-process","releases","resources","utilities","videos","welcome"],objects:{"zipline.data.bundles":{bundles:[0,0,1,""]}},objnames:{"0":["py","data","Python data"]},objtypes:{"0":"py:data"},terms:{"000000e":1,"1000th":7,"15t":4,"1st":1,"30t":4,"328842e":1,"340mb":11,"380954e":1,"40mb":11,"460mb":11,"505275d6646a41f3856b22b16678d":1,"536708e":1,"5min":[4,7],"650729e":1,"7869f7828fa140328eb40477bb7d":1,"998236e":1,"998677e":1,"999120e":1,"999558e":1,"99mb":11,"__file__":[4,13],"__future__":4,"__main__":[1,4],"__name__":[1,4],"__wrapped__":10,"_tkinter":1,"boolean":[2,8],"case":[1,2,3,6,13],"class":[3,10],"default":1,"export":10,"final":[1,2,3],"float":[1,11],"import":[1,2,4,7,10,13],"int":2,"long":[1,2,4],"new":1,"public":11,"return":[1,4,8,10,11,12],"short":[1,3,4],"static":10,"throw":11,"true":[1,4,7,8],"try":[4,6],"var":1,"while":[6,10,11],aapl:2,abil:2,abl:[1,2,6],abner:4,abnera:[],about:[1,2,5,6,15],abov:[1,3,4,6,8,9,10],accept:[2,6,10],accord:10,accordingli:[1,4],account:[2,4,5,7,11,15],acevedo:4,acquir:[2,6],across:[5,9,11,15],activ:[6,10],actual:7,add:[1,2,3,6,10,13],addit:[1,3,5,6,11,15],address:10,adjust:[2,4,11],administr:6,advantag:6,afford:[4,7],aforement:1,after:[1,2,4,6,7,10],again:1,against:[1,5,8,11,14,15],agre:4,ahead:1,aim:[4,12],algebra:[4,6],algo:[1,2,4,11],algo_namespac:[1,4,8],algo_volatil:[1,7],algofil:[1,2],algorith:1,algorithm_period_return:[1,4,7],algotext:1,alia:4,alias:4,all:[0,1,2,3,4,5,6,7,8,9,10,11,15],allow:[1,2,5,6,15],along:2,alongsid:1,alpha:[1,4,6,7],alreadi:[1,2,3,6,7],also:[1,2,3,4,5,6,7,8,10,15],altern:[1,6,9],although:1,alwai:[2,8,9,10],amount:[1,4,7,11],amp_btc:9,anaconda:[1,6,10],analog:1,analysi:[1,4,5,10,11,12,15],analyst:12,analyt:[5,6,15],analyz:[1,4,7,8,11,13],ani:[1,2,4,6,7,9,10,13],anonym:2,anoth:[1,2,4,7],anymor:1,anyth:[1,6,10],apach:4,appar:1,appear:[2,10],append:10,appli:[1,4],applic:[1,4],appropri:[1,3,4],approxim:[4,7],appveyor:10,apt:[1,6],arang:[1,4],arbitrari:8,arbitrarili:1,arch:6,architectur:1,ardr_btc:9,arg:[1,10],argument:[0,1,2,7,8,10],argv:13,around:[5,10,15],arrai:[4,6],art:[5,15],articl:[3,4],ask:[1,3],asmatrix:4,assess:1,asset_nam:[4,7],assetdbwrit:2,assign:[1,8],assimil:1,assist:6,assum:[1,3,4,6],astyp:4,atla:6,attempt:[2,8],attribut:[4,10],auth:[8,11],auto:11,avail:1,avoid:[1,2,4],awar:10,ax1:[1,4,7],ax2:[1,4,7],ax3:[1,4,7],ax4:[1,4,7],ax5:[4,7],ax6:[4,7],axhlin:4,axi:4,ayala:4,back:[3,6,9],backbon:4,backend:6,bah:4,bar:[1,4,11],bar_count:[1,4],base:[1,2,4,5,6,7,8,14,15],base_curr:[1,4,8,9,13],base_pric:[1,4],basenam:[4,13],basi:[4,11],batch:6,batteri:1,bch_btc:9,bch_eth:9,bch_usdt:9,bcn_btc:9,bcn_xmr:9,bcolz:2,bcolzdailybarread:2,bcolzdailybarwrit:2,bcolzminutebarread:2,bcolzminutebarwrit:2,bcy_btc:9,be62ff77760c4599abaac43be9cc9:1,bear:[1,4],beautifi:1,becaus:[6,7,10,11],been:[0,1,2,6,10],befor:[1,2,4,6,8,11],before_trading_start:[0,4],beggin:4,begin:[1,4,6],behavior:0,bela_btc:9,believ:1,below:[1,4,6,7,13],benchmark:[4,5,7,11,15],benchmark_period_return:[1,4,7],benchmark_volatil:[1,7],benefit:1,best:[3,5,6,15],beta:[1,4,7],better:1,between:[1,3,4,5,9,15],bfill:4,bia:1,big:6,bin:[4,6],binari:[6,10],bit:[3,6],bitcoin:[1,4,5,8,9,13,15],bitcoin_usd_asset:8,bitfinex:[1,4,5,7,8,11,15],bittrex:[1,4,5,8,11,14,15],bld:3,blk_btc:9,blk_xmr:9,blockchain:9,blotter:13,blue:1,bodi:3,book:1,both:[1,3,8,9,10],bought:1,bound:1,breakdown:8,brew:6,brother:6,brows:6,browser:[3,7,10],btc:1,btc_usd:[1,4,7,8,9],btc_usdt:[4,5,9,13,15],btcd_btc:9,btcd_xmr:9,btm_btc:9,bts_btc:9,bug:[2,3],bui:1,build:[1,3,6,10],build_ext:3,burst_btc:9,button:[6,10],buy_and_hodl:[4,11],buy_btc_simpl:[1,4],buy_btc_simple_out:[1,4],buy_df:[1,4],buy_low_sell_high:11,calcul:[1,3,4,8],call:[1,2,3,4],can:[1,2,3,4,5,6,8,9,10,11,13,15],can_trad:[1,4,11],cancel_ord:[4,7],candl:[1,9,11],candle_s:4,candlestick:4,cannot:[1,4,6],canon:3,capit:[1,4,7],capital_bas:[1,4,11,13],capital_us:[1,7],captur:1,cash:[1,2,3,4,7,11],catalyst_dev:[1,5,6,15],caus:[0,1,2,3],cell:7,cert:11,certian:0,chanc:1,chang:[1,3,4,5,6,7,10,11,15],channel:[1,5,6,15],charact:3,charg:1,chart:[1,4,6],check:[1,2,3,4,6,7,8,9],checker:10,checkout:[3,10],choic:10,choos:[1,4,6,9,10,13],chosen:[1,13],chunk:[1,11],circumv:6,clam_btc:9,classic:[1,4],classifi:1,clean:[2,6,10,11],clear:2,cli:[1,4,7,11,13],click:[6,10],client:8,clone:3,close:[1,4,7,13],cmap:4,cmd:[1,6],code:[1,4,6,10,11,13],codebas:3,coin:[4,7,11],collect:[1,2,4],color:[4,7],colorbar:4,colour:4,column:[1,2,4,7],com:[1,2,3,8],combin:[6,8],come:[2,6],comment:1,common:1,commonli:1,commun:[6,12],comp:4,compar:[1,4,5,15],comparison:11,compat:[5,11,15],compil:[6,10,11],complement:4,complet:8,complex:[1,6],complianc:4,complimentari:13,comprehens:11,compress:[1,11],comput:[1,4,6,11,12],concept:1,conda:1,conda_build_matrix:10,condit:4,config:6,configur:[1,6,11],congratul:6,consid:[1,4],consist:[1,9],constant:7,constraint:2,consum:10,contain:[1,2,3,4,6,7],content:1,context:[1,4,7,13],continu:1,continuum:6,conveni:1,convent:8,convers:2,convert:[2,4],copi:[1,2,3,4,10],copyright:4,core:6,corr_m:4,correct:[2,6,8,10],correctli:[1,6,10],correctwai:6,correl:4,correspond:[1,6,8,13],cost:[1,4],could:[0,1,2,4,6,7,13],count:2,counter:4,coupl:1,cov_m:4,covari:4,cover:[1,4,13],coverag:[5,8,9,15],cpython:6,crash:2,creat:[1,2],creation:11,credit:4,crossov:1,crowd:12,crypto:[1,5,11,15],cryptoasset:[1,4,13,14],cryptocurr:[4,9],csv:[7,11],csvfile:13,csvwriter:13,cumul:11,cumulative_capital_us:3,curat:[1,5,15],currenc:1,current:[0,1,2,4,6,7,8,10,11,13],current_d:4,current_dai:4,current_dt:[4,13],custom:[1,2,13],cvc_btc:9,cvc_eth:9,cython:10,d6dca79513214346a646079213526:1,dai:[1,2,4,7,10],daili:[1,2,4,5,9,11,13,15],darkgoldenrod:4,dash:8,dash_btc:9,dash_usdt:[4,9],dash_xmr:9,data_frequ:[1,4,13],databas:2,datafram:[1,2,4,5,7,12,13,15],dataframe_cach:2,dataset:[1,2],date:[1,2,4,6,10,11,13],datetim:[4,13],dcr_btc:9,debian:[1,6],debug:10,decid:10,decim:11,decor:10,decreas:4,def:[1,4,7,13],defin:[1,4,7,8],delai:1,delet:2,demonstr:1,denomin:7,dep:3,depend:[1,3,6,10,11,13],deploi:10,deprec:3,deriv:6,descript:[3,6],desir:[4,7,13],desktop:9,detail:[4,5,15],determin:4,dev1:6,dev2:6,dev3:6,dev4:6,dev5:6,dev6:6,dev8:6,dev9:6,dev:[3,6,9],devel:6,develop:1,deviat:4,devis:1,dgb_btc:9,dictionari:11,did:[5,15],didn:6,differ:[1,2,4,6,8,9,10,13],dir:6,directli:[1,2,6,11,13],directori:[1,2,3,4,6,8,10],disabl:11,disablemsi:6,discard:4,discord:[1,3,5,6,15],discuss:1,disk:11,dismiss:1,displai:[1,4,6,7,10,11],dist:10,distribut:[4,6,10],distutil:10,divid:3,dividend:2,divis:4,dma:1,dname:1,dnf:6,doc:2,docker:3,dockerfil:3,document:[3,6,8],doe:[2,4,6,7,9],doesn:2,doge_btc:9,dollar:9,don:[1,3,7,14],done:[1,4,7,10],dot:4,down:[1,4,14],download:[1,2,6,7,11],draft:10,drawback:2,drive:1,driven:[1,5,15],dropbox:11,dual_moving_averag:[1,4],dword:6,dynam:4,each:[1,2,3,4,5,6,8,9,11,13,15],earlier:[1,2,3,4],earliest:4,eas:[5,15],easi:[1,2,4,7,12],easier:[1,2,4,9],easiest:6,easili:[1,5,6,15],echo:6,eco:[5,15],edit:[3,4,6,10],editor:6,educ:1,educt:1,either:[1,4,6],elaps:4,element:4,elif:[1,4],els:[4,6],emc2_btc:9,empow:[1,5,15],empti:[1,2,3,4,8,10,11],enabl:8,encount:6,end:[1,4,7,11,13],end_daili:4,end_dat:[1,4],ending_cash:[1,7],ending_exposur:[1,7],enh:3,enhanc:3,enigma:[1,4,5,6,8,9,15],enigmampc:[1,3],enough:[1,6],ensur:[0,4,6,8,10],ensure_directori:4,enter:[1,6],entir:3,entri:[1,6],env:[4,6],enviorn:2,enviro:6,environ:1,environemnt:[6,7],equal:[2,4,7,13],equiti:2,equival:4,error:[1,3,4,6,7,8,9,11],especi:1,establish:[5,15],estim:1,etc:[3,10,11],etc_btc:9,etc_eth:9,etc_usdt:9,eth:[1,8],eth_btc:[8,9],eth_usdt:[4,9],ethereum_bitcoin_asset:8,evalu:1,even:[2,6],event:1,eventu:1,everi:[1,4,6,7],everydai:4,everyth:[1,2],exact:[4,13],examin:1,excel:6,except:[1,4],excess:4,exchang:[1,2],exchange_algorithm:1,exchange_nam:[1,4,8,13],exchange_util:4,exclud:4,execut:[0,1,4,7,8,11],exist:[2,3,4,5,6,15],exit:[1,4,10],exit_success:10,exp_btc:9,expect:[0,2,4,6,7,9,10],experi:6,experienc:6,explain:[6,8],explicitli:10,explictili:6,express:[1,4,5,15],extend:1,extens:[2,3,6],extern:[1,4,6],extra:10,extract_transact:[1,4],facto:7,fail:[2,6,7],failur:2,fairli:[1,3],fals:[4,7],familiar:3,fantast:1,far:2,fast:2,fatal:6,fct_btc:9,featur:1,fedora:6,feedback:2,feel:[1,7],fetch:[2,9,11],few:[1,2,10],fewer:6,ffill:4,field:[2,4,10],file:[1,2,3,6,7,8],filenam:[1,4,13],fill:[1,4],filter:[4,11],financ:7,financi:[1,11],find:[1,2,6,10],fine:10,finish:1,fix:3,flag:[1,4,6,8,10],flake8:3,fldc_btc:9,flo_btc:9,floor:4,focu:[1,4,5,15],folder:[4,6,11],follow:[0,1,2,3,4,6,7,8,9,10,13],footprint:6,fork:12,form:[1,4,9],format:[1,2],fortran:6,forward:2,foster:12,found:[1,3,6,9],fourth:[1,4],fraction:11,frame:[1,4],free:[1,4,7],freelanc:12,freetyp:6,freq:[1,4],frequenc:[1,4,11],fresh:10,from:[0,1,2,3,4,6,7,9,10,11,13],from_dict:4,full:[1,7,13],fund:12,fundament:12,further:[1,4,5,15],futur:[1,2],game_btc:9,gas_btc:9,gas_eth:9,gave:1,gcc:6,gcf:[4,7],gen_type_stub:10,gener:[2,3,5,6,8,10,11,13,15],get:[1,2,3],get_exchange_symbol:4,get_open_ord:[1,4,7],get_ylim:[1,4],gettempdir:4,gfortran:6,github:[1,3,6,10],give:4,given:[1,2,4,9,13],global:1,gno_btc:9,gno_eth:9,gnt_btc:9,gnt_eth:9,goe:[4,8,14],good:[1,10],goog:2,got:1,govern:4,grain:10,graph:7,grc_btc:9,green:[1,4],group:[1,3],grow:2,guid:[3,6,11],gzip:10,hand:3,handi:[1,4,6],handl:[3,4,11],handle_data:[0,1,4,7,8,13],hang:6,happen:[1,2],happi:10,hard:1,hash:11,have:[0,1,2,3,5,6,7,10,14,15],haven:1,head:[1,6,7],header:[6,10],heavi:[1,4],heavili:12,hedg:12,held:9,help:[1,2],henc:1,here:[1,2,4,6,7,8],hidden:10,high:[1,4,8,12,13],highest:[4,10],highlight:4,hint:[6,10],histor:[1,4,5,11,15],hit:[1,11],hitchhik:6,hkey_local_machin:6,hold:[4,8],home:11,homebrew:6,hope:1,hopefulli:[4,14],how:[1,2,4,6,7,8],howev:[8,10],html:[3,4,10],http:[1,4,8,10],huc_btc:9,idea:[1,2,3],idxmax:4,idxmin:4,illustr:8,iloc:4,immedi:[1,4],immut:0,impact:11,imper:3,implement:[1,2,4,11,14],impli:4,implicitli:0,importerror:1,improv:[3,11],inc:4,includ:[1,2,3,4,6,10,13],incomplet:2,inconsist:8,increas:[2,4,11],increment:[1,10],independ:6,index:[1,3,4,7,10],indic:[2,4,6],individu:[1,8],inf:4,infer:2,infinit:4,influenc:1,info:[1,4,7],inform:[0,1,2,4,6,10],initi:[0,1,4,7,8,11,13],inlin:7,inplac:3,input:[5,7,9,15],insert:4,insid:[1,4,6,7],insight:[1,5,15],inspect:[1,4],instal:[1,3],installt:6,instanc:[0,2,4],instead:[1,2,3,4,7,9,11],instruct:[1,3,6],integ:[2,11],integr:[5,15],intend:[1,3,10],interact:7,intern:[2,6],interpret:[4,7,13],interv:4,introduc:[1,4,8,9,11],invest:[1,5,15],invok:[1,2],involv:[2,6],ipython:7,is_bui:[4,7],isinst:4,issu:[1,3,6,9,10,11],iter:[1,2,4,13],itself:1,jan:1,join:[4,5,6,15],json:[8,11],json_symbol:4,juli:13,jump:6,jupyt:1,just:[1,2,4,7,9,10],keep:[1,2,4,6],kei:[2,5,6,8,15],kept:1,keyerror:11,kind:4,know:7,knowledg:[5,15],kwarg:10,label:[1,4,8,10],lack:9,lambda:4,languag:4,lapack:6,larg:2,larger:11,last:[1,2,4,6,7,11],later:[1,2,3,4],latest:[10,11],launch:[6,7],law:4,layer:9,lazi:2,lbc_btc:9,leak:2,learn:[1,4,5,6,15],least:[1,3],legend:[4,7],legend_:[1,4],len:[1,4],less:2,let:[1,4,7],level:[1,2,4],leverag:[4,7,12],lib:4,libatla:6,libfreetype6:6,libgfortran:6,librari:[1,3,4,5,6,11,12,15],licens:4,lifetim:2,like:[1,2,3,5,6,9,10,15],limit:[1,4,9,11],limit_pric:[4,7],linear:6,linter:10,linux:1,list:[0,2,4,6,9,10,13],littl:[1,3],live:[1,6],live_algo:4,live_graph:4,load:[1,2,7],load_ext:7,loc:[1,4,7],local:[1,2,3,6,7,10],locat:[1,2,4,13],log:[1,4,6],logbook:[1,4],logger:[1,4],logic:[1,4,11],long_mavg:[1,4],long_window:[1,4],longer:[1,3,10],look:[1,2,4,7,10,13],lookback:4,lookback_d:4,lookback_dai:4,lookup:1,loop:2,loss:11,lot:2,low:[1,4,8],lower:[4,11],lowercas:[8,9],lsk_btc:9,lsk_eth:9,ltc:8,ltc_btc:9,ltc_usd:[1,4],ltc_usdt:[4,9],ltc_xmr:9,machin:[2,5,10,15],maco:1,made:[2,3],magic:[1,7],mai:[1,2,4,6,10],maid_btc:9,maid_xmr:9,main:[1,6,10],maint:3,maintain:[9,10],mainten:3,major:10,make:[1,2,3,4,6,7,9,10],manag:[1,4,6,10],mani:[1,2,4,6,10,12],manifest:10,manner:8,manual:[6,10],map:[0,2,9],marker:[1,4],markers:7,market:[1,8,9],market_curr:[4,9],marketplac:1,markowitz:4,master:10,match:[1,6,8,10],matplotlib:1,matplotlibrc:6,matrix:[4,10],matter:3,mavg:1,max_capital_us:3,max_leverag:3,max_sharpe_port:4,maxim:[5,15],maximum:4,maybe_show_progress:2,mcoin:[4,7],mean:[1,2],mean_reversion_simpl:4,memori:2,mention:[1,6,10],menu:6,merg:1,merger:2,messag:1,method:[0,1,2,4,6,10,11,13],metric:[1,11],micro:10,microsoft:6,midnight:4,might:1,migrat:1,min:4,min_vol_port:4,mind:[1,4],miniconda:6,minim:[4,5,15],minimum:[4,11],minor:10,minut:[1,2,4,5,6,11,13,15],miss:[1,6,8,11],mkvirtualenv:3,mode:[1,4,5,8,11,15],modif:[3,8],modifi:13,modul:1,moment:[6,10],momentum:[1,4,14],monei:0,month:[10,13],more:[0,1,2,4,5,6,11,13,15],most:[1,2,4,6,7,8,11],mostli:1,movement:1,mpc:[1,4],msft:2,msi:6,msiexec:6,much:[1,2],multipl:[2,4,10,11],must:[1,2,8,10],my_algo_cod:8,my_algo_nam:8,n_portfolio:4,name:[1,2,3,6,7,8],namespac:[1,4,10],nan:[1,4,7],nano:10,nasset:4,nativ:6,naut_btc:9,nav_btc:9,navig:[3,6],nchang:4,ndarrai:[1,4],nearest:4,necessari:6,nee:6,need:[1,2,3,4,6,9,10,12,13],neg:1,neo:4,neo_eth:[4,8],neo_ethereum_asset:8,neo_usd:4,neos_btc:9,never:2,newer:2,nice:[5,15],nmc_btc:9,non:6,none:[1,4,7,13],nor:4,normal:11,note:1,note_btc:9,notebook:1,noth:6,notic:4,notion:4,novemb:10,now:[1,2,4,6,10,11,14],number:[1,2,4,6,10,11],numer:6,numpi:[1,3,4,6,10,12],nvalu:4,nxc_btc:9,nxt_btc:9,nxt_usdt:9,nxt_xmr:9,observ:6,obtain:[1,4],occur:[1,8],off:12,offer:1,offset:4,ohlc:1,ohlcv:[4,11],older:2,omg_btc:9,omg_eth:9,omni:9,omni_btc:9,onc:[1,2,4,6,7,10],one_day_in_minut:4,onli:[0,1,2,3,4,5,6,10,13,15],open:[1,3,4,6,7,11,13],openssl:6,oper:6,operatbl:6,opt:4,optim:1,option:[1,2,6,13],order_id:1,order_target_perc:[1,4],order_target_valu:[4,7],ordered_pip:3,org:[4,10],organ:1,origin:[1,4,10],osx:10,other:[1,2,4,6,9,10,13],otherwis:6,our:[1,3,4,5,6,10,14,15],out:[1,2,3,4,5,6,7,10,15],outdat:6,outlin:6,output:[1,2,7],outstand:[4,7],overcom:9,overfit:1,overrid:[6,10],overview:1,overwhelm:1,own:[2,4,6,8],p_r:4,p_std:4,packag:[1,6,7],pacman:6,page:[3,6,10,11],pair:[1,4,7,8,9,11],pairon:4,panda:[1,2,4,5,12,15],paper:3,parent:6,pars:2,part:[1,2,4,6,8,14],partial:6,particular:[5,6,15],pasc_btc:9,pass:[1,2,4,7,10],password:10,past:[1,4],path:[2,4,6,11,13],pend:10,peopl:3,pep8:3,per:[1,2,4,11],percent:[1,4,7],percentag:[1,4],perf:[1,3,4],perform:[0,1,3,4,5,6,7,11,12,15],period:[3,4],permiss:[4,6],persist:[1,4,11],pickl:[1,4],piec:[2,6],pink_btc:9,pip:[1,3],pkg:6,place:[1,4,7,11],platform:[6,11,12],pleas:[1,5,6,13,15],plot:[1,4,7,12],plt:[1,4,7],plu:13,png:7,point:[1,9,10],poloniex:[1,4,5,7,8,9,11,13,15],popul:10,portfolio:1,portfolio_optim:4,portfolio_valu:[1,4,7],pos_amount:[1,4],posit:[1,4,7,11],positon:4,possibl:[2,3,6],post:10,pot_btc:9,power:[1,4,7,12],ppc_btc:9,practic:[1,3],pre:[2,6],precis:11,predict:[1,8],prefer:6,prefix:3,preload:2,prepare_chunk:11,preprocess:10,prerequisit:[1,6],present:1,preserv:11,prevent:[2,6,10],previous:1,price_chang:[1,4],primari:6,print:[1,4,6,10],print_result:1,prior:[1,4],privileg:6,probabl:1,problem:[1,2,6,10],proce:6,proceed:6,process:[1,2,8],produc:[2,4,6],profit:[1,5,15],program:6,progress:2,project:[5,6,12,15],prompt:[1,6],proper:6,properli:[1,4,6,13],protect:0,protocol:[1,9],provid:[0,1,2,4,5,6,7,8,11,12,13,15],publish:10,pull:[3,10],pun:1,purchas:[4,7],purpos:[1,8],push:10,put:8,pycharm:10,pydata:[4,5,15],pyfolio:11,pypirc:10,pypitest:10,pyplot:[1,4,7],python2:[6,11],python3:11,python:[1,3,6,7],pytz:[4,13],quandl_api_kei:2,quandl_download_attempt:2,quantit:[7,12],queri:2,question:[1,3,5,15],quick:1,quickli:[4,14],quirk:6,quit:2,rads_btc:9,rais:3,ran:2,random:4,rang:[1,2,4],rate:4,rather:[1,6],ratio:4,raw:[2,6],rdylgn:4,read:[1,2,6],read_pickl:1,readi:10,real:[0,4],realist:[1,4],reason:[1,2,6],rebal:4,rebalanc:[1,4],rebalance_period:4,recal:1,receiv:[1,2],recent:[1,2,4,6],recogn:6,recommend:[2,6],reconstruct:1,record:[1,4,7,13],red:[1,4],redhat:6,redon:11,redownload:[2,7],reduc:11,refactor:3,referenc:8,refus:7,regard:[5,15],regardless:[6,7,8],regedit:6,regist:[0,2,7],registri:6,regular:6,rel:3,relat:3,relationship:2,releas:[3,6],reli:12,remain:11,rememb:6,remot:2,remov:[1,3,4,6,10,11],renam:10,rep:6,rep_btc:9,rep_eth:9,rep_usdt:9,replac:4,report:[1,3,6],repositori:[6,10,11],repres:[2,8],reproduc:2,request:[1,2,3,4],requir:[1,3],requirements_blaz:3,requirements_dev:3,requirements_doc:3,research:7,reserv:[4,7,9],reserve_ratio:[4,7],reserve_valu:[4,7],resolut:[1,4,5,11,13,15],resourc:[2,11],respect:[3,10,13],respons:2,rest:2,restart:11,restrict:6,restructuredtext:3,result:[1,2,4,6,7,8,13],results_arrai:4,results_fram:4,resum:4,retri:2,retriev:[4,7,11],rev:3,revert:3,review:[1,6],revis:1,rhel:6,ric_btc:9,ride:[4,14],right:6,risk:[1,4,11],roll:1,rollup:2,root:[3,10],routin:6,row:[1,4,7],rsi:4,rsi_overbought:4,rsi_oversold:4,rst:[3,10],run_algo:[1,4,13],run_algorithm:[1,4,8,13],runtim:1,safe:1,said:1,same:[1,2,4,6,7,8,10,11,13],sampl:[4,11],satisfi:6,save:[1,2,3,4,6,13],sbd_btc:9,sc_btc:9,scale:[7,11],scatter:[1,4],scientif:12,scikit:1,scipi:[4,5,6,15],scratch:6,script:[1,4,10,13],scriptnam:13,seamless:[5,15],search:6,second:[1,4,6,14],secret:8,section:[1,3,4,6,8,10,13],secur:[4,5,12,15],see:[0,1,2,4,5,6,8,13,15],seek:6,seen:4,select:[4,6],self:0,sell:[1,4,8,11,12,14],sell_df:[1,4],separ:[1,3,6,8,9],seper:8,seri:[1,4,14],seriou:1,server:[1,2,7,10],servic:2,session:6,set:[1,2,4,6,11],set_printopt:4,set_size_inch:[4,7],set_tick:[1,4],set_ylabel:[1,4,7],setup:[3,7,10],setuptool:6,seven:4,sever:[1,5,6,15],share:[1,5,15],sharex:[1,4,7],sharp:[1,4],ship:[2,6,10],short_exposur:1,short_mavg:[1,4],short_valu:1,short_window:[1,4],shorter:1,shorts_count:1,should:[0,1,2,3,6,8,10],shourc:2,show:[1,2,4,7],shown:2,sid:[2,7,11],signal:[2,4],signatur:2,signific:4,similar:[1,6,8],simpl:1,simple_univers:4,simpler:13,simplest:4,simpli:[1,3,4,6,13],simplic:4,simplifi:1,simultan:11,sinc:[1,4,6,7,10,13],singl:[2,4,6,11],size:[4,6,11],sjcx_btc:9,skeleton:10,skim:1,skip:[1,4],sklearn:[5,15],slighlti:4,slightli:6,smaller:6,smoothli:14,snip:7,snippet:13,softwar:[4,6],solut:6,solv:[1,2,6],some:[1,2,3,4,6,8,11,12],someon:6,someth:3,somewhat:1,sortino:[1,11],sourc:[1,2,3,4,6,10,12],space:7,special:8,specif:[1,4,11],specifi:[1,2,4,7,8,10],spend:1,spent:9,sphinx:[3,10],split:[1,2,4],splitext:[4,13],spring:12,sqliteadjustmentwrit:2,sqrt:4,ssl:11,stabl:[4,6],stai:10,standard:[2,3,4,9,11],star:4,start:[1,2,3,4,5,6,7,8,13,15],start_dat:[1,4],start_tim:4,starting_cash:[1,4,7],starting_exposur:[1,7],starting_valu:[1,7],stat:[4,11],state:[1,2,4,5,11,15],statist:[1,5,8,11,15],stats_util:[1,4],statsmodel:[5,15],statu:[4,8],std:4,stdev:4,stdout:1,steem_btc:9,steem_eth:9,still:[1,2,4,6,7],stock:[1,2],stop:[4,7,11],stop_pric:[4,7],storag:[1,8,11],store:[1,2,4,9,13],str:4,str_btc:9,str_usdt:9,straightforward:4,strat_btc:9,strategi:1,stream:1,strftime:4,strictli:[2,6],string:[2,4,7,10],strongli:6,sty:3,style:[3,4],subdirectori:2,subject:3,submit:[3,4],subplot:[1,4,7],subset:4,substanti:1,succe:10,succeed:7,success:[2,3],sudo:[1,6],suffici:6,suggest:3,sum:4,summar:6,summari:11,suppli:[1,7],support:[1,6,7],suppos:[1,7],suppress:4,sure:[4,6],surpris:1,suspect:3,symbol:[1,2,7],symbolnotfoundonexchang:9,sync:10,syntax:[10,11],sys_btc:9,system:[1,3,5,6,15],t_price:4,t_val:4,tag:10,take:[1,2,6,7,11,14],taken:10,talib:4,tar:10,tarbal:10,target:[1,8],target_hodl_ratio:[4,7],target_hodl_valu:[4,7],technic:[4,5,15],tempfil:4,templat:10,temporari:10,ten:1,tend:8,tens:3,term:1,termin:[1,4,6],test:[1,3,10,11,12],testpypi:10,tether:9,text:1,than:[1,2,3,6],thank:4,thei:[1,2,10,11,12],them:[1,3,6,10],therefor:10,therein:6,thi:[0,1,2,3,4,6,7,8,9,10,13,14],thing:14,third:[1,4],those:[1,3,4,10],though:2,three:[1,2,4,5,15],threshold:[4,7],through:[0,1,2,6,7],throughout:1,thu:[1,4,6,7],tick:4,tick_siz:7,ticker:2,time:[1,2,4,5,6,7,10,13,15],timedelta:4,timeperiod:4,timeseri:4,timestamp:[1,2,11],timestr:4,titl:10,tkagg:6,tminus_pric:4,tminus_v:4,to_csv:[4,13],to_datetim:[1,4],to_pydatetim:[1,4],todai:[4,10],togeth:1,token:[4,8,13],tolist:4,tool:[2,3,6,10,12],top:[1,5,10,15],total:2,toward:1,traceback:9,track:[1,3,4,11],tracker:1,traded_todai:4,trader:[1,12],trading_dai:[1,7],tradingalgorithm:[0,10],tradingcalendar:2,tradit:1,train:1,tran:[4,7],transact:[1,4,7,11],transaction:2,transaction_df:[1,4],transfer:9,transform:1,transit:[5,15],transpos:4,travi:10,treasuri:[4,7],treasury_period_return:[1,4,7],trend:1,tri:[1,5,15],trigger:4,tst:3,tupl:2,turn:10,tweak:1,twice:10,two:[1,4,5,6,13,14,15],twoargument:1,txt:[3,6,10],type:[4,6,10],typo:3,ubuntu:[1,6],uncompress:11,under:[1,2,4,10],underli:1,underlin:10,underscor:9,understand:[1,6],undesir:0,unexpect:6,unit:[1,9,11],univers:1,unknown:7,unless:4,unlik:2,unpack:6,unregist:0,unresolv:11,untar:2,until:[1,4],unus:3,updat:1,upgrad:[6,10],upper:[1,4],upward:1,url:10,usag:1,usd:[1,4,7,9],usdt:[4,9,13],usdt_btc:7,usdt_btc_benchmark:7,user:[1,2,4,5,6,7,9,10,15],usernam:10,usr:4,usual:1,utc:[1,4,13],utilit:13,valid:11,valu:[1,4,6,7,8,11],vari:[4,6,13],variabl:[1,2,4,7,13],varianc:4,varieti:13,variou:[1,2,4],varnam:1,vcforpython27:6,venv:6,veri:[1,2,4,6,7,10],verifi:[6,10],versatil:13,version:[1,6,10],via:[1,6,7,9],via_btc:9,viabl:9,victori:9,video:11,view:[3,10],virtual:6,virtualenvwrapp:3,visit:[4,5,15],visual:[1,4,5,6,15],volatil:4,volum:[1,4,5,7,9,11,13,15],volumeshareslippag:7,vrc_btc:9,vtc_btc:9,wai:[1,2,4,5,6,7,15],wait:[1,4],want:[1,2,3,4,7,9],warn:[7,10,11],warranti:4,wave:[4,14],web:10,weight:4,welcom:3,well:[1,2,5,6,15],were:[3,4,10],what:[1,3,4,6,8,10],whatev:2,whatsnew:10,wheel:[6,10],when:[0,1,2,3,4,6,8,10,14],where:[1,2,3,4,5,6,8,9,13,14,15],which:[1,2,3,4,6,7,8,10,11,13],whitepap:[5,12,15],whitespac:3,who:3,whole:1,why:3,width:10,win:10,window:1,within:[6,7],without:[2,4,6,7,8,11],workaround:11,world:1,wors:1,worth:1,would:[1,2,4,6,10],wouldlik:1,wrap:10,writ:4,write:1,writerow:13,written:[1,2,5,9,15],wrong:9,www:[4,8],xbc_btc:9,xbt:8,xcp_btc:9,xem_btc:9,xlabel:4,xmr_btc:9,xmr_usdt:[4,9],xpm_btc:9,xrang:4,xrp_btc:9,xrp_usdt:9,xvc_btc:9,yahoo_equ:2,yaxi:[1,4],year:10,yet:1,ylabel:4,yml:[6,11],you:[1,2,3,4,5,6,7,9,10,13,15],your:[1,2,3,4,5,6,7,8,10,12,13,15],yourself:3,yum:6,zec_btc:9,zec_eth:9,zec_usdt:9,zec_xmr:9,zero:[3,4],ziplin:[0,2,3,5,10,12,15],zipline_root:[2,10],zlib:6,zrx_btc:9,zrx_eth:9},titles:["API Reference","Catalyst Beginner Tutorial","Data Bundles","Development Guidelines","Example Algorithms","Features","Install","Catalyst & Jupyter Notebook","Live Trading","Naming Convention","Release Process","Release Notes","Resources","Utilities","Videos","Features"],titleterms:{"3rd":12,"__version__":10,"default":2,"function":0,"new":2,access:1,adjustment_writ:2,algorithm:[0,1,4,7,8],amazon:6,ami:6,api:[0,12],asset:0,asset_db_writ:2,authent:8,avail:2,averag:[1,4],backtest:[0,2,14],basic:1,bdist:10,beginn:1,branch:3,btc:4,bug:11,bui:4,build:11,built:0,bundl:[0,2],cach:[0,2],calendar:[0,2],cancel:0,catalyst:[1,7],command:[0,1],commiss:0,commit:[3,10],conda:[6,10],content:5,contribut:3,control:0,convent:9,creat:3,cross:1,crossov:4,csv:13,currenc:8,daily_bar_writ:2,data:[0,1,2,13],dev1:11,dev2:11,dev3:11,dev4:11,dev5:11,dev6:11,dev7:11,dev8:11,dev9:11,develop:3,discov:2,doc:3,docstr:3,document:[10,11],dual:[1,4],end_sess:2,engin:0,environ:[2,3],exampl:[1,4],exchang:8,extract:13,factor:0,factori:2,featur:[5,15],file:[10,13],first:1,fix:11,format:3,get:6,git:3,gnu:6,guidelin:3,help:6,histori:1,hodl:4,ingest:[1,2],instal:[6,7,14],interfac:1,jupyt:7,line:[0,1],linux:6,live:[8,14],loader:0,maco:[6,14],market:13,matplotlib:6,mean:4,messag:3,metadata:0,minute_bar_writ:2,mirror:2,miscellan:0,model:0,move:[1,4],name:9,next:[1,10],note:[6,10,11],notebook:7,object:0,old:2,optim:4,order:0,output:13,output_dir:2,over:1,overview:4,packag:10,paramet:0,parti:12,pip:6,pipelin:0,polici:0,portfolio:4,previou:1,price:1,process:10,pypi:10,python:10,quandl:2,quantopian:2,reader:0,refer:0,relat:12,releas:[10,11],requir:6,resourc:12,revers:4,run:[0,1,2,7],schedul:0,sdist:10,show_progress:2,simpl:4,simul:0,slippag:0,start_sess:2,step:1,strategi:14,structur:3,stub:10,support:8,symbol:8,tabl:5,trade:[0,8,14],troubleshoot:6,tutori:1,univers:4,updat:10,upload:10,util:[0,13],version:11,video:14,virtualenv:6,wiki:2,window:[6,14],work:1,write:2,writer:0,yahoo:2}}) \ No newline at end of file diff --git a/utilities.html b/utilities.html index 556020a0..b2f10366 100644 --- a/utilities.html +++ b/utilities.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/videos.html b/videos.html index 1b46e168..e18e809c 100644 --- a/videos.html +++ b/videos.html @@ -127,6 +127,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization
  • diff --git a/welcome.html b/welcome.html index 9aead345..d1cf30fe 100644 --- a/welcome.html +++ b/welcome.html @@ -125,6 +125,7 @@
  • Buy and Hodl Algorithm
  • Dual Moving Average Crossover
  • Mean Reversion Algorithm
  • +
  • Simple Universe
  • Portfolio Optimization