Model Messages
ProtoOAAccessRights
Enum for specifying access right for a trader.
| Name | Value | Description |
| FULL_ACCESS | 0 | Enable all trading. |
| CLOSE_ONLY | 1 | Only closing trading request are enabled. |
| NO_TRADING | 2 | View only access. |
| NO_LOGIN | 3 | No access. |
ProtoOAAccountType
Enum for specifying type of an account.
| Name | Value | Description |
| HEDGED | 0 | Allows multiple positions on a trading account for a symbol. |
| NETTED | 1 | Only one position per symbol is allowed on a trading account. |
| SPREAD_BETTING | 2 | Spread betting type account. |
ProtoOAArchivedSymbol
| Field | Type | Label | Description |
| symbolId | int64 | Required | The unique identifier of the symbol in specific server environment within cTrader platform. Different brokers might have different IDs. |
| name | string | Required | Name of the symbol (e.g. EUR/USD). |
| utcLastUpdateTimestamp | int64 | Required | The Unix time in milliseconds of the last update of the symbol. |
| description | string | Optional | Description of the symbol. |
ProtoOAAsset
Asset entity.
| Field | Type | Label | Description |
| assetId | int64 | Required | The unique asset ID. |
| name | string | Required | The asset name. |
| displayName | string | Optional | User friendly name. |
| digits | int32 | Optional | Precision of the asset. |
ProtoOAAssetClass
Asset class entity.
| Field | Type | Label | Description |
| id | int64 | Optional | Unique asset ID. |
| name | string | Optional | Asset class name. |
| sortingNumber | double | Optional | The number used for sorting Asset Classes in the UI (lowest number should appear at the top). |
ProtoOABonusDepositWithdraw
Bonus deposit/withdrawal entity.
| Field | Type | Label | Description |
| operationType | ProtoOAChangeBonusType | Required | Type of the operation. Deposit/Withdrawal. |
| bonusHistoryId | int64 | Required | The unique ID of the bonus deposit/withdrawal operation. |
| managerBonus | int64 | Required | Total amount of broker's bonus after the operation. |
| managerDelta | int64 | Required | Amount of bonus deposited/withdrew by manager. |
| ibBonus | int64 | Required | Total amount of introducing broker's bonus after the operation. |
| ibDelta | int64 | Required | Amount of bonus deposited/withdrew by introducing broker. |
| changeBonusTimestamp | int64 | Required | The Unix time in milliseconds when the bonus operation was executed. |
| externalNote | string | Optional | Note added to operation. Visible to the trader. |
| introducingBrokerId | int64 | Optional | ID of introducing broker who deposited/withdrew bonus. |
| moneyDigits | uint32 | Optional | Specifies the exponent of the monetary values. E.g. moneyDigits = 8 must be interpret as business value multiplied by 10^8, then real balance would be 10053099944 / 10^8 = 100.53099944. Affects managerBonus, managerDelta, ibBonus, ibDelta. |
ProtoOAChangeBalanceType
Balance operation entity.
Covers all cash movement operations related to account, trading, IB operations, mirroring, etc.
| Name | Value | Description |
| BALANCE_DEPOSIT | 0 | Cash deposit. |
| BALANCE_WITHDRAW | 1 | Cash withdrawal. |
| BALANCE_DEPOSIT_STRATEGY_COMMISSION_INNER | 3 | Received mirroring commission. |
| BALANCE_WITHDRAW_STRATEGY_COMMISSION_INNER | 4 | Paid mirroring commission. |
| BALANCE_DEPOSIT_IB_COMMISSIONS | 5 | For IB account. Commissions paid by trader. |
| BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE | 6 | For IB account. Withdrawal of commissions shared with broker. |
| BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_SUB_IB | 7 | For IB account. Commissions paid by sub-ibs. |
| BALANCE_DEPOSIT_IB_SHARED_PERCENTAGE_FROM_BROKER | 8 | For IB account. Commissions paid by broker. |
| BALANCE_DEPOSIT_REBATE | 9 | Deposit rebate for trading volume for period. |
| BALANCE_WITHDRAW_REBATE | 10 | Withdrawal of rebate. |
| BALANCE_DEPOSIT_STRATEGY_COMMISSION_OUTER | 11 | Mirroring commission. |
| BALANCE_WITHDRAW_STRATEGY_COMMISSION_OUTER | 12 | Mirroring commission. |
| BALANCE_WITHDRAW_BONUS_COMPENSATION | 13 | For IB account. Share commission with the Broker. |
| BALANCE_WITHDRAW_IB_SHARED_PERCENTAGE_TO_BROKER | 14 | IB commissions. |
| BALANCE_DEPOSIT_DIVIDENDS | 15 | Deposit dividends payments. |
| BALANCE_WITHDRAW_DIVIDENDS | 16 | Negative dividend charge for short position. |
| BALANCE_WITHDRAW_GSL_CHARGE | 17 | Fee charged for attaching a guaranteed stop loss to a position, taken when the guaranteed protective order is accepted, whether it comes from ProtoOANewOrderReq, ProtoOAAmendOrderReq or ProtoOAAmendPositionSLTPReq. Amount is the symbol's gslCharge rate times position volume, or times stake for spread betting. Not charged again when a protective order is recreated after the originating order fills, and not charged when the guaranteed stop loss triggers. |
| BALANCE_WITHDRAW_ROLLOVER | 18 | Charge of rollover fee for Shariah compliant accounts. |
| BALANCE_DEPOSIT_NONWITHDRAWABLE_BONUS | 19 | Broker's operation to deposit bonus. |
| BALANCE_WITHDRAW_NONWITHDRAWABLE_BONUS | 20 | Broker's operation to withdrawal bonus. |
| BALANCE_DEPOSIT_SWAP | 21 | Deposits of negative SWAP. |
| BALANCE_WITHDRAW_SWAP | 22 | SWAP charges. |
| BALANCE_DEPOSIT_MANAGEMENT_FEE | 27 | Mirroring commission. |
| BALANCE_WITHDRAW_MANAGEMENT_FEE | 28 | Mirroring commission. Deprecated since 7.1 in favor of BALANCE_WITHDRAW_COPY_FEE (34). |
| BALANCE_DEPOSIT_PERFORMANCE_FEE | 29 | Mirroring commission. |
| BALANCE_WITHDRAW_FOR_SUBACCOUNT | 30 | Withdraw for subaccount creation (cTrader Copy). |
| BALANCE_DEPOSIT_TO_SUBACCOUNT | 31 | Deposit to subaccount on creation (cTrader Copy). |
| BALANCE_WITHDRAW_FROM_SUBACCOUNT | 32 | Manual user's withdraw from subaccount (cTrader Copy), to parent account. |
| BALANCE_DEPOSIT_FROM_SUBACCOUNT | 33 | Manual user's deposit to subaccount (cTrader Copy), from parent account. |
| BALANCE_WITHDRAW_COPY_FEE | 34 | Withdrawal fees to Strategy Provider. |
| BALANCE_WITHDRAW_INACTIVITY_FEE | 35 | Withdraw of inactivity fee from the balance. |
| BALANCE_DEPOSIT_TRANSFER | 36 | Deposit within the same server (from another account). |
| BALANCE_WITHDRAW_TRANSFER | 37 | Withdraw within the same server (to another account). |
| BALANCE_DEPOSIT_CONVERTED_BONUS | 38 | Bonus being converted from virtual bonus to real deposit. |
| BALANCE_DEPOSIT_NEGATIVE_BALANCE_PROTECTION | 39 | Applies if negative balance protection is configured by broker, should make balance = 0. |
ProtoOAChangeBonusType
Bonus operation type ENUM.
| Name | Value | Description |
| BONUS_DEPOSIT | 0 | |
| BONUS_WITHDRAW | 1 | |
ProtoOAClientPermissionScope
Open API application permission in regards to token ENUM.
| Name | Value | Description |
| SCOPE_VIEW | 0 | Allows to use only view commends. Trade is prohibited. |
| SCOPE_TRADE | 1 | Allows to use all commands. |
ProtoOAClosePositionDetail
Trading details for closing deal.
| Field | Type | Label | Description |
| entryPrice | double | Required | Position price at the moment of filling the closing order. |
| grossProfit | int64 | Required | Amount of realized gross profit after closing deal execution. |
| swap | int64 | Required | Amount of realized swap related to closed volume. |
| commission | int64 | Required | Amount of realized commission related to closed volume. |
| balance | int64 | Required | Account balance after closing deal execution. |
| quoteToDepositConversionRate | double | Optional | Quote/Deposit currency conversion rate on the time of closing deal execution. |
| closedVolume | int64 | Optional | Closed volume in cents. |
| balanceVersion | int64 | Optional | Balance version of the account related to closing deal operation. |
| moneyDigits | uint32 | Optional | Specifies the exponent of the monetary values. E.g. moneyDigits = 8 must be interpret as business value multiplied by 10^8, then real balance would be 10053099944 / 10^8 = 100.53099944. Affects grossProfit, swap, commission, balance, pnlConversionFee. |
| pnlConversionFee | int64 | Optional | Fee for conversion applied to the Deal in account's ccy when trader symbol's quote asset id <> ProtoOATrader.depositAssetId. |
ProtoOACommissionType
Enum for specifying type of trading commission.
| Name | Value | Description |
| USD_PER_MILLION_USD | 1 | USD per million USD volume - usually used for FX. Example: 50 USD for 1 mil USD of trading volume. |
| USD_PER_LOT | 2 | USD per 1 lot - usually used for CFDs and futures for commodities, and indices. Example: 15 USD for 1 contract. |
| PERCENTAGE_OF_VALUE | 3 | Percentage of trading volume - usually used for Equities. Example: 0.005% of notional trading volume. Multiplied by 100,000. |
| QUOTE_CCY_PER_LOT | 4 | Quote ccy of Symbol per 1 lot - will be used for CFDs and futures for commodities, and indices. Example: 15 EUR for 1 contract of DAX. |
ProtoOACtidProfile
Trader profile entity.
Empty due to GDPR.
| Field | Type | Label | Description |
| userId | int64 | Required | |
ProtoOACtidTraderAccount
Trader account entity.
| Field | Type | Label | Description |
| ctidTraderAccountId | uint64 | Required | Unique identifier of the trader's account. Used to match responses to trader's accounts.cTrader platform. Different brokers might have different ids |
| isLive | bool | Optional | If TRUE then the account is belong to Live environment and live host must be used to authorize it |
| traderLogin | int64 | Optional | TraderLogin for a specific account. Value is displayed on Client App UI |
| lastClosingDealTimestamp | int64 | Optional | The Unix time in milliseconds of the last ProtoOAClosePositionDetail happened to this account. |
| lastBalanceUpdateTimestamp | int64 | Optional | The Unix time in milliseconds of the last ProtoOADepositWithdraw happened to this account. |
| brokerTitleShort | string | Optional | The name of the broker to which the account belongs to. Shortened to be displayed in the UI. |
ProtoOADayOfWeek
| Name | Value | Description |
| NONE | 0 | |
| MONDAY | 1 | |
| TUESDAY | 2 | |
| WEDNESDAY | 3 | |
| THURSDAY | 4 | |
| FRIDAY | 5 | |
| SATURDAY | 6 | |
| SUNDAY | 7 | |
ProtoOADeal
Execution entity.
| Field | Type | Label | Description |
| dealId | int64 | Required | The unique ID of the execution deal. |
| orderId | int64 | Required | Source order of the deal. |
| positionId | int64 | Required | Source position of the deal. |
| volume | int64 | Required | Volume sent for execution, in cents. |
| filledVolume | int64 | Required | Filled volume, in cents. |
| symbolId | int64 | Required | The unique identifier of the symbol in specific server environment within cTrader platform. Different servers have different IDs. |
| createTimestamp | int64 | Required | The Unix time in milliseconds when the deal was sent for execution. |
| executionTimestamp | int64 | Required | The Unix time in milliseconds when the deal was executed. |
| utcLastUpdateTimestamp | int64 | Optional | The Unix time in milliseconds when the deal was created, executed or rejected. |
| executionPrice | double | Optional | Execution price. |
| tradeSide | ProtoOATradeSide | Required | Buy/Sell. |
| dealStatus | ProtoOADealStatus | Required | Status of the deal. |
| marginRate | double | Optional | Rate for used margin computation. Represented as Base/Deposit. |
| commission | int64 | Optional | Amount of trading commission associated with the deal. |
| baseToUsdConversionRate | double | Optional | Base to USD conversion rate on the time of deal execution. |
| closePositionDetail | ProtoOAClosePositionDetail | Optional | Closing position detail. Valid only for closing deal. |
| moneyDigits | uint32 | Optional | Specifies the exponent of the monetary values. E.g. moneyDigits = 8 must be interpret as business value multiplied by 10^8, then real balance would be 10053099944 / 10^8 = 100.53099944. Affects commission. |
| label | string | Optional | Label field value from corresponding order. Used by cAlgo bots to identify its own orders. Max length 100 |
| comment | string | Optional | Comment field value from corresponding order |
ProtoOADealOffset
Deal details for ProtoOADealOffsetListReq.
| Field | Type | Label | Description |
| dealId | int64 | Required | The unique ID of the execution Deal. |
| volume | int64 | Required | Matched volume, in cents. |
| executionTimestamp | int64 | Optional | The Unix time in milliseconds when the offset Deal was executed. |
| executionPrice | double | Optional | Execution price of the offset Deal. |
ProtoOADealStatus
Deal status ENUM.
| Name | Value | Description |
| FILLED | 2 | Deal filled. |
| PARTIALLY_FILLED | 3 | Deal is partially filled. |
| REJECTED | 4 | Deal is correct but was rejected by liquidity provider (e.g. no liquidity). |
| INTERNALLY_REJECTED | 5 | Deal rejected by server (e.g. no price quotes). |
| ERROR | 6 | Deal is rejected by LP due to error (e.g. symbol is unknown). |
| MISSED | 7 | Liquidity provider did not sent response on the deal during specified execution time period. |
ProtoOADepositWithdraw
Account deposit/withdrawal operation entity.
| Field | Type | Label | Description |
| operationType | ProtoOAChangeBalanceType | Required | Type of the operation. Deposit/Withdrawal. |
| balanceHistoryId | int64 | Required | The unique ID of the deposit/withdrawal operation. |
| balance | int64 | Required | Account balance after the operation was executed. |
| delta | int64 | Required | Amount of deposit/withdrawal operation. |
| changeBalanceTimestamp | int64 | Required | The Unix time in milliseconds when deposit/withdrawal operation was executed. |
| externalNote | string | Optional | Note added to operation. Visible to the trader. |
| balanceVersion | int64 | Optional | Balance version used to identify the final balance. Increments each time when the trader's account balance is changed. |
| equity | int64 | Optional | Total account's equity after balance operation was executed. |
| moneyDigits | uint32 | Optional | Specifies the exponent of the monetary values. E.g. moneyDigits = 8 must be interpret as business value multiplied by 10^8, then real balance would be 10053099944 / 10^8 = 100.53099944. Affects balance, delta, equity. |
ProtoOADepthQuote
Depth of market entity.
| Field | Type | Label | Description |
| id | uint64 | Required | Quote ID. |
| size | uint64 | Required | Quote size in cents. |
| bid | uint64 | Optional | Bid price for bid quotes. |
| ask | uint64 | Optional | Ask price for ask quotes. |
ProtoOADynamicLeverage
| Field | Type | Label | Description |
| leverageId | int64 | Required | Unique ID of dynamic leverage. |
| tiers | RepeatedField<ProtoOADynamicLeverageTier> | Repeated | Tiers sorted by volume. Last tier's leverage is applied also to volume above specified. |
ProtoOADynamicLeverageTier
| Field | Type | Label | Description |
| volume | int64 | Required | Max USD volume (in cents) of the Open Position (per side) to apply specified leverage. Last tier's leverage is applied also to volume above specified. |
| leverage | int32 | Required | Applied leverage. |
ProtoOAErrorCode
Error code ENUM.
| Name | Value | Description |
| OA_AUTH_TOKEN_EXPIRED | 1 | Authorization |
| ACCOUNT_NOT_AUTHORIZED | 2 | When account is not authorized. |
| RET_NO_SUCH_LOGIN | 12 | When such account no longer exists. |
| ALREADY_LOGGED_IN | 14 | When client tries to authorize after it was already authorized. |
| INCORRECT_BOUNDARIES | 35 | When requested period (from,to) is too large or invalid values are set to from/to. |
| RET_ACCOUNT_DISABLED | 64 | When account is disabled. |
| CONNECTIONS_LIMIT_EXCEEDED | 67 | Limit of connections is reached for this Open API client. |
| WORSE_GSL_NOT_ALLOWED | 68 | Not allowed to increase risk for Positions with Guaranteed Stop Loss. |
| SYMBOL_HAS_HOLIDAY | 69 | Trading disabled because symbol has holiday. |
| CH_CLIENT_AUTH_FAILURE | 101 | Open API client is not activated or wrong client credentials. |
| CH_CLIENT_NOT_AUTHENTICATED | 102 | When a command is sent for not authorized Open API client. |
| CH_CLIENT_ALREADY_AUTHENTICATED | 103 | Client is trying to authenticate twice. |
| CH_ACCESS_TOKEN_INVALID | 104 | Access token is invalid. |
| CH_SERVER_NOT_REACHABLE | 105 | Trading service is not available. |
| CH_CTID_TRADER_ACCOUNT_NOT_FOUND | 106 | Trading account is not found. |
| CH_OA_CLIENT_NOT_FOUND | 107 | Could not find this client id. |
| REQUEST_FREQUENCY_EXCEEDED | 108 | General |
| SERVER_IS_UNDER_MAINTENANCE | 109 | Server is under maintenance. |
| CHANNEL_IS_BLOCKED | 110 | Operations are not allowed for this account. |
| NOT_SUBSCRIBED_TO_SPOTS | 112 | Pricing |
| ALREADY_SUBSCRIBED | 113 | When subscription is requested for an active. |
| SYMBOL_NOT_FOUND | 114 | Symbol not found. |
| UNKNOWN_SYMBOL | 115 | Note: to be merged with SYMBOL_NOT_FOUND. |
| NO_QUOTES | 117 | Trading |
| NOT_ENOUGH_MONEY | 118 | Not enough funds to allocate margin. |
| MAX_EXPOSURE_REACHED | 119 | Max exposure limit is reached for a {trader, symbol, side}. |
| POSITION_NOT_FOUND | 120 | Position not found. |
| ORDER_NOT_FOUND | 121 | Order not found. |
| POSITION_NOT_OPEN | 122 | When trying to close a position that it is not open. |
| POSITION_LOCKED | 123 | Position in the state that does not allow to perform an operation. |
| TOO_MANY_POSITIONS | 124 | Trading account reached its limit for max number of open positions and orders. |
| TRADING_BAD_VOLUME | 125 | Invalid volume. |
| TRADING_BAD_STOPS | 126 | Invalid stop price. |
| TRADING_BAD_PRICES | 127 | Invalid price (e.g. negative). |
| TRADING_BAD_STAKE | 128 | Invalid stake volume (e.g. negative). |
| PROTECTION_IS_TOO_CLOSE_TO_MARKET | 129 | Invalid protection prices. |
| TRADING_BAD_EXPIRATION_DATE | 130 | Invalid expiration. |
| PENDING_EXECUTION | 131 | Unable to apply changes as position has an order under execution. |
| TRADING_DISABLED | 132 | Trading is blocked for the symbol. |
| TRADING_NOT_ALLOWED | 133 | Trading account is in read only mode. |
| UNABLE_TO_CANCEL_ORDER | 134 | Unable to cancel order. |
| UNABLE_TO_AMEND_ORDER | 135 | Unable to amend order. |
| SHORT_SELLING_NOT_ALLOWED | 136 | Short selling is not allowed. |
ProtoOAExecutionType
Execution event type ENUM.
| Name | Value | Description |
| ORDER_ACCEPTED | 2 | Order passed validation. |
| ORDER_FILLED | 3 | Order filled. |
| ORDER_REPLACED | 4 | Pending order is changed with a new one. |
| ORDER_CANCELLED | 5 | Order cancelled. |
| ORDER_EXPIRED | 6 | Order with GTD time in force is expired. |
| ORDER_REJECTED | 7 | Order is rejected due to validations. |
| ORDER_CANCEL_REJECTED | 8 | Cancel order request is rejected. |
| SWAP | 9 | Type related to SWAP execution events. |
| DEPOSIT_WITHDRAW | 10 | Type related to event of deposit or withdrawal cash flow operation. |
| ORDER_PARTIAL_FILL | 11 | Order is partially filled. |
| BONUS_DEPOSIT_WITHDRAW | 12 | Type related to event of bonus deposit or bonus withdrawal. |
ProtoOAExpectedMargin
Expected margin computation entity.
| Field | Type | Label | Description |
| volume | int64 | Required | Volume in cents used for computation of expected margin. |
| buyMargin | int64 | Required | Buy margin amount. |
| sellMargin | int64 | Required | Sell margin amount. |
ProtoOAHoliday
| Field | Type | Label | Description |
| holidayId | int64 | Required | Unique ID of holiday. |
| name | string | Required | Name of holiday. |
| description | string | Optional | Description of holiday. |
| scheduleTimeZone | string | Required | Timezone used for holiday. |
| holidayDate | int64 | Required | Amount of days from 1st Jan 1970, multiply it by 86400000 to get Unix time in milliseconds. |
| isRecurring | bool | Required | If TRUE, then the holiday happens each year. |
| startSecond | int32 | Optional | Amount of seconds from 00:00:00 of the holiday day when holiday actually starts. |
| endSecond | int32 | Optional | Amount of seconds from 00:00:00 of the holiday day when holiday actually finishes. |
ProtoOAInterval
Symbol trading session entity.
| Field | Type | Label | Description |
| startSecond | uint32 | Required | Interval start, specified in seconds starting from SUNDAY 00:00 in specified time zone (inclusive to the interval). |
| endSecond | uint32 | Required | Interval end, specified in seconds starting from SUNDAY 00:00 in specified time zone (exclusive from the interval). |
ProtoOALightSymbol
Lightweight symbol entity.
| Field | Type | Label | Description |
| symbolId | int64 | Required | The unique identifier of the symbol in specific server environment within cTrader platform. Different brokers might have different IDs. |
| symbolName | string | Optional | Name of the symbol (e.g. EUR/USD). |
| enabled | bool | Optional | If TRUE then symbol is visible for traders. |
| baseAssetId | int64 | Optional | Base asset. |
| quoteAssetId | int64 | Optional | Quote asset. |
| symbolCategoryId | int64 | Optional | Id of the symbol category used for symbols grouping. |
| description | string | Optional | |
| sortingNumber | double | Optional | The number used for sorting Symbols in the UI (lowest number should appear at the top). |
ProtoOALimitedRiskMarginCalculationStrategy
| Name | Value | Description |
| ACCORDING_TO_LEVERAGE | 0 | |
| ACCORDING_TO_GSL | 1 | |
| ACCORDING_TO_GSL_AND_LEVERAGE | 2 | |
ProtoOAMarginCall
Margin call entity, specifies threshold for exact margin call type.
Only 3 instances of margin calls are supported, identified by marginCallType.
See ProtoOANotificationType for details.
| Field | Type | Label | Description |
| marginCallType | ProtoOANotificationType | Required | Type of margin call. All margin calls are similar, only difference is in marginLevelThreshold. |
| marginLevelThreshold | double | Required | Margin level threshold for margin call. |
| utcLastUpdateTimestamp | int64 | Optional | The Unix time in milliseconds of the last update of the margin call. |
ProtoOAMinCommissionType
Enum for specifying type of minimum trading commission.
| Name | Value | Description |
| CURRENCY | 1 | |
| QUOTE_CURRENCY | 2 | |
ProtoOANotificationType
Type of notification, currently only 3 instances of marginCall are supported.
| Name | Value | Description |
| MARGIN_LEVEL_THRESHOLD1 | 61 | one of three margin calls, they are all similar. |
| MARGIN_LEVEL_THRESHOLD2 | 62 | one of three margin calls, they are all similar. |
| MARGIN_LEVEL_THRESHOLD3 | 63 | one of three margin calls, they are all similar. |
ProtoOAOrder
Trade order entity.
| Field | Type | Label | Description |
| orderId | int64 | Required | The unique ID of the order. Note: trader might have two orders with the same id if orders are taken from accounts from different brokers. |
| tradeData | ProtoOATradeData | Required | Detailed trader data. |
| orderType | ProtoOAOrderType | Required | Order type. |
| orderStatus | ProtoOAOrderStatus | Required | Order status. |
| expirationTimestamp | int64 | Optional | The Unix time in milliseconds of expiration if the order has time in force GTD. |
| executionPrice | double | Optional | Price at which an order was executed. For order with FILLED status. |
| executedVolume | int64 | Optional | Part of the volume that was filled in cents (e.g. 1000 in protocol means 10.00 units). |
| utcLastUpdateTimestamp | int64 | Optional | The Unix time in milliseconds of the last update of the order. |
| baseSlippagePrice | double | Optional | Used for Market Range order with combination of slippageInPoints to specify price range were order can be executed. |
| slippageInPoints | int64 | Optional | Used for Market Range and STOP_LIMIT orders to to specify price range were order can be executed. |
| closingOrder | bool | Optional | If TRUE then the order is closing part of whole position. Must have specified positionId. |
| limitPrice | double | Optional | Valid only for LIMIT orders. |
| stopPrice | double | Optional | Valid only for STOP and STOP_LIMIT orders. |
| stopLoss | double | Optional | Absolute stopLoss price. |
| takeProfit | double | Optional | Absolute takeProfit price. |
| clientOrderId | string | Optional | Optional ClientOrderId. Max Length = 50 chars. |
| timeInForce | ProtoOATimeInForce | Optional | Order's time in force. Depends on order type. |
| positionId | int64 | Optional | ID of the position linked to the order (e.g. closing order, order that increase volume of a specific position, etc.). |
| relativeStopLoss | int64 | Optional | Relative stopLoss that can be specified instead of absolute as one. Specified in 1/100000 of unit of a price. (e.g. 123000 in protocol means 1.23, 53423782 means 534.23782) For BUY stopLoss = entryPrice - relativeStopLoss, for SELL stopLoss = entryPrice + relativeStopLoss. |
| relativeTakeProfit | int64 | Optional | Relative takeProfit that can be specified instead of absolute one. Specified in 1/100000 of unit of a price. (e.g. 123000 in protocol means 1.23, 53423782 means 534.23782) ForBUY takeProfit = entryPrice + relativeTakeProfit, for SELL takeProfit = entryPrice - relativeTakeProfit. |
| isStopOut | bool | Optional | If TRUE then order was stopped out from server side. |
| trailingStopLoss | bool | Optional | If TRUE then order is trailingStopLoss. Valid for STOP_LOSS_TAKE_PROFIT order. |
| stopTriggerMethod | ProtoOAOrderTriggerMethod | Optional | Trigger method for the order. Valid only for STOP and STOP_LIMIT orders. |
ProtoOAOrderStatus
Order status ENUM.
| Name | Value | Description |
| ORDER_STATUS_ACCEPTED | 1 | Order request validated and accepted for execution. |
| ORDER_STATUS_FILLED | 2 | Order is fully filled. |
| ORDER_STATUS_REJECTED | 3 | Order is rejected due to validation. |
| ORDER_STATUS_EXPIRED | 4 | Order expired. Might be valid for orders with partially filled volume that were expired on LP. |
| ORDER_STATUS_CANCELLED | 5 | Order is cancelled. Might be valid for orders with partially filled volume that were cancelled by LP. |
ProtoOAOrderTriggerMethod
Stop Order and Stop Loss triggering method ENUM.
| Name | Value | Description |
| TRADE | 1 | Stop Order: buy is triggered by ask, sell by bid; Stop Loss Order: for buy position is triggered by bid and for sell position by ask. |
| OPPOSITE | 2 | Stop Order: buy is triggered by bid, sell by ask; Stop Loss Order: for buy position is triggered by ask and for sell position by bid. |
| DOUBLE_TRADE | 3 | The same as TRADE, but trigger is checked after the second consecutive tick. |
| DOUBLE_OPPOSITE | 4 | The same as OPPOSITE, but trigger is checked after the second consecutive tick. |
ProtoOAOrderType
Order type ENUM.
| Name | Value | Description |
| MARKET | 1 | |
| LIMIT | 2 | |
| STOP | 3 | |
| STOP_LOSS_TAKE_PROFIT | 4 | |
| MARKET_RANGE | 5 | |
| STOP_LIMIT | 6 | |
ProtoOAPayloadType
| Name | Value | Description |
| PROTO_OA_APPLICATION_AUTH_REQ | 2100 | |
| PROTO_OA_APPLICATION_AUTH_RES | 2101 | |
| PROTO_OA_ACCOUNT_AUTH_REQ | 2102 | |
| PROTO_OA_ACCOUNT_AUTH_RES | 2103 | |
| PROTO_OA_VERSION_REQ | 2104 | |
| PROTO_OA_VERSION_RES | 2105 | |
| PROTO_OA_NEW_ORDER_REQ | 2106 | |
| PROTO_OA_TRAILING_SL_CHANGED_EVENT | 2107 | |
| PROTO_OA_CANCEL_ORDER_REQ | 2108 | |
| PROTO_OA_AMEND_ORDER_REQ | 2109 | |
| PROTO_OA_AMEND_POSITION_SLTP_REQ | 2110 | |
| PROTO_OA_CLOSE_POSITION_REQ | 2111 | |
| PROTO_OA_ASSET_LIST_REQ | 2112 | |
| PROTO_OA_ASSET_LIST_RES | 2113 | |
| PROTO_OA_SYMBOLS_LIST_REQ | 2114 | |
| PROTO_OA_SYMBOLS_LIST_RES | 2115 | |
| PROTO_OA_SYMBOL_BY_ID_REQ | 2116 | |
| PROTO_OA_SYMBOL_BY_ID_RES | 2117 | |
| PROTO_OA_SYMBOLS_FOR_CONVERSION_REQ | 2118 | |
| PROTO_OA_SYMBOLS_FOR_CONVERSION_RES | 2119 | |
| PROTO_OA_SYMBOL_CHANGED_EVENT | 2120 | |
| PROTO_OA_TRADER_REQ | 2121 | |
| PROTO_OA_TRADER_RES | 2122 | |
| PROTO_OA_TRADER_UPDATE_EVENT | 2123 | |
| PROTO_OA_RECONCILE_REQ | 2124 | |
| PROTO_OA_RECONCILE_RES | 2125 | |
| PROTO_OA_EXECUTION_EVENT | 2126 | |
| PROTO_OA_SUBSCRIBE_SPOTS_REQ | 2127 | |
| PROTO_OA_SUBSCRIBE_SPOTS_RES | 2128 | |
| PROTO_OA_UNSUBSCRIBE_SPOTS_REQ | 2129 | |
| PROTO_OA_UNSUBSCRIBE_SPOTS_RES | 2130 | |
| PROTO_OA_SPOT_EVENT | 2131 | |
| PROTO_OA_ORDER_ERROR_EVENT | 2132 | |
| PROTO_OA_DEAL_LIST_REQ | 2133 | |
| PROTO_OA_DEAL_LIST_RES | 2134 | |
| PROTO_OA_SUBSCRIBE_LIVE_TRENDBAR_REQ | 2135 | |
| PROTO_OA_UNSUBSCRIBE_LIVE_TRENDBAR_REQ | 2136 | |
| PROTO_OA_GET_TRENDBARS_REQ | 2137 | |
| PROTO_OA_GET_TRENDBARS_RES | 2138 | |
| PROTO_OA_EXPECTED_MARGIN_REQ | 2139 | |
| PROTO_OA_EXPECTED_MARGIN_RES | 2140 | |
| PROTO_OA_MARGIN_CHANGED_EVENT | 2141 | |
| PROTO_OA_ERROR_RES | 2142 | |
| PROTO_OA_CASH_FLOW_HISTORY_LIST_REQ | 2143 | |
| PROTO_OA_CASH_FLOW_HISTORY_LIST_RES | 2144 | |
| PROTO_OA_GET_TICKDATA_REQ | 2145 | |
| PROTO_OA_GET_TICKDATA_RES | 2146 | |
| PROTO_OA_ACCOUNTS_TOKEN_INVALIDATED_EVENT | 2147 | |
| PROTO_OA_CLIENT_DISCONNECT_EVENT | 2148 | |
| PROTO_OA_GET_ACCOUNTS_BY_ACCESS_TOKEN_REQ | 2149 | |
| PROTO_OA_GET_ACCOUNTS_BY_ACCESS_TOKEN_RES | 2150 | |
| PROTO_OA_GET_CTID_PROFILE_BY_TOKEN_REQ | 2151 | |
| PROTO_OA_GET_CTID_PROFILE_BY_TOKEN_RES | 2152 | |
| PROTO_OA_ASSET_CLASS_LIST_REQ | 2153 | |
| PROTO_OA_ASSET_CLASS_LIST_RES | 2154 | |
| PROTO_OA_DEPTH_EVENT | 2155 | |
| PROTO_OA_SUBSCRIBE_DEPTH_QUOTES_REQ | 2156 | |
| PROTO_OA_SUBSCRIBE_DEPTH_QUOTES_RES | 2157 | |
| PROTO_OA_UNSUBSCRIBE_DEPTH_QUOTES_REQ | 2158 | |
| PROTO_OA_UNSUBSCRIBE_DEPTH_QUOTES_RES | 2159 | |
| PROTO_OA_SYMBOL_CATEGORY_REQ | 2160 | |
| PROTO_OA_SYMBOL_CATEGORY_RES | 2161 | |
| PROTO_OA_ACCOUNT_LOGOUT_REQ | 2162 | |
| PROTO_OA_ACCOUNT_LOGOUT_RES | 2163 | |
| PROTO_OA_ACCOUNT_DISCONNECT_EVENT | 2164 | |
| PROTO_OA_SUBSCRIBE_LIVE_TRENDBAR_RES | 2165 | |
| PROTO_OA_UNSUBSCRIBE_LIVE_TRENDBAR_RES | 2166 | |
| PROTO_OA_MARGIN_CALL_LIST_REQ | 2167 | |
| PROTO_OA_MARGIN_CALL_LIST_RES | 2168 | |
| PROTO_OA_MARGIN_CALL_UPDATE_REQ | 2169 | |
| PROTO_OA_MARGIN_CALL_UPDATE_RES | 2170 | |
| PROTO_OA_MARGIN_CALL_UPDATE_EVENT | 2171 | |
| PROTO_OA_MARGIN_CALL_TRIGGER_EVENT | 2172 | |
| PROTO_OA_REFRESH_TOKEN_REQ | 2173 | |
| PROTO_OA_REFRESH_TOKEN_RES | 2174 | |
| PROTO_OA_ORDER_LIST_REQ | 2175 | |
| PROTO_OA_ORDER_LIST_RES | 2176 | |
| PROTO_OA_GET_DYNAMIC_LEVERAGE_REQ | 2177 | |
| PROTO_OA_GET_DYNAMIC_LEVERAGE_RES | 2178 | |
| PROTO_OA_DEAL_LIST_BY_POSITION_ID_REQ | 2179 | |
| PROTO_OA_DEAL_LIST_BY_POSITION_ID_RES | 2180 | |
| PROTO_OA_ORDER_DETAILS_REQ | 2181 | |
| PROTO_OA_ORDER_DETAILS_RES | 2182 | |
| PROTO_OA_ORDER_LIST_BY_POSITION_ID_REQ | 2183 | |
| PROTO_OA_ORDER_LIST_BY_POSITION_ID_RES | 2184 | |
| PROTO_OA_DEAL_OFFSET_LIST_REQ | 2185 | |
| PROTO_OA_DEAL_OFFSET_LIST_RES | 2186 | |
| PROTO_OA_GET_POSITION_UNREALIZED_PNL_REQ | 2187 | |
| PROTO_OA_GET_POSITION_UNREALIZED_PNL_RES | 2188 | |
ProtoOAPosition
Trade position entity.
| Field | Type | Label | Description |
| positionId | int64 | Required | The unique ID of the position. Note: trader might have two positions with the same id if positions are taken from accounts from different brokers. |
| tradeData | ProtoOATradeData | Required | Position details. See ProtoOATradeData for details. |
| positionStatus | ProtoOAPositionStatus | Required | Current status of the position. |
| swap | int64 | Required | Total amount of charged swap on open position. |
| price | double | Optional | VWAP price of the position based on all executions (orders) linked to the position. |
| stopLoss | double | Optional | Current stop loss price. |
| takeProfit | double | Optional | Current take profit price. |
| utcLastUpdateTimestamp | int64 | Optional | The Unix time in milliseconds of the last change of the position, including amend SL/TP of the position, execution of related order, cancel or related order, etc. |
| commission | int64 | Optional | Current unrealized commission related to the position. |
| marginRate | double | Optional | Rate for used margin computation. Represented as Base/Deposit. |
| mirroringCommission | int64 | Optional | Amount of unrealized commission related to following of strategy provider. |
| guaranteedStopLoss | bool | Optional | If TRUE then position's stop loss is guaranteedStopLoss. |
| usedMargin | uint64 | Optional | Amount of margin used for the position in deposit currency. |
| stopLossTriggerMethod | ProtoOAOrderTriggerMethod | Optional | Stop trigger method for SL/TP of the position. |
| moneyDigits | uint32 | Optional | Specifies the exponent of the monetary values. E.g. moneyDigits = 8 must be interpret as business value multiplied by 10^8, then real balance would be 10053099944 / 10^8 = 100.53099944. Affects swap, commission, mirroringCommission, usedMargin. |
| trailingStopLoss | bool | Optional | If TRUE then the Trailing Stop Loss is applied. |
ProtoOAPositionStatus
Position status ENUM.
| Name | Value | Description |
| POSITION_STATUS_OPEN | 1 | |
| POSITION_STATUS_CLOSED | 2 | |
| POSITION_STATUS_CREATED | 3 | Empty position is created for pending order. |
| POSITION_STATUS_ERROR | 4 | |
ProtoOAPositionUnrealizedPnL
| Field | Type | Label | Description |
| positionId | int64 | Required | The position ID. |
| grossUnrealizedPnL | int64 | Required | The gross unrealized PnL of the position denoted in the account deposit currency. |
| netUnrealizedPnL | int64 | Required | The net unrealized PnL of the position denoted in the account deposit currency. It does not include potential closing commission. |
ProtoOAQuoteType
Price quote type.
| Name | Value | Description |
| BID | 1 | |
| ASK | 2 | |
ProtoOAStopOutStrategy
The strategy for choosing which Position to close during a Stop Out
| Name | Value | Description |
| MOST_MARGIN_USED_FIRST | 0 | A Stop Out strategy that closes a Position with the largest Used Margin |
| MOST_LOSING_FIRST | 1 | A Stop Out strategy that closes a Position with the least PnL |
ProtoOASwapCalculationType
Enum for specifying SWAP calculation type for symbol.
| Name | Value | Description |
| PIPS | 0 | Specifies type of SWAP computation as PIPS (0) |
| PERCENTAGE | 1 | Specifies type of SWAP computation as PERCENTAGE (1, annual, in percent) |
| POINTS | 2 | Specifies type of SWAP computation as POINTS (2) |
ProtoOASymbol
Trading symbol entity.
| Field | Type | Label | Description |
| symbolId | int64 | Required | The unique identifier of the symbol in specific server environment within cTrader platform. Different servers have different IDs. |
| digits | int32 | Required | Number of price digits to be displayed. |
| pipPosition | int32 | Required | Pip position on digits. |
| enableShortSelling | bool | Optional | If TRUE then the short selling with the symbol is enabled. |
| guaranteedStopLoss | bool | Optional | If TRUE then guaranteed stop loss (GSL) orders are allowed for this symbol, i.e. the symbol's GSL execution policy is not DISABLED. Limited Risk accounts (ProtoOATrader.isLimitedRisk = true) must set guaranteedStopLoss on orders for such symbols. |
| swapRollover3Days | ProtoOADayOfWeek | Optional | Day of the week when SWAP charge amount will be tripled. Doesn't impact Rollover Commission. |
| swapLong | double | Optional | SWAP charge for long positions. |
| swapShort | double | Optional | SWAP charge for short positions. |
| maxVolume | int64 | Optional | Maximum allowed volume in cents for an order with a symbol. |
| minVolume | int64 | Optional | Minimum allowed volume in cents for an order with a symbol. |
| stepVolume | int64 | Optional | Step of the volume in cents for an order. |
| maxExposure | uint64 | Optional | Value of max exposure per symbol, per account. Blocks execution if breached. |
| schedule | RepeatedField<ProtoOAInterval> | Repeated | Symbol trading interval, specified in seconds starting from SUNDAY 00:00 in specified time zone. |
| commission | int64 | Optional | Commission base amount. Total commission depends on commissionType. Use preciseTradingCommissionRate. |
| commissionType | ProtoOACommissionType | Optional | Commission type. See ProtoOACommissionType for details. |
| slDistance | uint32 | Optional | Minimum allowed distance between stop loss and current market price. |
| tpDistance | uint32 | Optional | Minimum allowed distance between take profit and current market price. |
| gslDistance | uint32 | Optional | Minimum allowed distance between guaranteed stop loss and current market price. |
| gslCharge | int64 | Optional | Guaranteed stop loss charge rate, expressed in the unit given by distanceSetIn. In points mode it is a price distance per unit of volume: divide by 10^digits, then multiply by volume and the exchange rate (or by stake and 10^pipPosition for spread betting) to get the fee charged in the deposit currency. In percentage mode it is hundredths of a percent (100 means 1%), applied to the position price to get that same price distance, so the fee is that percent of the position value. Charged once, when the guaranteed protective order is accepted, and not when the guaranteed stop loss triggers. |
| distanceSetIn | ProtoOASymbolDistanceType | Optional | Whether slDistance, tpDistance, gslDistance and gslCharge are expressed in points or as a percentage of the price. |
| minCommission | int64 | Optional | Minimum commission amount per trade. Use preciseMinCommission. |
| minCommissionType | ProtoOAMinCommissionType | Optional | Minimum commission Type. See ProtoOAMinCommissionType for details. |
| minCommissionAsset | string | Optional | Currency for minimum commission. (USD or quote currency). |
| rolloverCommission | int64 | Optional | Administrative Fee, charged instead of Swaps if the Account is marked as a "Shariah Compliant (Swap Free)". The Administrative Fee is charged daily as USD per current open volume of Position in lots. The Account charged in the Deposit currency. |
| skipRolloverDays | int32 | Optional | Initial period before the first rolloverCommission will be charged on the account. |
| scheduleTimeZone | string | Optional | Time zone for the symbol trading intervals. |
| tradingMode | ProtoOATradingMode | Optional | Rules for trading with the symbol. See ProtoOATradingMode for details. |
| rolloverCommission3Days | ProtoOADayOfWeek | Optional | Day of the week (in UTC) when Administrative Fee charge amount will be tripled. Applied only if RolloverChargePeriod = 0 or 1. |
| swapCalculationType | ProtoOASwapCalculationType | Optional | Specifies type of SWAP computation as PIPS (0) or PERCENTAGE (1, annual, in percent). |
| lotSize | int64 | Optional | Lot size of the Symbol (in cents). |
| preciseTradingCommissionRate | int64 | Optional | Commission base amount. Total commission depends on commissionType: for non-percentage types it is multiplied by 10^8, for percentage of value commission type it is multiplied by 10^5. |
| preciseMinCommission | int64 | Optional | Minimum commission amount per trade multiplied by 10^8. |
| holiday | RepeatedField<ProtoOAHoliday> | Repeated | List of holidays for this symbol specified by broker. |
| pnlConversionFeeRate | int32 | Optional | Percentage (1 = 0.01%) of the realized Gross Profit, which will be paid by the Trader for any trade if the Quote Asset of the traded Symbol is not matched with the Deposit Asset. |
| leverageId | int64 | Optional | The unique identifier of dynamic leverage entity. https://help.ctrader.com/ctrader/trading/dynamic-leverage |
| swapPeriod | int32 | Optional | Period of charging swaps in hours. 24 means swaps will be charged 1 time per day, 12 - every 12 hours, 8 - every 8 hours, etc. |
| swapTime | int32 | Optional | Time in minutes from 00:00 (UTC) when intraday swaps are charged for the first time. |
| skipSWAPPeriods | int32 | Optional | Count of swapPeriods before the first SWAP charge. |
| chargeSwapAtWeekends | bool | Optional | If enabled, SWAP will be charged for all days of the week, including Saturday and Sunday. |
| measurementUnits | string | Optional | Specifies the units in which the base Asset of the Symbol is denominated. |
ProtoOASymbolCategory
Symbol category entity.
| Field | Type | Label | Description |
| id | int64 | Required | The unique identifier of the symbol category. |
| assetClassId | int64 | Required | Link to the asset class. One asset class can have many symbol categories. |
| name | string | Required | Category name. |
| sortingNumber | double | Optional | The number used for sorting Symbol Categories in the UI (lowest number should appear at the top). |
ProtoOASymbolDistanceType
Enum for specifying stop loss and take profit distances.
| Name | Value | Description |
| SYMBOL_DISTANCE_IN_POINTS | 1 | |
| SYMBOL_DISTANCE_IN_PERCENTAGE | 2 | |
ProtoOATickData
Historical tick data type.
| Field | Type | Label | Description |
| timestamp | int64 | Required | The Unix time in milliseconds of the tick. See ProtoOAGetTickDataRes.tickData for details. |
| tick | int64 | Required | Tick price. |
ProtoOATimeInForce
Order's time in force ENUM.
| Name | Value | Description |
| GOOD_TILL_DATE | 1 | |
| GOOD_TILL_CANCEL | 2 | |
| IMMEDIATE_OR_CANCEL | 3 | |
| FILL_OR_KILL | 4 | |
| MARKET_ON_OPEN | 5 | |
ProtoOATotalMarginCalculationType
Enum for specifying margin calculation type for an account.
| Name | Value | Description |
| MAX | 0 | |
| SUM | 1 | |
| NET | 2 | |
ProtoOATradeData
Position/order trading details entity.
| Field | Type | Label | Description |
| symbolId | int64 | Required | The unique identifier of the symbol in specific server environment within cTrader platform. Different brokers might have different IDs. |
| volume | int64 | Required | Volume in cents (e.g. 1000 in protocol means 10.00 units). |
| tradeSide | ProtoOATradeSide | Required | Buy, Sell. |
| openTimestamp | int64 | Optional | The Unix time in milliseconds when position was opened or order was created. |
| label | string | Optional | Text label specified during order request. |
| guaranteedStopLoss | bool | Optional | If TRUE then position/order stop loss is guaranteedStopLoss. |
| comment | string | Optional | User-specified comment. |
| measurementUnits | string | Optional | Specifies the units in which the Symbol is denominated. |
| closeTimestamp | uint64 | Optional | The Unix time in milliseconds when a Position was closed |
ProtoOATrader
Trading account entity.
| Field | Type | Label | Description |
| ctidTraderAccountId | int64 | Required | The unique Trader's Account ID used to match the responses to the Trader's Account. |
| balance | int64 | Required | Current account balance. |
| balanceVersion | int64 | Optional | Balance version used to identify the final balance. Increments each time when the trader's account balance is changed. |
| managerBonus | int64 | Optional | Amount of broker's bonus allocated to the account. |
| ibBonus | int64 | Optional | Amount of introducing broker bonus allocated to the account. |
| nonWithdrawableBonus | int64 | Optional | Broker's bonus that cannot be withdrew from the account as cash. |
| accessRights | ProtoOAAccessRights | Optional | Access rights that an owner has to the account in cTrader platform. See ProtoOAAccessRights for details. |
| depositAssetId | int64 | Required | Deposit currency of the account. |
| swapFree | bool | Optional | If TRUE then account is Shariah compliant. |
| leverageInCents | uint32 | Optional | Account leverage (e.g. If leverage = 1:50 then value = 5000). |
| totalMarginCalculationType | ProtoOATotalMarginCalculationType | Optional | Margin computation type for the account (MAX, SUM, NET). |
| maxLeverage | uint32 | Optional | Maximum allowed leverage for the account. Used as validation when a Trader can change leverage value. |
| frenchRisk | bool | Optional | If TRUE then account is AMF compliant. Use isLimitedRisk and limitedRiskMarginCalculationStrategy. |
| traderLogin | int64 | Optional | ID of the account that is unique per server (Broker). |
| accountType | ProtoOAAccountType | Optional | Account type: HEDGED, NETTED, etc. |
| brokerName | string | Optional | Some whitelabel assigned to trader by broker at the moment of account creation. |
| registrationTimestamp | int64 | Optional | The Unix timestamp in milliseconds of the account registration. Should be used as minimal date in historical data requests. |
| isLimitedRisk | bool | Optional | If TRUE then account is compliant to use specific margin calculation strategy. Such accounts are require to have guaranteed stop loss on all positions. |
| limitedRiskMarginCalculationStrategy | ProtoOALimitedRiskMarginCalculationStrategy | Optional | Special strategy used in margin calculations for this account (if account isLimitedRisk). |
| moneyDigits | uint32 | Optional | Specifies the exponent of the monetary values. E.g. moneyDigits = 8 must be interpret as business value multiplied by 10^8, then real balance would be 10053099944 / 10^8 = 100.53099944. Affects balance, managerBonus, ibBonus, nonWithdrawableBonus. |
| fairStopOut | bool | Optional | If TRUE - Position is fully closed on Stop Out, if FALSE - smart (partial closing) Stop Out is applied, if unspecified - Stop Out format is determined by Broker. |
| stopOutStrategy | ProtoOAStopOutStrategy | Optional | The Stop Out strategy that is used for this Trader. The Trader can change the value in the cTrader UI if this option is not disabled by the Broker |
ProtoOATradeSide
Trader side ENUM.
Used for order, position, deal.
| Name | Value | Description |
| BUY | 1 | |
| SELL | 2 | |
ProtoOATradingMode
Enum for specifying symbol trading mode.
| Name | Value | Description |
| ENABLED | 0 | |
| DISABLED_WITHOUT_PENDINGS_EXECUTION | 1 | |
| DISABLED_WITH_PENDINGS_EXECUTION | 2 | |
| CLOSE_ONLY_MODE | 3 | |
ProtoOATrendbar
Historical Trendbar entity.
| Field | Type | Label | Description |
| volume | int64 | Required | Bar volume in ticks. |
| period | ProtoOATrendbarPeriod | Optional | Bar period. |
| low | int64 | Optional | Low price of the bar. |
| deltaOpen | uint64 | Optional | Delta between open and low price. open = low + deltaOpen. |
| deltaClose | uint64 | Optional | Delta between close and low price. close = low + deltaClose. |
| deltaHigh | uint64 | Optional | Delta between high and low price. high = low + deltaHigh. |
| utcTimestampInMinutes | uint32 | Optional | The Unix time in minutes of the bar, equal to the timestamp of the open tick. |
ProtoOATrendbarPeriod
Trendbar period ENUM.
| Name | Value | Description |
| M1 | 1 | |
| M2 | 2 | |
| M3 | 3 | |
| M4 | 4 | |
| M5 | 5 | |
| M10 | 6 | |
| M15 | 7 | |
| M30 | 8 | |
| H1 | 9 | |
| H4 | 10 | |
| H12 | 11 | |
| D1 | 12 | |
| W1 | 13 | |
| MN1 | 14 | |