investfly.models.marketdata

Market data models

@dataclass(frozen=True, eq=True)
class Security:

Class representing a security instrument that is traded in the market

Security( symbol: str, securityType: SecurityType)
symbol: str

Security Symbol

securityType: SecurityType

Security Type

@staticmethod
def createStock(symbol: str):
@staticmethod
def fromDict( jsonDict: Dict[str, Any]) -> Security:
def toDict(self) -> Dict[str, Any]:
class SecurityType(builtins.str, enum.Enum):

Enum representing Security Type (STOCK, ETF, CRYPTO, FOREX, OPTION)

STOCK = STOCK
ETF = ETF
CRYPTO = CRYPTO
FOREX = FOREX
OPTION = OPTION
@dataclass
class Quote:

Class representing Price Quote

Quote( symbol: str, date: datetime.datetime, lastPrice: float, prevClose: float | None = None, todayChange: float | None = None, todayChangePct: float | None = None, dayOpen: float | None = None, dayHigh: float | None = None, dayLow: float | None = None, volume: int | None = None)
symbol: str
date: datetime.datetime
lastPrice: float
prevClose: float | None = None
todayChange: float | None = None
todayChangePct: float | None = None
dayOpen: float | None = None
dayHigh: float | None = None
dayLow: float | None = None
volume: int | None = None
@staticmethod
def fromDict(jsonDict: Dict[str, Any]) -> Quote:
def toDict(self) -> Dict[str, Any]:
def toIndicatorValue( self, quoteField: QuoteField) -> investfly.models.common.DatedValue:
def toEODBar(self) -> Bar:
class QuoteField(builtins.str, enum.Enum):

Enum of all valid fields on Quote object

LASTPRICE = <QuoteField.LASTPRICE: 'LASTPRICE'>
DAY_OPEN = <QuoteField.DAY_OPEN: 'DAY_OPEN'>
DAY_HIGH = <QuoteField.DAY_HIGH: 'DAY_HIGH'>
DAY_LOW = <QuoteField.DAY_LOW: 'DAY_LOW'>
DAY_VOLUME = <QuoteField.DAY_VOLUME: 'DAY_VOLUME'>
PREV_DAY_CLOSE = <QuoteField.PREV_DAY_CLOSE: 'PREV_DAY_CLOSE'>
DAY_CHANGE = <QuoteField.DAY_CHANGE: 'DAY_CHANGE'>
DAY_CHANGE_PCT = <QuoteField.DAY_CHANGE_PCT: 'DAY_CHANGE_PCT'>
DAY_CHANGE_OPEN = <QuoteField.DAY_CHANGE_OPEN: 'DAY_CHANGE_OPEN'>
class Bar(builtins.dict):
symbol: str
barinterval: BarInterval
date: datetime.datetime
open: float
close: float
high: float
low: float
volume: int
class BarInterval(builtins.str, enum.Enum):

Enum to represent BarInterval

ONE_MINUTE = <BarInterval.ONE_MINUTE: 'ONE_MINUTE'>
FIVE_MINUTE = <BarInterval.FIVE_MINUTE: 'FIVE_MINUTE'>
FIFTEEN_MINUTE = <BarInterval.FIFTEEN_MINUTE: 'FIFTEEN_MINUTE'>
THIRTY_MINUTE = <BarInterval.THIRTY_MINUTE: 'THIRTY_MINUTE'>
SIXTY_MINUTE = <BarInterval.SIXTY_MINUTE: 'SIXTY_MINUTE'>
ONE_DAY = <BarInterval.ONE_DAY: 'ONE_DAY'>
def getMinutes(self) -> int:
class BarsGroup:
BarsGroup(barInterval: BarInterval)
barInterval
bars: List[Bar]
def addBars(self, bars: List[Bar]):
def addBar(self, bar: Bar):
def size(self) -> int:
@dataclass
class StockNews:
StockNews(date: datetime.datetime, title: str, description: str)
date: datetime.datetime
title: str
description: str
class FinancialField(builtins.str, enum.Enum):

Financial Fields supported by Invesfly

OUTSTANDING_SHARES = <FinancialField.OUTSTANDING_SHARES: 'OUTSTANDING_SHARES'>
MARKET_CAP = <FinancialField.MARKET_CAP: 'MARKET_CAP'>
REVENUE = <FinancialField.REVENUE: 'REVENUE'>
COST_OF_REVENUE = <FinancialField.COST_OF_REVENUE: 'COST_OF_REVENUE'>
GROSS_PROFIT = <FinancialField.GROSS_PROFIT: 'GROSS_PROFIT'>
OPERATING_EXPENSE = <FinancialField.OPERATING_EXPENSE: 'OPERATING_EXPENSE'>
OPERATING_INCOME = <FinancialField.OPERATING_INCOME: 'OPERATING_INCOME'>
NET_INCOME = <FinancialField.NET_INCOME: 'NET_INCOME'>
EPS = <FinancialField.EPS: 'EPS'>
CURR_ASSETS = <FinancialField.CURR_ASSETS: 'CURR_ASSETS'>
NON_CURR_ASSETS = <FinancialField.NON_CURR_ASSETS: 'NON_CURR_ASSETS'>
ASSETS = <FinancialField.ASSETS: 'ASSETS'>
CURR_LIABILITIES = <FinancialField.CURR_LIABILITIES: 'CURR_LIABILITIES'>
NON_CURR_LIABILITIES = <FinancialField.NON_CURR_LIABILITIES: 'NON_CURR_LIABILITIES'>
LIABILITIES = <FinancialField.LIABILITIES: 'LIABILITIES'>
LONG_TERM_DEBT = <FinancialField.LONG_TERM_DEBT: 'LONG_TERM_DEBT'>
EQUITY = <FinancialField.EQUITY: 'EQUITY'>
OPEARTING_CASH_FLOW = <FinancialField.OPEARTING_CASH_FLOW: 'OPEARTING_CASH_FLOW'>
INVESTING_CASH_FLOW = <FinancialField.INVESTING_CASH_FLOW: 'INVESTING_CASH_FLOW'>
FINANCING_CASH_FLOW = <FinancialField.FINANCING_CASH_FLOW: 'FINANCING_CASH_FLOW'>
NET_CASH_FLOW = <FinancialField.NET_CASH_FLOW: 'NET_CASH_FLOW'>
RETURN_ON_EQUITY = <FinancialField.RETURN_ON_EQUITY: 'RETURN_ON_EQUITY'>
RETURN_ON_ASSETS = <FinancialField.RETURN_ON_ASSETS: 'RETURN_ON_ASSETS'>
PRICE_TO_EARNINGS_RATIO = <FinancialField.PRICE_TO_EARNINGS_RATIO: 'PRICE_TO_EARNINGS_RATIO'>
PEG_RATIO = <FinancialField.PEG_RATIO: 'PEG_RATIO'>
PRICE_TO_SALES_RATIO = <FinancialField.PRICE_TO_SALES_RATIO: 'PRICE_TO_SALES_RATIO'>
PRICE_TO_BOOK_RATIO = <FinancialField.PRICE_TO_BOOK_RATIO: 'PRICE_TO_BOOK_RATIO'>
REVENUE_GROWTH = <FinancialField.REVENUE_GROWTH: 'REVENUE_GROWTH'>
EPS_GROWTH = <FinancialField.EPS_GROWTH: 'EPS_GROWTH'>
DEBT_EQUITY_RATIO = <FinancialField.DEBT_EQUITY_RATIO: 'DEBT_EQUITY_RATIO'>
CURRENT_RATIO = <FinancialField.CURRENT_RATIO: 'CURRENT_RATIO'>
GROSS_MARGIN = <FinancialField.GROSS_MARGIN: 'GROSS_MARGIN'>
PROFIT_MARGIN = <FinancialField.PROFIT_MARGIN: 'PROFIT_MARGIN'>
DIVIDEND_YIELD = <FinancialField.DIVIDEND_YIELD: 'DIVIDEND_YIELD'>