关于使用Barra Optimizer API的方法:
首先要能正确安装Barra Optimizer,意思就是需要有一个key
使用Barra Optimizer API的顺序
- Create a Workspace
- Add Assets into Workspace
- 这部分首先是读取数据,读取数据有两种方式,一个是自己自定义数据,比如定义价格,因子的相关性矩阵,定义初始的价格和收益等等,
- 这个可以参考tutorial下的TutorialData.py,调取LoadAssetData()来读取;
- 另一种是使用官方提供的数据,即使用例如GEM3,USE4,以及CNE5等因子模型的数据,这个参考的是TutorialApp.py的Tutorial19使用的函数是LoadModelsDirectData,这样可以一波读取一堆数据。
- 这部分可以读取的资产包括,0 = Cash; 1 = Futures; 2 = Currency; 3 = Regular; 4 = Composite; 5 = Composite futures,其中要进行说明的是,Regular
- 这部分首先是读取数据,读取数据有两种方式,一个是自己自定义数据,比如定义价格,因子的相关性矩阵,定义初始的价格和收益等等,
- Construct initial Portfolio, Benchmark, and Trade Universe
- 对于免印花税和不免印花税的,专门有俩函数,前者使用AddTaxLot(),后者使用AddAsset()
- Universe和benchmark的portofolio可以从AddAsset()里得到,不需要给trade universe增加权重
- Define Risk Model
- 使用CreateRiskModel()来构造风险模型需要的几个矩阵,D,F,X
- 这里介绍一些这是什么,D,F,X
- 所需要读取的数据,有这么几类:
- 使用CreateRiskModel()来构造风险模型需要的几个矩阵,D,F,X
这里有一个需要注意的地方,如果文件的路径写错了,会报一个缺少FullCovariance文件的错误
- Prepare Optimization Case
- Run Optimization
- Multi-Period optimization
- Multi- Account optimization
Multiple-Account Optimization
Multiple-Account Optimization (or Multiple-Portfolio Optimization) simultaneously optimizes a number of accounts based on their individual account information as well as their joint market-impact transaction costs or any cross-account constraints. Barra Optimizer supports two variants of Multiple-Account Optimization as described in the following sections.
transaction cost function