Risk Management

Reto Trinkler edited this page Apr 2, 2017 · 6 revisions

Overview

Risk Management typically defines by parameters by which the fund manager can run the fund.

The idea behind these is to give a set of rules to encourage sensible behaviour and limited losses in the event that the fund manager tries to act in a way which is not desired by investors.

Lower Risk Fund Profile:

  • High diversity
    • Maximum position size 5% of fund AUM (Assets Under Management)
  • High liquidity
    • Position size should not exceed 10% of ADV (60 day Average Daily Volume)
    • Tokens invested in should have a minimum market capitalisation of $5m at investment
  • Stop loss
    • Impose a stop loss or drawdown limit. For example, if Fund loses X% in value due to performance, liquidate 50% of all positions and must be held in currency of fund denomination until performance comes back to a minimum acceptable level
    • The performance should be benchmarked against the fund denomination currency (ether)
  • Volatility
    • Define volatility level and performance target and benchmark performance against

Higher Risk Fund Profile

  • No limit to diversity
    • If fund manager wants to invest 100% of AUM in one token, he/she has complete freedom to do so and investors have to trust his/her judgement understanding the potential consequences
  • No limit to liquidity
    • Fund manager is free to invest in liquid or non-liquid assets as he /she chooses. The downside is that performance can be very volatile and easily manipulated if no
    • Fund manager may choose to define a minimum market capitalisation threshold to which he/she can invest.
  • Stop loss
    • Fund manager can define a much wider stop loss (or none at all)
  • Volatility
    • A much higher volatility level and performance target and benchmark performance can be defined

Technical Overview

Links Asset Pairs to Exchange(s). The Portfolio Manager can only trades these asset pairs at the linked against exchanges. In the quantity and time horizon specified in the Risk management module itself.

Protocol implementation according to:

pragma solidity ^0.4.8;

import '../dependencies/ERC20.sol';

/// @title RiskMgmtProtocol Contract
/// @author Melonport AG <team@melonport.com>
/// @notice This is to be considered as a protocol on how to access the underlying RiskMgmt Contract
contract RiskMgmtProtocol {

    /* Remark: Checks for:
     *  1) Liquidity: All positions have to be fairly simple to liquidate.
     *    E.g. Cap at percentage of 30 day average trading volume of this pair
     *  2) Market Impact: If w/in above liquidity restrictions, trade size also
     *    restricted to have market impact below certain threshold
     */
    function isExchangeMakePermitted(
        address onExchange,
        uint sell_how_much, ERC20 sell_which_token,
        uint buy_how_much,  ERC20 buy_which_token
    )
        returns (bool)
    {}

    /* Remark: Checks for:
     *  1) Liquidity: All positions have to be fairly simple to liquidate.
     *    E.g. Cap at percentage of 30 day average trading volume of this pair
     *  2) Market Impact: If w/in above liquidity restrictions, trade size also
     *    restricted to have market impact below certain threshold
     */
    function isExchangeTakePermitted(
        address onExchange,
        uint sell_how_much, ERC20 sell_which_token,
        uint buy_how_much,  ERC20 buy_which_token
    )
        returns (bool)
    {}
}