investfly.models.PortfolioModels

class PositionType(builtins.str, enum.Enum):

PositionType Enum

LONG = LONG
SHORT = SHORT
CLOSE = CLOSE
class TradeType(builtins.str, enum.Enum):

Trade Type Enum

BUY = BUY
SELL = SELL
SHORT = SHORT
COVER = COVER
class OrderType(builtins.str, enum.Enum):

Order Type Enum

MARKET_ORDER = <OrderType.MARKET_ORDER: 'MARKET_ORDER'>
LIMIT_ORDER = <OrderType.LIMIT_ORDER: 'LIMIT_ORDER'>
STOP_ORDER = <OrderType.STOP_ORDER: 'STOP_ORDER'>
ONE_CANCEL_OTHER = <OrderType.ONE_CANCEL_OTHER: 'ONE_CANCEL_OTHER'>
CUSTOM_CONDITION = <OrderType.CUSTOM_CONDITION: 'CUSTOM_CONDITION'>
class Broker(builtins.str, enum.Enum):

Broker Type Enum

TRADIER = TRADIER
INVESTFLY = INVESTFLY
TASTYTRADE = TASTYTRADE
ALPACA = ALPACA
BACKTEST = BACKTEST
OANDA = OANDA
COINBASE = COINBASE
@dataclass
class TradeOrder:

A class that represents a Trade Order

TradeOrder( security: investfly.models.MarketData.Security, tradeType: TradeType, orderType: OrderType = <OrderType.MARKET_ORDER: 'MARKET_ORDER'>, quantity: float | None = None, maxAmount: float | None = None, limitPrice: float | None = None)
tradeType: TradeType
orderType: OrderType = <OrderType.MARKET_ORDER: 'MARKET_ORDER'>
quantity: float | None = None
maxAmount: float | None = None
limitPrice: float | None = None
def toDict(self) -> Dict[str, Any]:
@dataclass
class OrderStatus:

Trade Order Status

OrderStatus(orderId: int, status: str, message: str | None = None)
orderId: int
status: str
message: str | None = None
@staticmethod
def fromDict(jsonDict: Dict[str, Any]) -> OrderStatus:
@dataclass
class PendingOrder(TradeOrder):
PendingOrder( security: investfly.models.MarketData.Security, tradeType: TradeType, orderType: OrderType = <OrderType.MARKET_ORDER: 'MARKET_ORDER'>, quantity: float | None = None, maxAmount: float | None = None, limitPrice: float | None = None, orderId: str | None = None, status: str | None = None, scheduledDate: datetime.datetime | None = None)
orderId: str | None = None
status: str | None = None
scheduledDate: datetime.datetime | None = None
@staticmethod
def fromDict(jsonDict: Dict[str, Any]) -> Any:
@dataclass()
class Balances:
Balances( buyingPower: float, cashBalance: float, currentValue: float, initialAmount: float | None = None)
buyingPower: float
cashBalance: float
currentValue: float
initialAmount: float | None = None
@staticmethod
def fromDict(jsonDict: Dict[str, Any]) -> Balances:
@dataclass
class CompletedTrade:
CompletedTrade( security: investfly.models.MarketData.Security, date: datetime.datetime, price: float, quantity: float, tradeType: TradeType)
date: datetime.datetime
price: float
quantity: float
tradeType: TradeType
@staticmethod
def fromDict( jsonDict: Dict[str, Any]) -> CompletedTrade:
@dataclass
class ClosedPosition:
ClosedPosition( security: investfly.models.MarketData.Security, position: PositionType, openDate: datetime.datetime, closeDate: datetime.datetime, openPrice: float, closePrice: float, quantity: float, profitLoss: float | None = None, percentChange: float | None = None)
position: PositionType
openDate: datetime.datetime
closeDate: datetime.datetime
openPrice: float
closePrice: float
quantity: float
profitLoss: float | None = None
percentChange: float | None = None
@staticmethod
def fromDict( jsonDict: Dict[str, Any]) -> ClosedPosition:
def toDict(self) -> Dict[str, Any]:
@dataclass
class OpenPosition:
OpenPosition( security: investfly.models.MarketData.Security, position: PositionType, avgPrice: float, quantity: float, purchaseDate: datetime.datetime, currentPrice: float | None = None, currentValue: float | None = None, profitLoss: float | None = None, percentChange: float | None = None)
position: PositionType
avgPrice: float
quantity: float
purchaseDate: datetime.datetime
currentPrice: float | None = None
currentValue: float | None = None
profitLoss: float | None = None
percentChange: float | None = None
@staticmethod
def fromDict( jsonDict: Dict[str, Any]) -> OpenPosition:
def toDict(self) -> Dict[str, Any]:
class Portfolio:
Portfolio( portfolioId: str, broker: Broker, balances: Balances)
portfolioId
broker
balances: Balances
openPositions: List[OpenPosition]
pendingOrders: List[PendingOrder]
completedTrades: List[CompletedTrade]
@dataclass
class PortfolioPerformance:
PortfolioPerformance( netReturn: float | None = None, annualizedReturn: float | None = None, profitFactor: float | None = None, totalTrades: int | None = None, winRatioPct: float | None = None, avgProfitPerTradePct: float | None = None, avgLossPerTradePct: float | None = None, meanReturnPerTradePct: float | None = None, sharpeRatioPerTrade: float | None = None, maxDrawdownPct: float | None = None, portfolioValues: Optional[List[investfly.models.CommonModels.DatedValue]] = None)
netReturn: float | None = None
annualizedReturn: float | None = None
profitFactor: float | None = None
totalTrades: int | None = None
winRatioPct: float | None = None
avgProfitPerTradePct: float | None = None
avgLossPerTradePct: float | None = None
meanReturnPerTradePct: float | None = None
sharpeRatioPerTrade: float | None = None
maxDrawdownPct: float | None = None
portfolioValues: Optional[List[investfly.models.CommonModels.DatedValue]] = None
def toDict(self) -> Dict[str, Any]:
@staticmethod
def fromDict( jsonDict: Dict[str, Any]) -> PortfolioPerformance: