Portfolio

Table of Contents

Description

Financial meaning

Portfolio refers to a collection of financial assets. Portfolios are held directly by investors and/or managed by financial professionals. Effective portfolio management involves diversification, asset allocation, and regular performance monitoring to optimize returns and manage risks. 

Platform abstraction

Portfolio in Finmars platform is a container for financial assets (cash (currency) & instruments) allocation.

Portfolio also is used in: 

Examples

User code Portfolio Type Name Short name Public name Notes First Transaction Date First Cash Flow Date Accounts Transaction types Responsibles Counterparties
obl01
Manual Bonds Bonds Bonds - 2022-12-01 2022-12-01



Portfolio has 2 attributes First Transaction Date and First Cash Flow Date which are used for performance calculations with workflow and performance report and the logic for them is defined below:

Logic for defining First Transaction Date & First Cash Flow Date based on complex transactions:

  1. Portfolio entity has 2 properties:

    1. first_transcation_date (name = First transaction date, value = null)

    2. first_cash_flow_date (name = First cash flow date, value = null)

  2. For complex transaction CRUD operations For each base transaction in the complex transaction:

    1. if Book

      1. if base transaction class == Cash-Inflow or Cash-Outflow

        1. if trade_date < first_cash_flow_date

          1. first_cash_flow_date = trade_date

      2. if trade_date < first_transcation_date

        1. first_transcation_date = trade_date

    2. if Rebook !!!

      1. if base transaction class == Cash-Inflow or Cash-Outflow

        1. if new trade_date < first_cash_flow_date

          1. first_cash_flow_date = trade_date

        2. else

          1. if old trade_date == first_cash_flow_date

            1. first_cash_flow_date = find new first_cash_flow_date

      2. if new trade_date < first_transcation_date

        1. first_transcation_date = trade_date

      3. else

        1. if old trade_date == first_transcation_date

          1. first_transcation_date = find new first_transcation_date

    3. if Delete

      1. if base transaction class == Cash-Inflow or Cash-Outflow

        1. if trade_date == first_cash_flow_date

          1. if true first_cash_flow_date = find new first_cash_flow_date

      2. if trade_date == first_transcation_date

        1. if true first_transcation_date = find new first_transcation_date

Cookbook

CRUD
Use Cases

F.A.Q.

API documentation


Revision #14
Created 15 July 2024 19:23:01 by Sergei Osipov
Updated 4 May 2025 17:47:11 by Anna Kostiv