Пример #1
0
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)
Пример #2
0
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