Account and Risk Management

Account and risk management component is a very useful utility for you to access account-level cash, position, notional as well as pnl. Account is initialized in BaseStrategy and it will update accordingly when order is executed.

First you need to add "accounts" and "risk_formula" nodes in configuration file, where "accounts" could have multiple "risk_formula" and each "risk_formula" could contain multiple symbol with its own weight. Secondly, you could specify (optional) "risk_id", "max_notional", "max_portfolio_notional" and "max_risk" for your portfolio and risk management in your strategy.

Below is the cross-exchange arbitrage example:

{
    "instance": {
    },
    "risk_formulas": [
        ["Port_Risk_0", ["RiskFormula", {"components": [[["BTCBUSD", "BINANCE"], 1.0], [["BTCUSDSWAP", "FTX_SWAP"], 1.0]]}]], 
        ["Port_Risk_1", ["RiskFormula", {"components": [[["ETHBUSD", "BINANCE"], 1.0], [["ETHUSDSWAP", "FTX_SWAP"], 1.0]]}]]
    ],
    "accounts": [
        [10001, ["Account", {"risk_formulas": ["Port_Risk_0", "Port_Risk_1"], "id": 10001}]]
    ],        
    "symbol_info": {
    }, 
    "symbols": [
    ],
    "samplers": [
    ],
    "pricing_models": [
    ],
    "variables": [      
    ],
    "models": [
    ],
    "strategies": [
        ["BTCBUSD.BINANCE", ["CCArbLeg1Strategy", {"symbol": "BTCBUSD", "trade_market": "BINANCE", "account": 10001, "risk_id": 0, "max_notional": 2500, "max_portfolio_notional": 6000, "max_risk": 2000}]], 
        ["BTCUSDSWAP.FTX_SWAP", ["CCArbLeg2Strategy", {"symbol": "BTCUSDSWAP", "trade_market": "FTX_SWAP", "account": 10001, "risk_id": 0, "max_notional": 2500, "max_portfolio_notional": 6000, "max_risk": 2000}]], 
        ["ETHBUSD.BINANCE", ["CCArbLeg1Strategy", {"symbol": "ETHBUSD", "trade_market": "BINANCE", "account": 10001, "risk_id": 1, "max_notional": 2500, "max_portfolio_notional": 6000, "max_risk": 2000}]], 
        ["ETHUSDSWAP.FTX_SWAP", ["CCArbLeg2Strategy", {"symbol": "ETHUSDSWAP", "trade_market": "FTX_SWAP", "account": 10001, "risk_id": 1, "max_notional": 2500, "max_portfolio_notional": 6000, "max_risk": 2000}]]                             
    ]
}