账户以及风险管理

账户和风险管理组件是一个非常有用的实用程序,可让您访问账户级别的现金、头寸、名义以及 pnl。账户在 BaseStrategy 中初始化,并在订单执行时相应更新。

首先,您需要在配置文件中添加"accounts"和"risk_formula"节点,其中"accounts"可以有多个"risk_formula",每个"risk_formula"可以包含多个具有自己权重的符号。其次,您可以在策略中为您的投资组合和风险管理指定(可选)"risk_id"、"max_notional"、"max_portfolio_notional"和"max_risk"。

下面是跨交易所套利的例子:

{
    "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":[
    ]
    [
    ],
    "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}]]                             
    ]
}