I wrote this Python code that processes all the subscribe functions as outlined in Real-Time Stock Pricing Data. This code will simply decode and print all of the data coming from Alpaca’s real-time price data subscription. You can use this as a template to format incoming data and to process for trades. Here are some samples of the output:
Here are the exchange codes and conditions that it decodes:
exchange_codes = {
"A": "NYSE American (AMEX)",
"B": "NASDAQ OMX BX",
"C": "National Stock Exchange",
"D": "FINRA ADF",
"E": "Market Independent",
"H": "MIAX",
"I": "International Securities Exchange",
"J": "Cboe EDGA",
"K": "Cboe EDGX",
"L": "Long Term Stock Exchange",
"M": "Chicago Stock Exchange",
"N": "New York Stock Exchange",
"P": "NYSE Arca",
"Q": "NASDAQ OMX",
"S": "NASDAQ Small Cap",
"T": "NASDAQ Int",
"U": "Members Exchange",
"V": "IEX",
"W": "CBOE",
"X": "NASDAQ OMX PSX",
"Y": "Cboe BYX",
"Z": "Cboe BZX",
}
trade_conditions_cts = {
"@": "",
" ": "Regular Sale",
"B": "Average Price Trade",
"C": "Cash Trade (Same Day Clearing)",
"E": "Automatic Execution",
"F": "Inter-market Sweep Order",
"H": "Price Variation Trade",
"I": "Odd Lot Trade",
"K": "Rule 127 (NYSE only) or Rule 155 (NYSE MKT only)",
"L": "Sold Last (Late Reporting)",
"M": "Market Center Official Close",
"N": "Next Day Trade (Next Day Clearing)",
"O": "Market Center Opening Trade",
"P": "Prior Reference Price",
"Q": "Market Center Official Open",
"R": "Seller",
"T": "Extended Hours Trade",
"U": "Extended Hours Sold (Out Of Sequence)",
"V": "Contingent Trade",
"X": "Cross Trade",
"Z": "Sold (Out Of Sequence)",
"4": "Derivatively Priced",
"5": "Market Center Reopening Trade",
"6": "Market Center Closing Trade",
"7": "Qualified Contingent Trade",
"8": "Reserved",
"9": "Corrected Consolidated Close Price as per Listing Market",
}
trade_conditions_utdf = {
"@": "Regular Sale",
"A": "Acquisition",
"B": "Bunched Trade",
"C": "Cash Sale",
"D": "Distribution",
"E": "Placeholder",
"F": "Intermarket Sweep",
"G": "Bunched Sold Trade",
"H": "Price Variation Trade",
"I": "Odd Lot Trade",
"K": "Rule 155 Trade (AMEX)",
"L": "Sold Last",
"M": "Market Center Official Close",
"N": "Next Day",
"O": "Opening Prints",
"P": "Prior Reference Price",
"Q": "Market Center Official Open",
"R": "Seller",
"S": "Split Trade",
"T": "Form T",
"U": "Extended trading hours (Sold Out of Sequence)",
"V": "Contingent Trade",
"W": "Average Price Trade",
"X": "Cross Trade",
"Y": "Yellow Flag Regular Trade",
"Z": "Sold (out of sequence)",
"1": "Stopped Stock (Regular Trade)",
"4": "Derivatively priced",
"5": "Re-Opening Prints",
"6": "Closing Prints",
"7": "Qualified Contingent Trade (QCT)",
"8": "Placeholder For 611 Exempt",
"9": "Corrected Consolidated Close (per listing market)",
}
quote_conditions_cqs = {
"A": "Slow Quote Offer Side",
"B": "Slow Quote Bid Side",
"E": "Slow Quote LRP Bid Side",
"F": "Slow Quote LRP Offer Side",
"H": "Slow Quote Bid And Offer Side",
"O": "Opening Quote",
"R": "Regular Market Maker Open",
"W": "Slow Quote Set Slow List",
"C": "Closing Quote",
"L": "Market Maker Quotes Closed",
"U": "Slow Quote LRP Bid And Offer",
"N": "Non Firm Quote",
"4": "On Demand Intra Day Auction",
}
# Quote condition dictionaries for CQS and UQDF plans
cqs_quote_conditions = {
"A": "Slow Quote Offer Side",
"B": "Slow Quote Bid Side",
"E": "Slow Quote LRP Bid Side",
"F": "Slow Quote LRP Offer Side",
"H": "Slow Quote Bid And Offer Side",
"O": "Opening Quote",
"R": "Regular Market Maker Open",
"W": "Slow Quote Set Slow List",
"C": "Closing Quote",
"L": "Market Maker Quotes Closed",
"U": "Slow Quote LRP Bid And Offer",
"N": "Non Firm Quote",
"4": "On Demand Intra Day Auction",
}
uqdf_quote_conditions = {
"A": "Manual Ask Automated Bid",
"B": "Manual Bid Automated Ask",
"F": "Fast Trading",
"H": "Manual Bid And Ask",
"I": "Order Imbalance",
"L": "Closed Quote",
"N": "Non Firm Quote",
"O": "Opening Quote Automated",
"R": "Regular Two Sided Open",
"U": "Manual Bid And Ask Non Firm",
"Y": "No Offer No Bid One Sided Open",
"X": "Order Influx",
"Z": "No Open No Resume",
"4": "On Demand Intra Day Auction",
}