Пример #1
0
def awaitMarketOpen():
    isOpen = tradeapi.get_clock().is_open
    while(not isOpen):
        clock = tradeapi.get_clock()
        openingTime = clock.next_open.replace(tzinfo=datetime.timezone.utc).timestamp()
        currTime = clock.timestamp.replace(tzinfo=datetime.timezone.utc).timestamp()
        timeToOpen = int((openingTime - currTime) / 60)
        print(str(timeToOpen) + " minutes till market open.")
        time.sleep(60)
        isOpen = tradeapi.get_clock().is_open
Пример #2
0
def run():
    orders=tradeapi.list_orders(status='open')
    for order in orders:
        tradeapi.cancel_order(order_id)

    # Wait for opening
    tAMO=threading.Thread(target=awaitMarketOpen)
    tAMO.start()
    tAMO.join()
    print('Mkt opened')

    # Check for signals every minute, making necessary trades
    while True:
        # Cover All positions 15 mins before Mkt close
        clock=tradeapi.get_clock()
        closingTime=clock.next_close.replace(tzinfo=datetime.timezone.utc).timestamp()
        currTime=clock.timestamp.replace(tzinfo=datetime.timezone.utc).timestamp()
        timeToClose=closingTime - currTime

        if timeToClose < (60*15):
            print("Mkt closing soon, Closing positions")
            positions = tradeapi.list_positions()

            for position in positions():
                if (position.side=='long'):
                    orderSide='sell'
                else:
                    orderSide='buy'

                qty=abs(int(float(position.qty)))
                resp_stock_orders=[]
                tSubmitOrder=threading.Thread(target=submitOrder(qty,position.symbol,
                                                                 orderSide,resp_stock_orders))
                tSubmitOrder.start()
                tSubmitOrder.join()

            # Run script again after market close for next trading day.
#             print("Sleeping until market close (15 minutes).")
#             time.sleep(60 * 15)

        else:
            # Trading signals activated
            tSystem=threading.Thread(target=OMS)
            tSystem.start()
            tSystem.join()
            time.sleep(60)
Пример #3
0
def check_Open_Positions_5m_before_close_and_exit():
    
    clock=tradeapi.get_clock()
    closingTime=clock.next_close.replace(tzinfo=datetime.timezone.utc).timestamp()
    currTime=clock.timestamp.replace(tzinfo=datetime.timezone.utc).timestamp()
    timeToClose=closingTime - currTime

    try:
        if timeToClose < (60*5):
            # List of all open positions
            porfolio=tradeapi.list_positions()

            print("Mkt closing soon, Closing positions")

            for position in portfolio:
                print('\n{} Shares of {}'.format(position.qty, position.symbol))
            
    except:
        if portfolio is Null:
            print ('No Open positions')
Пример #4
0
import alpaca_trade_api as tradeapi
import os

APCA_API_BASE_URL = os.environ['APCA_API_BASE_URL']
APCA_API_KEY_ID = os.environ['APCA_API_KEY_ID']
APCA_API_SECRET_KEY = os.environ['APCA_API_SECRET_KEY']

api = tradeapi.REST(base_url=APCA_API_BASE_URL,
                    key_id=APCA_API_KEY_ID,
                    secret_key=APCA_API_SECRET_KEY)

clock = tradeapi.get_clock()
print(f"The market id {'open' if clock.is_open else 'close'}")