{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Hedging using Machine Learning Techniques" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summary" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As systematic and macro factors dominate the investment landscape, we see equity investors move away from one-size-fits all hedging strategies to more precise ways to separate intended and unintended risks and isolate alpha. \n", "\n", "If you are a fundamental equity investor, take concentrated positions in single names, or have significant idiosyncratic risk that is otherwise difficult to hedge, this highly customizable correlation-based approach is for you. Traditional factor based hedges can fare poorly when most of the risk cannot be explained by factors – in those instances this approach can allow for much better correlation to offset risk as well as a number of ways to guide which names get included while ensuring a high level of tradability by controlling liquidity and borrow costs.\n", "\n", "In this notebook, we will showcase how to leverage this approach through one of our most popular tools, the [marquee performance hedger](https://marquee.gs.com/s/hedging/performance).\n", "\n", "Additionally, based on feedback we have received from top users, we are adding the ability to easily run and compare hedges in python through [gs quant](https://developer.gs.com/docs/gsquant/) as well as new modeling techniques, two of whose key advantages are:\n", "\n", "* **Increased accuracy** through reduced overfitting\n", "* **More control** by allowing the user to specify how concentrated or diversified the hedge portfolio is\n", "\n", "\n", "The contents of this notebook are as follows:\n", "* [1 - Let's get started with gs quant](#1---Let's-get-started-with-gs-quant)\n", "* [2 - Calculate a hedge](#2---Calculate-a-hedge)\n", "* [3 - Increased accuracy](#3---Increased-accuracy)\n", "* [4 - More control](#4---More-control)\n", "* [5 - Customizing your optimization](#5---Customizing-your-optimization)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1 - Let's get started with gs quant\n", "Start every session with authenticating with your unique client id and secret. If you don't have a registered app, create one [here](https://marquee.gs.com/s/developer/myapps/register). `run_analytics` scope is required for the functionality covered in this example." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from gs_quant.session import GsSession, Environment\n", "GsSession.use(client_id=None, client_secret=None, scopes=('run_analytics',))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below, you can set the logging level of the notebook. By default, we set the level to INFO to show informative statements about the hedging functions." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import logging\n", "\n", "logging.basicConfig(level=logging.INFO)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2 - Calculate a Hedge" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's start by calculating a hedge for Amazon with some starting parameters.\n", "\n", "To leverage the (machine learning-based) techniques in the enhanced performance hedger, please ensure:\n", "* `use_machine_learning` parameter is true\n", "\n", "Note: the hedge result utilizes optimal values found (using grid search) for the ML parameters, which are known as Concentration (`lasso_weight`) and Diversity (`ridge_weight`)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | country | \n", "name | \n", "transactionCost | \n", "sector | \n", "shares | \n", "assetId | \n", "bbid | \n", "currency | \n", "industry | \n", "marginalCost | \n", "advPercentage | \n", "price | \n", "weight | \n", "borrowCost | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "United States | \n", "Adobe Inc | \n", "20.263329 | \n", "Information Technology | \n", "-832.032329 | \n", "MA4B66MW5E27U9XPV7X | \n", "ADBE UW | \n", "USD | \n", "Software | \n", "0.261326 | \n", "0.000149 | \n", "310.00 | \n", "-0.012897 | \n", "40 | \n", "
1 | \n", "United States | \n", "Autodesk Inc | \n", "20.628566 | \n", "Information Technology | \n", "-1387.449548 | \n", "MA4B66MW5E27U9XPVBT | \n", "ADSK UW | \n", "USD | \n", "Software | \n", "0.214601 | \n", "0.000393 | \n", "149.96 | \n", "-0.010403 | \n", "40 | \n", "
2 | \n", "United States | \n", "Akamai Technologies Inc | \n", "26.810420 | \n", "Information Technology | \n", "-4678.311848 | \n", "MA4B66MW5E27U9XPVVM | \n", "AKAM UW | \n", "USD | \n", "IT Services | \n", "0.564298 | \n", "0.002052 | \n", "89.98 | \n", "-0.021048 | \n", "40 | \n", "