OpenPit C++ SDK
C++17 SDK for the OpenPit pre-trade risk engine
openpit::pretrade Namespace Reference

Namespaces

 policies
 

Classes

class  AccountOutcomes
 
class  Context
 Main-stage pre-trade context passed to a custom policy check. More...
 
class  CustomPolicy
 Owning custom pre-trade policy backed by a C++ Handler. More...
 
class  DryRunReport
 
struct  ExecuteResult
 
struct  LockEntry
 
struct  PolicyAccountAdjustmentResult
 
class  PolicyAdapter
 
struct  PolicyDecision
 
class  PostTradeAdjustments
 
class  PostTradeContext
 
class  PostTradePnls
 
class  PreTradeLock
 
struct  Reject
 
class  Request
 
class  Reservation
 
class  Result
 
class  StartPolicyAdapter
 Adapts a client start-stage policy to the engine callback seam. More...
 
struct  StartResult
 

Typedefs

template<typename ClientPolicy , typename ClientOrder , typename ClientReport >
using PolicyAdapterWithSafeSlowArgType = PolicyAdapter< ClientPolicy, ClientOrder, ClientReport, CastMode::SafeSlow >
 
template<typename ClientPolicy , typename ClientOrder , typename ClientReport >
using PolicyAdapterWithUnsafeFastArgType = PolicyAdapter< ClientPolicy, ClientOrder, ClientReport, CastMode::UnsafeFast >
 
template<typename ClientPolicy , typename ClientOrder , typename ClientReport >
using StartPolicyAdapterWithSafeSlowArgType = StartPolicyAdapter< ClientPolicy, ClientOrder, ClientReport, CastMode::SafeSlow >
 
template<typename ClientPolicy , typename ClientOrder , typename ClientReport >
using StartPolicyAdapterWithUnsafeFastArgType = StartPolicyAdapter< ClientPolicy, ClientOrder, ClientReport, CastMode::UnsafeFast >
 

Enumerations

enum class  CastMode : std::uint8_t { SafeSlow , UnsafeFast }
 
enum class  RejectCode : std::uint16_t {
  MissingRequiredField = OPENPIT_PRETRADE_REJECT_CODE_MISSING_REQUIRED_FIELD , InvalidFieldFormat = OPENPIT_PRETRADE_REJECT_CODE_INVALID_FIELD_FORMAT , InvalidFieldValue = OPENPIT_PRETRADE_REJECT_CODE_INVALID_FIELD_VALUE , UnsupportedOrderType = OPENPIT_PRETRADE_REJECT_CODE_UNSUPPORTED_ORDER_TYPE ,
  UnsupportedTimeInForce , UnsupportedOrderAttribute , DuplicateClientOrderId , TooLateToEnter = OPENPIT_PRETRADE_REJECT_CODE_TOO_LATE_TO_ENTER ,
  ExchangeClosed = OPENPIT_PRETRADE_REJECT_CODE_EXCHANGE_CLOSED , UnknownInstrument = OPENPIT_PRETRADE_REJECT_CODE_UNKNOWN_INSTRUMENT , UnknownAccount = OPENPIT_PRETRADE_REJECT_CODE_UNKNOWN_ACCOUNT , UnknownVenue = OPENPIT_PRETRADE_REJECT_CODE_UNKNOWN_VENUE ,
  UnknownClearingAccount , UnknownCollateralAsset , InsufficientFunds = OPENPIT_PRETRADE_REJECT_CODE_INSUFFICIENT_FUNDS , InsufficientMargin = OPENPIT_PRETRADE_REJECT_CODE_INSUFFICIENT_MARGIN ,
  InsufficientPosition = OPENPIT_PRETRADE_REJECT_CODE_INSUFFICIENT_POSITION , CreditLimitExceeded = OPENPIT_PRETRADE_REJECT_CODE_CREDIT_LIMIT_EXCEEDED , RiskLimitExceeded = OPENPIT_PRETRADE_REJECT_CODE_RISK_LIMIT_EXCEEDED , OrderExceedsLimit = OPENPIT_PRETRADE_REJECT_CODE_ORDER_EXCEEDS_LIMIT ,
  OrderQtyExceedsLimit = OPENPIT_PRETRADE_REJECT_CODE_ORDER_QTY_EXCEEDS_LIMIT , OrderNotionalExceedsLimit , PositionLimitExceeded = OPENPIT_PRETRADE_REJECT_CODE_POSITION_LIMIT_EXCEEDED , ConcentrationLimitExceeded ,
  LeverageLimitExceeded = OPENPIT_PRETRADE_REJECT_CODE_LEVERAGE_LIMIT_EXCEEDED , RateLimitExceeded = OPENPIT_PRETRADE_REJECT_CODE_RATE_LIMIT_EXCEEDED , PnlKillSwitchTriggered , AccountBlocked = OPENPIT_PRETRADE_REJECT_CODE_ACCOUNT_BLOCKED ,
  AccountNotAuthorized = OPENPIT_PRETRADE_REJECT_CODE_ACCOUNT_NOT_AUTHORIZED , ComplianceRestriction = OPENPIT_PRETRADE_REJECT_CODE_COMPLIANCE_RESTRICTION , InstrumentRestricted = OPENPIT_PRETRADE_REJECT_CODE_INSTRUMENT_RESTRICTED , JurisdictionRestriction ,
  WashTradePrevention = OPENPIT_PRETRADE_REJECT_CODE_WASH_TRADE_PREVENTION , SelfMatchPrevention = OPENPIT_PRETRADE_REJECT_CODE_SELF_MATCH_PREVENTION , ShortSaleRestriction = OPENPIT_PRETRADE_REJECT_CODE_SHORT_SALE_RESTRICTION , RiskConfigurationMissing ,
  ReferenceDataUnavailable , OrderValueCalculationFailed , SystemUnavailable = OPENPIT_PRETRADE_REJECT_CODE_SYSTEM_UNAVAILABLE , MarkPriceUnavailable = OPENPIT_PRETRADE_REJECT_CODE_MARK_PRICE_UNAVAILABLE ,
  AccountAdjustmentBoundsExceeded , ArithmeticOverflow = OPENPIT_PRETRADE_REJECT_CODE_ARITHMETIC_OVERFLOW , Custom = OPENPIT_PRETRADE_REJECT_CODE_CUSTOM , Other = OPENPIT_PRETRADE_REJECT_CODE_OTHER
}
 
enum class  RejectScope : std::uint8_t { Order = OPENPIT_PRETRADE_REJECT_SCOPE_ORDER , Account = OPENPIT_PRETRADE_REJECT_SCOPE_ACCOUNT }
 

Functions

const openpit::OrderContextOrder (const Context &context)
 
Reject MakeTypeMismatchReject (std::string_view policy_name, RejectScope scope, RejectCode code, std::string_view reason, std::string_view expected_type_name)
 
void PushReject (PolicyDecision &decision, Reject reject)
 

Typedef Documentation

◆ PolicyAdapterWithSafeSlowArgType

template<typename ClientPolicy , typename ClientOrder , typename ClientReport >
using openpit::pretrade::PolicyAdapterWithSafeSlowArgType = typedef PolicyAdapter<ClientPolicy, ClientOrder, ClientReport, CastMode::SafeSlow>

◆ PolicyAdapterWithUnsafeFastArgType

template<typename ClientPolicy , typename ClientOrder , typename ClientReport >
using openpit::pretrade::PolicyAdapterWithUnsafeFastArgType = typedef PolicyAdapter<ClientPolicy, ClientOrder, ClientReport, CastMode::UnsafeFast>

◆ StartPolicyAdapterWithSafeSlowArgType

template<typename ClientPolicy , typename ClientOrder , typename ClientReport >
using openpit::pretrade::StartPolicyAdapterWithSafeSlowArgType = typedef StartPolicyAdapter<ClientPolicy, ClientOrder, ClientReport, CastMode::SafeSlow>

◆ StartPolicyAdapterWithUnsafeFastArgType

template<typename ClientPolicy , typename ClientOrder , typename ClientReport >
using openpit::pretrade::StartPolicyAdapterWithUnsafeFastArgType = typedef StartPolicyAdapter<ClientPolicy, ClientOrder, ClientReport, CastMode::UnsafeFast>

Enumeration Type Documentation

◆ CastMode

enum openpit::pretrade::CastMode : std::uint8_t
strong
Enumerator
SafeSlow 
UnsafeFast 

◆ RejectCode

enum openpit::pretrade::RejectCode : std::uint16_t
strong
Enumerator
MissingRequiredField 
InvalidFieldFormat 
InvalidFieldValue 
UnsupportedOrderType 
UnsupportedTimeInForce 
UnsupportedOrderAttribute 
DuplicateClientOrderId 
TooLateToEnter 
ExchangeClosed 
UnknownInstrument 
UnknownAccount 
UnknownVenue 
UnknownClearingAccount 
UnknownCollateralAsset 
InsufficientFunds 
InsufficientMargin 
InsufficientPosition 
CreditLimitExceeded 
RiskLimitExceeded 
OrderExceedsLimit 
OrderQtyExceedsLimit 
OrderNotionalExceedsLimit 
PositionLimitExceeded 
ConcentrationLimitExceeded 
LeverageLimitExceeded 
RateLimitExceeded 
PnlKillSwitchTriggered 
AccountBlocked 
AccountNotAuthorized 
ComplianceRestriction 
InstrumentRestricted 
JurisdictionRestriction 
WashTradePrevention 
SelfMatchPrevention 
ShortSaleRestriction 
RiskConfigurationMissing 
ReferenceDataUnavailable 
OrderValueCalculationFailed 
SystemUnavailable 
MarkPriceUnavailable 
AccountAdjustmentBoundsExceeded 
ArithmeticOverflow 
Custom 
Other 

◆ RejectScope

enum openpit::pretrade::RejectScope : std::uint8_t
strong
Enumerator
Order 
Account 

Function Documentation

◆ ContextOrder()

const ::openpit::Order & openpit::pretrade::ContextOrder ( const Context context)
inline

◆ MakeTypeMismatchReject()

Reject openpit::pretrade::MakeTypeMismatchReject ( std::string_view  policy_name,
RejectScope  scope,
RejectCode  code,
std::string_view  reason,
std::string_view  expected_type_name 
)
inline

◆ PushReject()

void openpit::pretrade::PushReject ( PolicyDecision decision,
Reject  reject 
)
inline