From 0605fca115d906b5813d73cee648a6b425803258 Mon Sep 17 00:00:00 2001 From: Frederic Fortier Date: Wed, 3 Jan 2018 20:20:19 -0500 Subject: [PATCH] BLD: tested issue #111 --- catalyst/exchange/utils/stats_utils.py | 3 ++ catalyst/support/issue_126.py | 50 +++++++++++++++++--------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/catalyst/exchange/utils/stats_utils.py b/catalyst/exchange/utils/stats_utils.py index c31dcd5d..dd2d4899 100644 --- a/catalyst/exchange/utils/stats_utils.py +++ b/catalyst/exchange/utils/stats_utils.py @@ -196,6 +196,9 @@ def prepare_stats(stats, recorded_cols=list()): if recorded_cols is not None: for column in recorded_cols[:]: value = row_data[column] + if isinstance(value, pd.Series): + value = value.to_dict() + if type(value) is dict: for asset in value: if not isinstance(asset, TradingPair): diff --git a/catalyst/support/issue_126.py b/catalyst/support/issue_126.py index 3988c1f1..bb6435d1 100644 --- a/catalyst/support/issue_126.py +++ b/catalyst/support/issue_126.py @@ -2,33 +2,51 @@ from catalyst import run_algorithm from catalyst.api import order, record, symbol import pandas as pd +from catalyst.exchange.utils.stats_utils import get_pretty_stats + def initialize(context): - context.asset = symbol('btc_usdt') + context.assets = [symbol('eth_btc'), symbol('eth_usdt')] def handle_data(context, data): - order(context.asset, 1) + order(context.assets[0], 1) - price = data.current(context.asset, 'price') - record(btc=price) + prices = data.current(context.assets, 'price') + record(price=prices) pass def analyze(context, perf): + stats = get_pretty_stats(perf) + print(stats) pass if __name__ == '__main__': - run_algorithm( - capital_base=1000, - data_frequency='daily', - initialize=initialize, - handle_data=handle_data, - exchange_name='poloniex', - algo_namespace='buy_btc_polo_jh', - base_currency='usd', - analyze=analyze, - start=pd.to_datetime('2017-01-01', utc=True), - end=pd.to_datetime('2017-12-25', utc=True), - ) + live = True + if live: + run_algorithm( + capital_base=0.01, + initialize=initialize, + handle_data=handle_data, + exchange_name='poloniex', + algo_namespace='buy_btc_polo_jh', + base_currency='btc', + analyze=analyze, + live=True, + simulate_orders=True, + ) + else: + run_algorithm( + capital_base=1000, + data_frequency='daily', + initialize=initialize, + handle_data=handle_data, + exchange_name='poloniex', + algo_namespace='buy_btc_polo_jh', + base_currency='usd', + analyze=analyze, + start=pd.to_datetime('2017-01-01', utc=True), + end=pd.to_datetime('2017-12-25', utc=True), + )