作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
作为我下载许多期权波动率项目的一部分,我之前的代码将给定股票的 CHAIN_TICKERS 保存在文本文件 (BB.txt) 中,格式如下:
MSFT US 01/20/17 C23
MSFT US 01/20/17 C25
MSFT US 01/20/17 C30
MSFT US 01/20/17 C33
MSFT US 01/20/17 C35
MSFT US 01/20/17 C38
MSFT US 01/20/17 C40
MSFT US 01/20/17 C43
MSFT US 01/20/17 C45
MSFT US 01/20/17 C47
MSFT US 01/20/17 C50
MSFT US 01/20/17 C52.5
MSFT US 01/20/17 C55
MSFT US 01/20/17 C57.5
MSFT US 01/20/17 C60
MSFT US 01/20/17 C65
MSFT US 01/20/17 C70
首先,我定义了一个结构来保存不同选项的相关数据:
struct option{
string ticker;
char date;
double strike;
double vol;
} options [1000];
现在,为了进一步分析,我想下载这些期权的波动率。目前我只是逐行读取文本文件,然后将代码传递给 for 循环内的下载函数。
std::fstream myfile("BB.txt");
int linenumber = 0;
string linetext;
string ticker;
while (std::getline(myfile, linetext))
{
options[linenumber].ticker = linetext;
linenumber++;
}
for (int i = 0; i < linenumber; i++)
{
std::cout << options[i].ticker << endl;
ticker = options[i].ticker;
try
{
example.run2(ticker);
}
catch (Exception &e)
{
std::cerr << "Library Exception!!!" << e.description() << std::endl;
}
}
我的 run2 的代码如下所示:
public void run2(string ticker)
{ ...
request.append("securities", ticker);
request.append("fields", "IVOL_MID");
CorrelationId cid(this);
session.sendRequest(request, cid);
(followed by the eventhandler processMessage taken from the SimpleRefDataOverrideExample.cpp of the Bloomberg API)
现在,问题在于:
request.append("securities", ticker);
错误 C2664:无法将参数 2 从“std::string”转换为“bool”,因此附加值似乎必须是 bool 值?这似乎让我感到困惑,因为之前我总是在该字段中输入诸如“MSFT US EQUITY”之类的文本而没有任何问题。
那么,如何将我的代码传递给 run2 函数,以便下载相应代码的波动率?
(另外,有没有比将我所有的 CHAIN_TICKERS 导出到文本文件然后重新导入更简单的方法?)
最佳答案
有文档blpapi::Request
here .没有 blpapi::Request::append
的重载在第二个位置采用 std::string
。关于 bool
的提示只是您的编译器试图猜测您可能指的是哪种重载。
尝试使用 ticker.c_str()
使用 const char *
的版本:
request.append("securities", ticker.c_str());
关于c++ - 彭博 API 参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28409086/
我是一名优秀的程序员,十分优秀!