Metadata-Version: 2.4
Name: msci.sdk
Version: 1.34.0
Summary: Provides easy interface for users to integrate MSCI APIs, content and data into their own choice of platform.
Home-page: https://developer.msci.com/code-libraries/msci-python-sdk
Author: MSCI
Author-email: msci_sdk@msci.com
License: MSCI
Project-URL: Documentation, https://developer.msci.com/code-libraries/msci-python-sdk
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
Requires-Dist: sqlalchemy
Requires-Dist: requests
Requires-Dist: PyYAML
Requires-Dist: pandas
Requires-Dist: cachetools
Requires-Dist: cryptography
Provides-Extra: doc-build
Requires-Dist: jinja2==3.1.2; extra == "doc-build"
Requires-Dist: pydata-sphinx-theme==0.13.3; extra == "doc-build"
Requires-Dist: sphinx; extra == "doc-build"
Requires-Dist: msci.sphinx_tools; extra == "doc-build"
Dynamic: author
Dynamic: author-email
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

.. image:: https://www.msci.com/o/msci/images/msci-logo.png
    :width: 300
    :align: center
    :alt: MSCI


MSCI SDK Introduction
=====================

The MSCI Python SDK provides easy-to-use Python libraries that enable users to easily access and use MSCI APIs, content, and data into their own choice of platform.

The current version of the MSCI Python SDK provides access to the MSCI Optimization Service API, which is offered as part of MSCI Quantitative Investment Solutions (QIS). You can use the API to:

* upload user portfolios and tax lots in JSON format
* create tax aware optimization strategies
* retrieve statistics to evaluate performance of the strategy
* customize portfolios with various optimization methodologies

For more information about the MSCI Optimization Service API, see https://support.msci.com/msci-optimization-service.

Documentation
=============

For more details, see https://developer.msci.com/code-libraries/msci-python-sdk


Prerequisites
=============

* Python >= 3.8
* Access to MSCI Optimization Service API

For assistance in requesting access or confirming your access, contact your MSCI representative.


Installation
=============

.. code-block:: python

    pip install msci.sdk
    
    
Example
=======

Tax Optimization of portfolio using msci.sdk library. It demonstrates connection to the API, tax lot upload, rebalance, trade list generation, and review of results.

To download below example as notebook, kindly refer https://developer.msci.com/code-libraries/qis-tax-optimization-with-msci-sdk-python-notebooks


.. code-block:: python

    from msci.sdk.calc.portfolio import mos
    import pandas as pd

    # 1. Connect to the MOS API

    session = mos.MOSSession()
    session.ping()

    # 2. Load a portfolio using tax lots
    sample_data = pd.DataFrame([{"openTradeDate": "2016-12-30", "ISIN": "US02079K3059", "quantity": 1000, "openCostBasis": 792.45, "Asset Name": "ALPHABET INC"},
                                {"openTradeDate": "2016-12-30", "ISIN": "US0231351067", "quantity": 450, "openCostBasis": 749.87, "Asset Name": "AMAZON.COM INC"},
                                {"openTradeDate": "2016-12-30", "ISIN": "US30303M1027", "quantity": 900, "openCostBasis": 115.05, "Asset Name": "FACEBOOK INC"}])

    portfolio = session.upload_taxlot_portfolio(
        portfolio_id='MyTaxLotPortfolio', as_of_date='2021-12-31', asset_id='ISIN', taxlot_df=sample_data)

    # 3. Run the rebalance using the preferred strategy
    mytemplate = mos.TaxAdvantagedModelTrackingTemplate(analysis_date='2022-01-03',portfolio=portfolio)

    # 4. Executing the MSCI Optimizer session
    job = session.execute(profile=mytemplate)

    # Wait for the results to come back
    job.wait()

    # 5. Show the portfolio level results
    job.get_valuations()

    # Fetching the optimizer result
    opt_result = job.optimizer_result()

    # Portfolio Summary
    opt_result.get_portfolio_summary_detail()

    # Display portfolio and trade suggestions
    job.rebalanced_portfolio_on('2022-01-03')
    job.trade_suggestions_on('2022-01-03')


Support
=======

For questions about MSCI Python SDK or other MSCI resources mentioned here, please contact a salesperson at MSCI: https://www.msci.com/contact-us#/contact-sales, or use any of our support channels for existing MSCI clients.

Copyright
=========

Copyright 2023 MSCI Inc

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
