@@ -327,10 +327,11 @@ class ExecutionManagementServiceOkx : public ExecutionManagementService {
327327 Element element;
328328 element.insert (CCAPI_INSTRUMENT , x[" instId" ].GetString ());
329329 element.insert (CCAPI_EM_POSITION_SIDE , x[" posSide" ].GetString ());
330- std::string availPos = x[" availPos" ].GetString ();
331- std::string positionQuantity = availPos.empty () ? x[" pos" ].GetString () : availPos;
330+ std::string positionQuantity = x[" pos" ].GetString ();
332331 element.insert (CCAPI_EM_POSITION_QUANTITY , positionQuantity);
333332 element.insert (CCAPI_EM_POSITION_ASSET , x[" posCcy" ].GetString ());
333+ element.insert (CCAPI_EM_POSITION_MARGIN_TYPE ,
334+ std::string (x[" mgnMode" ].GetString ()) == " cross" ? CCAPI_EM_MARGIN_TYPE_CROSS_MARGIN : CCAPI_EM_MARGIN_TYPE_ISOLATED_MARGIN );
334335 element.insert (CCAPI_EM_POSITION_ENTRY_PRICE , x[" avgPx" ].GetString ());
335336 element.insert (CCAPI_EM_POSITION_LEVERAGE , x[" lever" ].GetString ());
336337 elementList.emplace_back (std::move (element));
@@ -606,6 +607,8 @@ class ExecutionManagementServiceOkx : public ExecutionManagementService {
606607 element.insert (CCAPI_EM_POSITION_SIDE , x[" posSide" ].GetString ());
607608 element.insert (CCAPI_EM_POSITION_QUANTITY , x[" pos" ].GetString ());
608609 element.insert (CCAPI_EM_POSITION_ASSET , x[" posCcy" ].GetString ());
610+ element.insert (CCAPI_EM_POSITION_MARGIN_TYPE ,
611+ std::string (x[" mgnMode" ].GetString ()) == " cross" ? CCAPI_EM_MARGIN_TYPE_CROSS_MARGIN : CCAPI_EM_MARGIN_TYPE_ISOLATED_MARGIN );
609612 element.insert (CCAPI_EM_POSITION_ENTRY_PRICE , x[" avgPx" ].GetString ());
610613 element.insert (CCAPI_EM_UNREALIZED_PNL , x[" upl" ].GetString ());
611614 elementList.emplace_back (std::move (element));
0 commit comments