c++ 福汇FIX API:每T周期取价格值

drnojrws  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(141)

我正在做一些测试的固定引擎样本的福汇。完整的代码是可用的here。有一个函数void FixApplication::SubscribeMarketData(),允许不断接收更新的一个特定的符号的市场。这里是什么样子:

// Subscribes to the EUR/USD trading security
void FixApplication::SubscribeMarketData()
{
    // Subscribe to market data for EUR/USD
    string request_ID = "EUR_USD_Request_";
    FIX44::MarketDataRequest request;
    request.setField(MDReqID(request_ID));
    request.setField(SubscriptionRequestType(
        SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES));
    request.setField(MarketDepth(0));
    request.setField(NoRelatedSym(1));

    // Add the NoRelatedSym group to the request with Symbol
    // field set to EUR/USD
    FIX44::MarketDataRequest::NoRelatedSym symbols_group;
    symbols_group.setField(Symbol("EUR/USD"));

    request.addGroup(symbols_group);

    // Add the NoMDEntryTypes group to the request for each MDEntryType
    // that we are subscribing to. This includes Bid, Offer, High, and Low
    FIX44::MarketDataRequest::NoMDEntryTypes entry_types;
    entry_types.setField(MDEntryType(MDEntryType_BID));
    request.addGroup(entry_types);
    entry_types.setField(MDEntryType(MDEntryType_OFFER));
    request.addGroup(entry_types);
    entry_types.setField(MDEntryType(MDEntryType_TRADING_SESSION_HIGH_PRICE));
    request.addGroup(entry_types);
    entry_types.setField(MDEntryType(MDEntryType_TRADING_SESSION_LOW_PRICE));
    request.addGroup(entry_types);

    Session::sendToTarget(request, sessionID(true));
}

有没有办法告诉FIX服务器我只想每5分钟接收一次更新?或者我应该实现一个功能,捕捉连续的数据流,并每5分钟输出一个数据?
我已经试着在FIX引擎中搜索一个参数,我可以修改它来返回一个T周期的数据流,但是我没有找到任何东西。如果它存在,我宁愿使用它,而不是创建一个函数来处理滴答流。

dced5bon

dced5bon1#

您建议的功能必须是交易对手特定的功能,可能需要自定义字段。我不认为标准的FIX字典提供了支持此功能的字段。
因此,是的,您假设的客户端解决方案将是可行之道。

相关问题