# 5-3、經紀商API
# 經紀商API
 此頁面上的所有內容僅與交易終端相關。
經紀商API是一種能讓你在線交易的接口。它的主要目的是將我們的圖表與您的交易邏輯連接起來。就`JS`而言,它是一個預期暴露特定接口的`對象`。下面是一個API的**\*方法**,終端將有這樣一個列表。
## 必要的方法
#### constructor(host)
經紀商API的構造函數通常需要[交易主機](Trading-Host.html)。
#### positions : Promise
交易終端調用這種方法來請求倉位。你應該返回[倉位](Trading-Objects-and-Constants.html#position)數組。
#### orders : Promise
交易終端調用這種方法來請求訂單。你應該返回[訂單](Trading-Objects-and-Constants.html#order)數組。
#### executions(symbol) : Promise
交易終端調用這種方法來請求執行。你應該返回[執行](Trading-Objects-and-Constants.html#execution)數組。
#### trades : Promise
交易終端調用這種方法來請求交易(個別倉位)。 你應該返回[交易對象](Trading-Objects-and-Constants.html#trade)數組。
#### chartContextMenuActions(e)
圖表可以在菜單中擁有一個子菜單`交易`。 返回子菜單的項目列表。 格式與`buttonDropdownItems`相同。
`e` 是瀏覽器傳遞的上下文對象
#### connectionStatus()
通常你不需要返回`1`以外的值,因為當你創建widget時經紀商已經連接。 如果要在加載數據時在底部面板中顯示一個spinner,則可以使用它。 可能的返回值是:
```
ConnectionStatus.Connected = 1
ConnectionStatus.Connecting = 2
ConnectionStatus.Disconnected = 3
ConnectionStatus.Error = 4
```
#### isTradable(symbol)
該功能是浮動交易面板所必需的。通過面板進行交易的能力取決于這個函數的結果:`true`還是`false`。 如果所有商品都可以交易,則不需要實現這個方法。
#### accountManagerInfo()
此功能用于返回賬戶管理器的信息。請參閱[賬戶管理器](Account-Manager.html)了解更多信息。
#### showOrderDialog([order](Trading-Objects-and-Constants.html#order))
當用戶請求創建或修改訂單時,此功能由圖表調用。
所以我們給您使用您自己的對話框的能力。
#### placeOrder([order](Trading-Objects-and-Constants.html#order), silently)
方法在用戶想要下訂單時調用。 訂單預先填寫了部分或全部信息。 如果`silently`是`true`,則不顯示任何對話框。
#### modifyOrder([order](Trading-Objects-and-Constants.html#order), silently, focus)
1. `order` 是要修改的訂單對象
2. `silently` - 如果是 `true` ,則不應顯示任何訂單對話框
3. `focus` - [OrderTicketFocusControl constants](Trading-Objects-and-Constants.html#orderticketfocuscontrol)。它可以通過圖表初始化。
方法在用戶想要修改現有訂單時被調用。
#### cancelOrder(orderId, silently)
這個方法被調用來取消給定`id`的單個訂單。 如果`silently`是`true`,則不顯示任何對話框。
#### cancelOrders(symbol, side, ordersIds, silently)
1. `symbol` - symbol string
2. `side`: [Side](Trading-Objects-and-Constants.html#side) or `undefined`
3. `ordersIds` - `symbol`和`side`收集的ids。如果`silently`是`true`,則不顯示任何對話框。
這個方法被調用來取消`symbol`和`side`的多個訂單。
#### editPositionBrackets(positionId, focus)
如果`supportPositionBrackets`配置標志打開,將顯示一個用于編輯止盈和止損的對話框,此方法將被調用。 1.`positionId`要修改的現有倉位ID 2.`focus` - [Focus constant](Trading-Objects-and-Constants.html#focusoptions%5D)。
#### closePosition(positionId, silently)
如果`supportClosePosition`配置標志打開,通過倉位id平倉時,此方法將被調用。 如果`silently`是`true`,則不顯示任何對話框。
#### reversePosition(positionId, silently)
如果`supportReversePosition`配置標志打開,通過倉位id反轉時,此方法將被調用。 如果`silently`是`true`,則不顯示任何對話框。
#### editTradeBrackets(tradeId, focus)
如果`supportTradeBrackets`配置標志打開,將顯示一個用于編輯止盈和止損的對話框。 1.`tradeId`是要修改的交易id 2.`focus` - [Focus constant](Trading-Objects-and-Constants.html#focusoptions%5D)。
#### closeTrade(tradeId, silently)
如果`supportCloseTrade`配置標志打開以通過交易id關閉交易,則調用此方法。 如果`silently`是`true`,則不顯示任何對話框。
#### symbolInfo(symbol) : Deferred (or Promise)
1. `symbol` - symbol string
這個方法由內部的Order Dialog,DOM面板和浮動交易面板調用,以獲取商品信息。 結果是具有以下數據的對象:
- `qty` - 對象擁有這3個屬性:`min`、`max`、`step`,用于指定數量的`step`和邊界。
- `pipSize` - 點數的大小(例如,EURUSD為0.0001)
- `pipValue` - 賬戶幣種的點數值(例如,對于以美元為賬戶的EURUSD為1)
- `minTick` - 最低的價格變動(例如,EURUSD為0.00001)。 它用于價格字段。
- `description` - 要在對話框中顯示的描述
- `type` - 商品類型, 只要 `forex` 比較特殊 - 它允許在訂單對話框中檢查負的點數。
- `domVolumePrecision` - DOM 賣出/買入量的小數位數(可選,默認為0)
#### accountInfo() : Deferred (或 Promise)
這個方法被內部的Order Dialog調用來獲取帳戶信息。 現在應該只返回一個字段:
1. currencySign:字符串 - 這是一個計數貨幣的標志
由于這種方法被調用,經紀商應該停止提供利潤/損失。
#### subscribeEquity()
如果您使用標準訂單對話框并支持止損,則應實現這個方法。 由于這種方法被調用,經紀商應該通過[equityUpdate](Trading-Host.html#equityupdateequity)方法提供凈資產更新。
#### unsubscribeEquity()
如果您使用標準訂單對話框并支持止損,則應實現這個方法。 由于這種方法被調用,經紀商應該停止提供凈資產更新。
這就是它!
# 也可以看看
- [如何連接](Widget-Constructor.html#brokerfactory)你的交易控制器到圖表
- [交易主機](Trading-Host.html)
- 序言
- 更新日志
- 1、Charting Library是什么
- 2-1、圖表庫內容
- 2-2、運行圖表庫
- 3-1、如何連接我的數據
- 3-2、JS Api
- 3-3、UDF
- 3-4、Symbology
- 3-5、交易時段
- 3-6、報價
- 4-1、定制概述
- 4-2、Widget構造器
- 4-3、Widget方法
- 4-4、圖表方法
- 4-5、功能集
- 4-7、定制的使用案例
- 5-1、交易終端簡介
- 5-2、交易控制器
- 5-3、經紀商API
- 5-4、交易主機
- 5-5、賬戶管理器
- 5-6、交易對象和常量
- 6、儲存和載入圖表
- 7、創建自定義指標
- 7、最佳做法
- 9、經常被問到的問題
- 10、版本變更點
- 周期
- 時間范圍
- 本地化
- 覆蓋
- 繪圖覆蓋
- 指標覆蓋
- 形狀與覆蓋
- 訂閱
- 交易元語
- 在K線上做標記
- 委托
- WatchedValue
- 指標API
- 形狀API
- 容器API
- 價格坐標Api