def trade_on_weights(exchange, public_key, private_key, weights_dict, portfolio_trade_basement=0.01, min_BTC_prop=0.1, exchange_min_trade_BTC=0.001): ''' :param exchange: string :param public_key: string :param private_key: string :param weights_dict: Dictionary of weights with Currency_Ticker:0.XX pairs. :param portfolio_trade_basement: float in [0,1]. The minimum trade size in percentage points of portfolio size. :param min_BTC_prop: float in [0,1]. The minimum about of BTC to be in the portfolio. :param exchange_min_trade_BTC: float the minimum trade size of the exchange in BTC. Usually 0.001. :return: ''' api_object = instantiate_api_object(exchange, public_key, private_key) exchange_df = get_exchange_df(exchange, api_object) trade_df = plan_trades(exchange_df, weights_dict, portfolio_trade_basement=portfolio_trade_basement, min_BTC_prop=min_BTC_prop, exchange_min_trade_BTC=exchange_min_trade_BTC) trade_df = execute_trades(exchange, api_object, trade_df) return trade_df
def get_portfolio_val_BTC(exchange, public_key, private_key): ''' :param exchange: string, exchange name. Binance or Bittrex :param public_key: string :param private_key: string :return: float ''' api_object = instantiate_api_object(exchange, public_key, private_key) exchange_df = get_exchange_df(exchange, api_object) return exchange_df.amt_BTC.sum()
def get_exchange_df(exchange, api_object): ''' :param exchange: :param api_object :return: pandas dataframe with index ticker (string) and columns price(float), market(string, market form TICKERBTC), balance(float, amount available) ''' if exchange == 'Bittrex': from Packages.API.Bittrex_Helper.helper import get_exchange_df elif exchange == 'Binance': from Packages.API.Binance_helper.helper import get_exchange_df exchange_df = get_exchange_df(api_object) return expand_exchange_df(exchange_df)