本文整理汇总了C++中O2G2Ptr::createValueMap方法的典型用法代码示例。如果您正苦于以下问题:C++ O2G2Ptr::createValueMap方法的具体用法?C++ O2G2Ptr::createValueMap怎么用?C++ O2G2Ptr::createValueMap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类O2G2Ptr
的用法示例。
在下文中一共展示了O2G2Ptr::createValueMap方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
IO2GRequest *joinToNewGroupRequest(IO2GSession *session, const char *sAccountID,
std::vector<std::string> &orderIDs, int iContingencyType)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
if (!requestFactory)
{
std::cout << "Cannot create request factory" << std::endl;
return NULL;
}
O2G2Ptr<IO2GValueMap> valuemap = requestFactory->createValueMap();
valuemap->setString(Command, O2G2::Commands::JoinToNewContingencyGroup);
valuemap->setInt(ContingencyGroupType, iContingencyType);
for (size_t i=0; i < orderIDs.size(); ++i)
{
O2G2Ptr<IO2GValueMap> valuemapChild = requestFactory->createValueMap();
valuemapChild->setString(OrderID, orderIDs[i].c_str());
valuemapChild->setString(AccountID, sAccountID);
valuemap->appendChild(valuemapChild);
}
O2G2Ptr<IO2GRequest> request = requestFactory->createOrderRequest(valuemap);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return NULL;
}
return request.Detach();
}
示例2:
IO2GRequest *createEntryOrderRequest(IO2GSession *session, const char *sOfferID, const char *sAccountID, int iAmount, double dRate, const char *sBuySell, const char *sOrderType, const char *expDate)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
if (!requestFactory)
{
std::cout << "Cannot create request factory" << std::endl;
return NULL;
}
O2G2Ptr<IO2GValueMap> valuemap = requestFactory->createValueMap();
valuemap->setString(Command, O2G2::Commands::CreateOrder);
valuemap->setString(OrderType, sOrderType);
valuemap->setString(AccountID, sAccountID);
valuemap->setString(OfferID, sOfferID);
valuemap->setString(BuySell, sBuySell);
valuemap->setInt(Amount, iAmount);
valuemap->setDouble(Rate, dRate);
valuemap->setString(CustomID, "EntryOrder");
if(strcmp(expDate, "") != 0)
{
valuemap->setString(TimeInForce, "GTD"); // 'Good till Date'
valuemap->setString(ExpireDateTime, expDate); // FIX UTCTimestamp format: "yyyyMMdd- HH:mm:ss.SSS" (milliseconds are optional)
}
O2G2Ptr<IO2GRequest> request = requestFactory->createOrderRequest(valuemap);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return NULL;
}
return request.Detach();
}
示例3:
IO2GRequest *createNetEntryOrderRequest(IO2GSession *session, const char *sOfferID,
const char *sAccountID, double dRate, const char *sBuySell, const char *sOrderType)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
if (!requestFactory)
{
std::cout << "Cannot create request factory" << std::endl;
return NULL;
}
O2G2Ptr<IO2GValueMap> valuemap = requestFactory->createValueMap();
valuemap->setString(Command, O2G2::Commands::CreateOrder);
valuemap->setString(OrderType, sOrderType);
valuemap->setString(AccountID, sAccountID);
valuemap->setString(OfferID, sOfferID);
valuemap->setString(BuySell, sBuySell);
valuemap->setString(NetQuantity, "Y");
valuemap->setDouble(Rate, dRate);
valuemap->setString(CustomID, "EntryOrder");
O2G2Ptr<IO2GRequest> request = requestFactory->createOrderRequest(valuemap);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return NULL;
}
return request.Detach();
}
示例4: updateMargins
// Update margin requirements
void updateMargins(IO2GSession *session, ResponseListener *responseListener)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
if (!requestFactory)
{
std::cout << "Cannot create request factory" << std::endl;
return;
}
O2G2Ptr<IO2GValueMap> valuemap = requestFactory->createValueMap();
valuemap->setString(Command, O2G2::Commands::UpdateMarginRequirements);
O2G2Ptr<IO2GRequest> request = requestFactory->createOrderRequest(valuemap);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return;
}
responseListener->setRequestID(request->getRequestID());
session->sendRequest(request);
if (!responseListener->waitEvents())
{
std::cout << "Response waiting timeout expired" << std::endl;
return;
}
O2G2Ptr<IO2GResponse> response = responseListener->getResponse();
if (response && response->getType() == MarginRequirementsResponse)
{
O2G2Ptr<IO2GResponseReaderFactory> responseFactory = session->getResponseReaderFactory();
if (responseFactory)
{
responseFactory->processMarginRequirementsResponse(response);
std::cout << "Margin requirements have been updated" << std::endl;
}
}
}
示例5:
IO2GRequest *createOTORequest(IO2GSession *session, const char *sOfferID, const char *sAccountID, int iAmount, double dRatePrimary, double dRateSecondary)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
if (!requestFactory)
{
std::cout << "Cannot create request factory" << std::endl;
return NULL;
}
O2G2Ptr<IO2GValueMap> valuemap = requestFactory->createValueMap();
valuemap->setString(Command, O2G2::Commands::CreateOTO);
O2G2Ptr<IO2GValueMap> valuemapPrimary = requestFactory->createValueMap();
valuemapPrimary->setString(Command, O2G2::Commands::CreateOrder);
valuemapPrimary->setString(OrderType, O2G2::Orders::StopEntry);
valuemapPrimary->setString(AccountID, sAccountID);
valuemapPrimary->setString(OfferID, sOfferID);
valuemapPrimary->setString(BuySell, O2G2::Sell);
valuemapPrimary->setInt(Amount, iAmount);
valuemapPrimary->setDouble(Rate, dRatePrimary);
valuemap->appendChild(valuemapPrimary);
O2G2Ptr<IO2GValueMap> valuemapSecondary = requestFactory->createValueMap();
valuemapSecondary->setString(Command, O2G2::Commands::CreateOrder);
valuemapSecondary->setString(OrderType, O2G2::Orders::StopEntry);
valuemapSecondary->setString(AccountID, sAccountID);
valuemapSecondary->setString(OfferID, sOfferID);
valuemapSecondary->setString(BuySell, O2G2::Buy);
valuemapSecondary->setInt(Amount, iAmount);
valuemapSecondary->setDouble(Rate, dRateSecondary);
valuemap->appendChild(valuemapSecondary);
O2G2Ptr<IO2GRequest> request = requestFactory->createOrderRequest(valuemap);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return NULL;
}
return request.Detach();
}
示例6:
// Subscribe or unsubscribe an instrument
IO2GRequest *createSetSubscriptionStatusRequest(IO2GSession *session, const char *sOfferID, const char *sStatus, ResponseListener *responseListener)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
if (!requestFactory)
{
std::cout << "Cannot create request factory" << std::endl;
return NULL;
}
O2G2Ptr<IO2GValueMap> valuemap = requestFactory->createValueMap();
valuemap->setString(Command, O2G2::Commands::SetSubscriptionStatus);
valuemap->setString(SubscriptionStatus, sStatus);
valuemap->setString(OfferID, sOfferID);
O2G2Ptr<IO2GRequest> request = requestFactory->createOrderRequest(valuemap);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return NULL;
}
return request.Detach();
}
示例7:
// Create GetLastOrderUpdate request
IO2GRequest *getLastOrderUpdateRequest(IO2GSession *session, const char *sOrderID, const char *sAccountName)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
if (!requestFactory)
{
std::cout << "Cannot create request factory" << std::endl;
return NULL;
}
O2G2Ptr<IO2GValueMap> valuemap = requestFactory->createValueMap();
valuemap->setString(Command, O2G2::Commands::GetLastOrderUpdate);
valuemap->setString(Key, O2G2::KeyType::OrderID);
valuemap->setString(Id, sOrderID); // value of Key
valuemap->setString(AccountName, sAccountName); // Account name, not Account ID
O2G2Ptr<IO2GRequest> request = requestFactory->createOrderRequest(valuemap);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return NULL;
}
return request.Detach();
}
示例8: switch
IO2GRequest *createCloseMarketNettingOrderRequest(IO2GSession *session, CloseOrderData *closeOrdersData)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
O2G2Ptr<IO2GValueMap> batchValuemap = requestFactory->createValueMap();
batchValuemap->setString(Command, O2G2::Commands::CreateOrder);
std::string sOfferID = closeOrdersData->offerID;
std::string sAccountID = closeOrdersData->account;
OrderSide side = closeOrdersData->side;
std::string sOrderType = O2G2::Orders::TrueMarketClose;
switch (side)
{
case Buy:
{
O2G2Ptr<IO2GValueMap> childValuemap = requestFactory->createValueMap();
childValuemap->setString(Command, O2G2::Commands::CreateOrder);
childValuemap->setString(NetQuantity, "Y");
childValuemap->setString(OrderType, sOrderType.c_str());
childValuemap->setString(AccountID, sAccountID.c_str());
childValuemap->setString(OfferID, sOfferID.c_str());
childValuemap->setString(BuySell, O2G2::Buy);
batchValuemap->appendChild(childValuemap);
}
break;
case Sell:
{
O2G2Ptr<IO2GValueMap> childValuemap = requestFactory->createValueMap();
childValuemap->setString(Command, O2G2::Commands::CreateOrder);
childValuemap->setString(NetQuantity, "Y");
childValuemap->setString(OrderType, sOrderType.c_str());
childValuemap->setString(AccountID, sAccountID.c_str());
childValuemap->setString(OfferID, sOfferID.c_str());
childValuemap->setString(BuySell, O2G2::Sell);
batchValuemap->appendChild(childValuemap);
}
break;
case Both:
{
O2G2Ptr<IO2GValueMap> buyValuemap = requestFactory->createValueMap();
buyValuemap->setString(Command, O2G2::Commands::CreateOrder);
buyValuemap->setString(NetQuantity, "Y");
buyValuemap->setString(OrderType, sOrderType.c_str());
buyValuemap->setString(AccountID, sAccountID.c_str());
buyValuemap->setString(OfferID, sOfferID.c_str());
buyValuemap->setString(BuySell, O2G2::Buy);
batchValuemap->appendChild(buyValuemap);
O2G2Ptr<IO2GValueMap> sellValuemap = requestFactory->createValueMap();
sellValuemap->setString(Command, O2G2::Commands::CreateOrder);
sellValuemap->setString(NetQuantity, "Y");
sellValuemap->setString(OrderType, sOrderType.c_str());
sellValuemap->setString(AccountID, sAccountID.c_str());
sellValuemap->setString(OfferID, sOfferID.c_str());
sellValuemap->setString(BuySell, O2G2::Sell);
batchValuemap->appendChild(sellValuemap);
}
break;
}
IO2GRequest *request = requestFactory->createOrderRequest(batchValuemap);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return NULL;
}
return request;
}
示例9:
IO2GRequest *createOTOCORequest(IO2GSession *session, const char *sOfferID, const char *sAccountID, int iAmount, double dRatePrimary, double dRateOcoFirst, double dRateOcoSecond)
{
O2G2Ptr<IO2GRequestFactory> requestFactory = session->getRequestFactory();
if (requestFactory)
{
// Create OTO command
O2G2Ptr<IO2GValueMap> valuemapMain = requestFactory->createValueMap();
valuemapMain->setString(Command, O2G2::Commands::CreateOTO);
// Create Entry order
O2G2Ptr<IO2GValueMap> valuemapPrimary = requestFactory->createValueMap();
valuemapPrimary->setString(Command, O2G2::Commands::CreateOrder);
valuemapPrimary->setString(OrderType, O2G2::Orders::StopEntry);
valuemapPrimary->setString(AccountID, sAccountID);
valuemapPrimary->setString(OfferID, sOfferID);
valuemapPrimary->setString(BuySell, O2G2::Sell);
valuemapPrimary->setInt(Amount, iAmount);
valuemapPrimary->setDouble(Rate, dRatePrimary);
// Create OCO group of orders
O2G2Ptr<IO2GValueMap> valuemapOCO = requestFactory->createValueMap();
valuemapOCO->setString(Command, O2G2::Commands::CreateOCO);
// Create Entry orders to OCO
O2G2Ptr<IO2GValueMap> valuemapOCOFirst = requestFactory->createValueMap();
valuemapOCOFirst->setString(Command, O2G2::Commands::CreateOrder);
valuemapOCOFirst->setString(OrderType, O2G2::Orders::StopEntry);
valuemapOCOFirst->setString(AccountID, sAccountID);
valuemapOCOFirst->setString(OfferID, sOfferID);
valuemapOCOFirst->setString(BuySell, O2G2::Buy);
valuemapOCOFirst->setInt(Amount, iAmount);
valuemapOCOFirst->setDouble(Rate, dRateOcoFirst);
O2G2Ptr<IO2GValueMap> valuemapOCOSecond = requestFactory->createValueMap();
valuemapOCOSecond->setString(Command, O2G2::Commands::CreateOrder);
valuemapOCOSecond->setString(OrderType, O2G2::Orders::StopEntry);
valuemapOCOSecond->setString(AccountID, sAccountID);
valuemapOCOSecond->setString(OfferID, sOfferID);
valuemapOCOSecond->setString(BuySell, O2G2::Buy);
valuemapOCOSecond->setInt(Amount, iAmount);
valuemapOCOSecond->setDouble(Rate, dRateOcoSecond);
// Fill the created groups. Please note, first you should add an entry order to OTO order and then OCO group of orders
valuemapMain->appendChild(valuemapPrimary);;
valuemapOCO->appendChild(valuemapOCOFirst);
valuemapOCO->appendChild(valuemapOCOSecond);
valuemapMain->appendChild(valuemapOCO);
O2G2Ptr<IO2GRequest> request = requestFactory->createOrderRequest(valuemapMain);
if (!request)
{
std::cout << requestFactory->getLastError() << std::endl;
return NULL;
}
return request.Detach();
}
else
{
std::cout << "Cannot create request factory" << std::endl;
return NULL;
}
}