Trading Objects and Constants - kroim/charting-library-wiki GitHub Wiki
💹 All content on this page applies to Trading Terminal only.
NOTE: If you use TypeScript - you can import these constants/interfaces/types from the broker-api.d.ts file.
This is an object that should be passed in the constructor of the Trading Terminal to broker_config. Each field should have a boolean value (true/false):
-
supportReversePositionDefault:
falseBroker supports reversing of a position. If it is not supported by broker, the reverse position button will be hidden.
-
supportNativeReversePositionDefault:
falseBroker natively supports reversing of a position. If it is not natively supported by broker, Chart will place a reversing order.
-
supportClosePositionDefault:
falseBroker supports closing of a position. If it is not supported by broker, Chart will have the close button, but it will place a closing order.
-
supportPartialClosePositionDefault:
falseBroker supports partial closing of a position.
-
supportPartialCloseTradeDefault:
falseBroker supports partial closing of a trade.
-
supportReducePositionDefault:
falseBroker supports changing of a position without orders.
-
supportPLUpdateDefault:
falseBroker provides PL for a position. If the broker calculates profit/loss by itself it should call plUpdate as soon as PL is changed. Otherwise Chart will calculate PL as a difference between the current trade and an average price of the position.
-
supportMarginDefault:
falseBroker supports margin. If the broker supports margin it should call marginAvailableUpdate when the Trading Terminal subscribes using subscribeMarginAvailable.
-
supportOrderBracketsDefault:
falseBroker supports brackets (take profit and stop loss) for orders. If this flag is set to
truethe Chart will display additional fields in the order ticket and Modify button on a chart and in the Account Manager. -
supportPositionBracketsDefault:
falseBroker supports brackets (take profit and stop loss orders) for positions. If this flag is set to
truethe Chart will display an Edit button for positions and addEdit position...to the context menu of a position. -
supportTradeBracketsDefault:
falseBroker supports brackets for trades (take profit and stop loss orders). If this flag is set to
truethe Chart will display an Edit button for trades (individual positions) and addEdit position...to the context menu of a trade. -
supportTrailingStopDefault:
falseBroker supports trailing stop orders. If this flag is set to
true, then the chart displays trailing stop orders and a user can place a trailing stop order using the Order Ticket. -
supportPositionsDefault:
trueBroker supports positions. If it is set to
false, the Positions tab in the Account Manager will be hidden. -
supportTradesDefault:
falseBroker supports individual positions (trades). If it is set to
true, there will be two tabs in the Account Manager - Individual Positions and Net Positions. -
requiresFIFOCloseTradesDefault:
falseTrading account requires closing of trades in FIFO order.
-
supportCloseTradeDefault:
falseIndividual positions (trades) can be closed.
-
supportMultipositionDefault:
falseSupporting multiposition prevents creating the default implementation for a reversing position.
-
showQuantityInsteadOfAmountDefault:
falseThis flag can be used to change "Amount" to "Quantity" in the order dialog
-
supportCryptoExchangeOrderTicketDefault:
falseWhether the account is used to exchange(trade) crypto currencies. This flag switches the Order Ticket to the Crypto Exchange mode. It adds second currency quantity control, currency labels etc.
-
supportLevel2DataDefault:
falseLevel2 data is used for DOM widget.
subscribeDepthandunsubscribeDepthshould be implemented. -
supportMarketOrdersDefault:
trueThis flag adds market orders type to the order dialog.
-
supportLimitOrdersDefault:
trueThis flag adds limit orders type to the order dialog.
-
supportStopOrdersDefault:
trueThis flag adds stop orders type to the order dialog.
-
supportStopLimitOrdersDefault:
falseThis flag adds stop-limit orders type to the order dialog.
-
supportMarketBracketsDefault:
trueUsing this flag you can disable brackets for market orders. It is enabled by default.
-
supportModifyDurationDefault:
falseUsing this flag you can enable modification of the duration of the existing order. It is disabled by default.
-
supportModifyOrderDefault:
trueUsing this flag you can disable modification of the existing order. It is enabled by default.
-
supportAddBracketsToExistingOrderDefault:
trueUsing this flag you can disable adding brackets to the existing order. It is enabled by default.
-
supportBalancesDefault:
falseUsed for crypto currencies only. Allows to get crypto balances for an account. Balances are displayed as the first table of the Account Summary tab.
-
cancellingBracketCancelsParentOrderBroker cancels the base order if a stop loss or a take profit is cancelled.
-
cancellingOnePositionBracketsCancelsOtherBroker cancels the second protection order (stop loss or take profit) as well if the first one is cancelled by a user.
-
supportOrderPreviewDefault:
falseBroker provides the estimated commission, fees, margin and other information for the order without it actually being placed.
-
supportOrdersHistoryDefault:
falseBroker supports orders history. If it is set to
true, there will be an additional tab in the Account Manager - Orders History. TheordersHistorymethod should be implemented. It should return a list of orders with thefilled,cancelledandrejectedstatuses from previous trade sessions. -
closePositionCancelsOrdersDefault:
falseClosing a position cancels it's brackets.
-
supportOnlyPairPositionBracketsDefault:
falseStop LossandTake Profitare added or removed only together. -
durationForMarketOrdersDefault:
falseBroker supports durations for market order. If it is set to
true, then the Durations control for market orders will be displayed.
List of expiration options of orders. It is optional. Do not set it if you don't want the durations to be displayed in the order ticket.
The objects have the following keys: { name, value, hasDatePicker?, hasTimePicker?, default?, supportedOrderTypes? }.
-
name: String. Localized title of the duration. The title will be displayed in the Durataion control of the Order Ticket. -
value: String. Duration identifier. -
hasDatePicker: Boolean. If it is set totrue, then the Display date control in the Order Ticket for this duration type will be dispalyed. -
hasTimePicker: Boolean. If it is set totrue, then the Display time control in the Order Ticket for this duration type will be dispalyed. -
default: Boolean. Default duration. Only one duration object in the durations array can have atruevalue for this field. The default duration will be used when the user places orders in the silent mode and it will be the selected one when the user opens the order dialog for the first time. -
supportedOrderTypes: Array of OrderType. A list of types of orders for which this duration type will be displayed in the Duration control of the Order Ticket.
Example:
durations: [{ name: 'DAY', value: 'DAY' }, { name: 'WEEK', value: 'WEEK', default: true }, { name: 'GTC', value: 'GTC' }, { name: 'FOK', value: 'FOK', supportedOrderTypes: [OrderType.Market] }]Optional field. You can use it if you have custom fields in orders or positions that should be taken into account when showing notifications.
For example, if you have field additionalType in orders and you want the chart to show a notification when it is changed, you should set:
customNotificationFields: ['additionalType']Optional field. An object with options for the order ticket. Using these options you can customize the order ticket.
-
showTotal: booleanUsing this flag you can change
Trade ValuetoTotalin the Order Info section of the order ticket. -
customFields: (TextWithCheckboxFieldMetaInfo | CustomComboBoxMetaInfo)[];Using
customFieldsyou can add additional input fields to the order ticket.
Example:
customFields: [
{
inputType: 'TextWithCheckBox',
id: '2410',
title: 'Digital Signature',
placeHolder: 'Enter your personal digital signature',
value: {
text: '',
checked: false,
},
customInfo: {
asterix: true,
checkboxTitle: 'Save',
},
}
]Optional field. An object with options for the position ticket. Using these options you can customize the position ticket.
-
customFields: (TextWithCheckboxFieldMetaInfo | CustomComboBoxMetaInfo)[];Using
customFieldsyou can add additional input fields to the position ticket.
This optional field can be used to replace the standard Order Ticket and the Add Protection dialogs with your own.
Values of the following two fields are functions that are called by the Trading Terminal to show the dialogs. Each function shows a dialog and returns a Promise object that should be resolved when the operation is finished or cancelled.
NOTE: The returned Promise object should be resolved with either true or false value.
customUI: {
showOrderDialog?: (order: Order, focus?: OrderTicketFocusControl) => Promise<boolean>;
showPositionDialog?: (position: Position | Trade, brackets: Brackets, focus?: OrderTicketFocusControl) => Promise<boolean>;
}Describes a single order.
-
id: String -
symbol: String -
type: OrderType -
side: Side -
qty: Double -
status: OrderStatus -
limitPrice: double -
stopPrice: double -
avgPrice: double -
filledQty: double -
parentId: String. If order is a bracket parentOrderId should contain base order/position id. -
parentType: ParentType -
stopType: StopType It should be set to 1 (StopType.TrailingStop) for trailing stop orders. -
duration: OrderDuration -
customFields: CustomInputFieldsValues
Describes a single position.
-
id: String. Usually id should be equal to brokerSymbol -
symbol: String -
qty: positive number -
side: Side -
avgPrice: number
Describes a single trade (individual position).
-
id: String. Usually id should be equal to brokerSymbol -
symbol: String -
date: number (UNIX timestamp in milliseconds) -
qty: Double positive -
side: Side -
price: number
Describes a single execution. Execution is a mark on a chart that displays trade information.
-
symbol: String -
price: number -
time: Date -
side: Side -
qty: number
Describes a single action to put it into a dropdown or a context menu. It is a structure.
-
text: String -
checkable: Boolean. Set it to true if you need a checkbox. -
checked: Boolean. Value of the checkbox. -
enabled: Boolean -
action: function. Action is executed when user clicks the item. It has 1 argument - value of the checkbox if exists.
Describes information for the order.
-
title: String -
value: String
Constants describing an order status.
OrderType.Limit = 1
OrderType.Market = 2
OrderType.Stop = 3
OrderType.StopLimit = 4Constants describing an order/execution side.
Side.Buy = 1
Side.Sell = -1Constants describing a bracket order.
ParentType.Order = 1
ParentType.Position = 2Constants describing a stop order type.
StopType.StopLoss = 0
StopType.TrailingStop = 1Constants describing an order status.
OrderStatus.Canceled = 1 // order is canceled
OrderStatus.Filled = 2 // order is fully executed
OrderStatus.Inactive = 3 // bracket order is created but waiting for a base order to be filled
OrderStatus.Placing = 4 // order is not created on a broker side yet
OrderStatus.Rejected = 5 // order is rejected for some reason
OrderStatus.Working = 6 // order is created but not executed yetDuration or expiration of an order.
-
type: string identifier from the list that you pass to durations -
datetime: number
Object that describes a single crypto balance.
-
symbol: string; -
total: number; -
available: number; -
longName?: string; -
btcValue?: number;
Object that describes a single DOM response.
-
snapshot: BooleanPositive value means that previous data should be cleaned
-
asks: array of DOMELevel sorted by price in ascending order -
bids: array of DOMELevel sorted by price in ascending order
Single DOM price level object.
-
price: double -
volume: double
Constants that are used to set the focus when you open standard Order dialog or Position dialog.
OrderTicketFocusControl.LimitPrice = 1 // focus limit price for orders
OrderTicketFocusControl.StopPrice = 2 // focus stop price for orders
OrderTicketFocusControl.TakeProfit = 3 // focus take profit control
OrderTicketFocusControl.StopLoss = 4 // focus stop loss control
OrderTicketFocusControl.Quantity = 5 // focus quantity for orders-
stopLoss: double -
takeProfit: double -
trailingStopPips: double
An object with format method that can be used to format the number to a string.
An object that contains the results of broker specific user inputs (for example a digital signature). There are two possible kinds of custom fields: an input field with a checkbox and a custom combobox.
{
[fieldId: string]: TextWithCheckboxValue | string
}TextWithCheckboxValue is an object that is used for the input field with a checkbox and has two properties:
-
text: string -
checked: boolean
The result of a custom combobox is always a string that is entered by a user.
An object that decribes a custom input field with a checkbox.
-
inputType: 'TextWithCheckBox' -
id: string -
title: string -
placeHolder?: string -
value: TextWithCheckboxValue -
validator?: (value: string) => PositiveBaseInputFieldValidatorResult | NegativeBaseInputFieldValidatorResult -
customInfo: TextWithCheckboxFieldCustomInfo
An object that contains initial values for the custom input field with a checkbox.
-
text: string -
checked: boolean
An object that describes additional settings for the custom input field with a checkbox.
Using asterix property you can manage input type. If asterix is set to true then a password input will be rendered.
-
checkboxTitle: string -
asterix: boolean
An object that describes a custom combobox.
The value of ComboBox will be saved and will be used as a default value the next time you open the order dialog or panel, if saveToSettings is set to true.
-
inputType: 'ComboBox' -
id: string -
title: string -
items: CustomComboBoxItem[] -
saveToSettings?: boolean;
An object that describes an item of the custom combobox.
-
text: string -
value: string
An object that describes a positive validation result.
-
valid: true
An object that describes a negative validation result.
-
valid: false -
errorMessage: string