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}]]
]
}