Hello World Programs for API Stock Trading

This page summarizes the projects mentioned and recommended in the original post on /r/Python

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • webull

    Unofficial APIs for Webull.

  • ### Alpaca #### # pip install alpaca_trade_api # Import Alpaca Package import alpaca_trade_api as tradeapi # Set API Keys api_key = '' secret_key = 'ENTER ALPACA SECRET KEY HERE' # Initialize Alpaca Trading Object alpaca_client = tradeapi.REST(api_key, secret_key, raw_data=True) # Validate Client Object Works print(alpaca_client.get_account()) # Submit a fractional trade (market order only) orderNumber = alpaca_client.submit_order(symbol='AAPL', qty=0.1234, side='buy', type='market', time_in_force='day')['client_order_id'] # Submit a limit order (fractional shares not allowed) orderNumber = alpaca_client.submit_order(symbol='AAPL', qty=5, side='sell', type='limit', limit_price='138.00', time_in_force='gtc')['client_order_id'] ### Tradier ### # pip install tradier-python # Import Tradier Package from tradier_python import TradierAPI # Set API Keys account_id = '' access_token = 'ENTER TRADIER ACCESS TOKEN HERE' # Initialize Tradier Trading Object tradier_client = TradierAPI(token=access_token, default_account_id=account_id, endpoint='https://api.tradier.com/') # Validate Client Object Works print(tradier_client.get_profile()) # Submit a limit order (fractional shares not allowed) orderNumber = order_number = tradier_client.order_equity(symbol='IBM', side='buy', quantity='10', order_type='limit', limit_price='138.00', duration='day' )['id'] ### Ally ### # pip install AllyInvestPy # Import Ally Package from ally import * # Set API Keys account_id = '' token_secret = 'ENTER ALLY TOKEN SECRET HERE' token_key = 'ENTER ALLY TOKEN KEY HERE' api_key = 'ENTER ALLY API KEY HERE' # Initialize Ally Trading Object ally_client = AllyAPI(account_id, token_secret, token_key, api_key, response_format="json") # Validate Client Object Works print(ally_client.get_account(id=account_id)) # Submit a limit order (fractional shares not allowed) orderInfo = ally_client.order_common_stock(ticker='APPL', shares=10, type='Limit', price='138.00', account_nbr=account_id, side='Buy') ### Webull ### # pip install webull # Import Webull Package from webull import webull # It's necessary to get and create below webull credentials file # Follow steps in this URL: https://github.com/tedchou12/webull/wiki/Workaround-for-Login # Tip: You need to enter trade token and do a search for "refreshToken" in order to locate and retrieve extInfo response fh = open('c:/temp/webull_credentials.json', 'r') credential_data = json.load(fh) fh.close() print(credential_data) print(credential_data['refreshToken']) print(credential_data['accessToken']) print(credential_data['tokenExpireTime']) print(credential_data['uuid']) # Initialize Webull Trading Object webull_client = webull() # Set Webull Tokens webull_client._refresh_token = credential_data['refreshToken'] webull_client._access_token = credential_data['accessToken'] webull_client._token_expire = credential_data['tokenExpireTime'] webull_client._uuid = credential_data['uuid'] # Refresh Webull Token to Extend Expiration for 1 Week n_data = webull_client.refresh_login() credential_data['refreshToken'] = n_data['refreshToken'] credential_data['accessToken'] = n_data['accessToken'] credential_data['tokenExpireTime'] = n_data['tokenExpireTime'] # Update credentials file with new values file = open('c:/temp/webull_credentials.json', 'w') json.dump(credential_data, file) file.close() # Validate Client Object Works print(webull_client.get_account_id()) # Submit Order (Fractional Shares Not Allowed) # Enter phone number, password, and trade token information webull_client.login('+1-2125551234', '') webull_client.get_trade_token('123456') # It's annoying but the two lines above, login() and get_trade_token() functions must be executed before EACH trade is placed orderNumber = webull_client.place_order(stock='AAPL', action='BUY', orderType='LMT', quant=10.0, price='138.00')['data']['orderId']

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts