gpt4 book ai didi

c++ - 彭博 API 参数传递

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:09:34 32 4
gpt4 key购买 nike

作为我下载许多期权波动率项目的一部分,我之前的代码将给定股票的 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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com