当前位置: 首页>>代码示例>>C++>>正文


C++ O2G2Ptr::getInstrument方法代码示例

本文整理汇总了C++中O2G2Ptr::getInstrument方法的典型用法代码示例。如果您正苦于以下问题:C++ O2G2Ptr::getInstrument方法的具体用法?C++ O2G2Ptr::getInstrument怎么用?C++ O2G2Ptr::getInstrument使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在O2G2Ptr的用法示例。


在下文中一共展示了O2G2Ptr::getInstrument方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: if

IO2GOfferRow *getOfferAndPrint(IO2GSession *session, const char *sInstrument)
{
    if (!session || !sInstrument)
        return NULL;

    IO2GOfferRow *resultOffer = NULL;
    O2G2Ptr<IO2GLoginRules> loginRules = session->getLoginRules();
    if (loginRules)
    {
        O2G2Ptr<IO2GResponse> response = loginRules->getTableRefreshResponse(Offers);
        if (response)
        {
            O2G2Ptr<IO2GResponseReaderFactory> readerFactory = session->getResponseReaderFactory();
            if (readerFactory)
            {
                O2G2Ptr<IO2GOffersTableResponseReader> reader = readerFactory->createOffersTableReader(response);
                for (int i = 0; i < reader->size(); ++i)
                {
                    O2G2Ptr<IO2GOfferRow> offer = reader->getRow(i);
                    if (offer)
                    {
                        if (strcmp(offer->getSubscriptionStatus(), O2G2::SubscriptionStatuses::ViewOnly) == 0)
                            printf("%s : [V]iew only\n", offer->getInstrument());
                        else if (strcmp(offer->getSubscriptionStatus(), O2G2::SubscriptionStatuses::Disable) == 0)
                            printf("%s : [D]isabled\n", offer->getInstrument());
                        else if (strcmp(offer->getSubscriptionStatus(), O2G2::SubscriptionStatuses::Tradable) == 0)
                            printf("%s : Available for [T]rade\n", offer->getInstrument());
                        else
                            printf("%s : %s\n", offer->getInstrument(), offer->getSubscriptionStatus());
                        if (strcmp(offer->getInstrument(), sInstrument) == 0)
                            resultOffer = offer.Detach();
                    }
                }
            }
        }
    }
    return resultOffer;
}
开发者ID:BryanFletcher,项目名称:FXCM,代码行数:38,代码来源:main.cpp

示例2: printTradingSettings

// Print trading settings of the first account
bool printTradingSettings(IO2GSession *session)
{
    O2G2Ptr<IO2GLoginRules> loginRules = session->getLoginRules();
    if (!loginRules)
    {
        std::cout << "Cannot get login rules" << std::endl;
        return false;
    }
    O2G2Ptr<IO2GResponse> accountsResponse = loginRules->getTableRefreshResponse(Accounts);
    if (!accountsResponse)
    {
        std::cout << "Cannot get response" << std::endl;
        return false;
    }
    O2G2Ptr<IO2GResponse> offersResponse = loginRules->getTableRefreshResponse(Offers);
    if (!offersResponse)
    {
        std::cout << "Cannot get response" << std::endl;
        return false;
    }
    O2G2Ptr<IO2GTradingSettingsProvider> tradingSettingsProvider = loginRules->getTradingSettingsProvider();
    O2G2Ptr<IO2GResponseReaderFactory> factory = session->getResponseReaderFactory();
    if (!factory)
    {
        std::cout << "Cannot create response reader factory" << std::endl;
        return false;
    }
    O2G2Ptr<IO2GAccountsTableResponseReader> accountsReader = factory->createAccountsTableReader(accountsResponse);
    O2G2Ptr<IO2GOffersTableResponseReader> instrumentsReader = factory->createOffersTableReader(offersResponse);
    O2G2Ptr<IO2GAccountRow> account = accountsReader->getRow(0);
    for (int i = 0; i < instrumentsReader->size(); ++i)
    {
        O2G2Ptr<IO2GOfferRow> instrumentRow = instrumentsReader->getRow(i);
        const char *sInstrument = instrumentRow->getInstrument();
        int condDistStopForTrade = tradingSettingsProvider->getCondDistStopForTrade(sInstrument);
        int condDistLimitForTrade = tradingSettingsProvider->getCondDistLimitForTrade(sInstrument);
        int condDistEntryStop = tradingSettingsProvider->getCondDistEntryStop(sInstrument);
        int condDistEntryLimit = tradingSettingsProvider->getCondDistEntryLimit(sInstrument);
        int minQuantity = tradingSettingsProvider->getMinQuantity(sInstrument, account);
        int maxQuantity = tradingSettingsProvider->getMaxQuantity(sInstrument, account);
        int baseUnitSize = tradingSettingsProvider->getBaseUnitSize(sInstrument, account);
        O2GMarketStatus marketStatus = tradingSettingsProvider->getMarketStatus(sInstrument);
        int minTrailingStep = tradingSettingsProvider->getMinTrailingStep();
        int maxTrailingStep = tradingSettingsProvider->getMaxTrailingStep();
        double mmr = tradingSettingsProvider->getMMR(sInstrument, account);
        std::string sMarketStatus = "unknown";
        switch (marketStatus)
        {
        case MarketStatusOpen:
            sMarketStatus = "Market Open";
            break;
        case MarketStatusClosed:
            sMarketStatus = "Market Close";
            break;
        }
        std::cout << "Instrument: " << sInstrument << ", Status: " << sMarketStatus << std::endl;
        std::cout << "Cond.Dist: ST=" << condDistStopForTrade << "; LT=" << condDistLimitForTrade << std::endl;
        std::cout << "Cond.Dist entry stop=" << condDistEntryStop << "; entry limit=" << condDistEntryLimit << std::endl;
        std::cout << "Quantity: Min=" << minQuantity << "; Max=" << maxQuantity
                << "; Base unit size=" << baseUnitSize << "; MMR=" << mmr << std::endl;

        double mmr2=0, emr=0, lmr=0;
        if (tradingSettingsProvider->getMargins(sInstrument, account, mmr2, emr, lmr))
        {
            std::cout << "Three level margin: MMR=" << mmr2 << "; EMR=" << emr
                    << "; LMR=" << lmr << std::endl;
        }
        else
        {
            std::cout << "Single level margin: MMR=" << mmr2 << "; EMR=" << emr
                    << "; LMR=" << lmr << std::endl;
        }
        std::cout << "Trailing step: " << minTrailingStep << "-" << maxTrailingStep << std::endl;
    }
    return true;
}
开发者ID:BryanFletcher,项目名称:FXCM,代码行数:77,代码来源:main.cpp


注:本文中的O2G2Ptr::getInstrument方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。