def fire_etf_orders(trades_df, side, now, strategy, apis, server, algo="echo"): for trades in trades_df.iterrows(): try: live_trade = Trade(trades[1].symbol, trades[1].posdifference, side, now, strategy) live_trade.submitOrder(apis, server, algo=algo) except: logging.warning("Trade failed for", trades[1].symbol)
def fire_orders(trades, side, now, strategy, apis, server, maxPosSize, maxPosValue, algo="charlie"): current_bp = int(float(apis.alpacaApi.get_account().buying_power)) succesful_trades = [] for trade in trades: try: postValue = maxPosValue posSize = maxPosSize #Setting max pos size. Either trade value is 5000 or 500 shares. Which ever is bigger. current_price = apis.alpacaApi.get_barset(trade, "1Min", limit=1).df.iloc[0, 3] if (current_price * posSize > postValue): posSize = int(maxPosValue / current_price) #Check buying power, if not enough brake loop. if (current_bp < current_price + posSize): logging.info("No buying power") break live_trade = Trade(trade, posSize, side, now, strategy) live_trade.submitOrder(apis, server, algo=algo) succesful_trades.append(live_trade) except: logging.warning("Trade failed for ", trade) return succesful_trades