# 5-2、交易控制器
# 交易控制器(已廢棄)
- - - - - -
此頁面上的所有內容僅適用于\[\[交易終端\]\]。
交易控制器是一種能使您在線交易的東西。其主要目的是將我們的圖表與您的交易邏輯連接起來。就`JS`而言,它是一個 `object` 以便公開特定的接口。 下面是一個終端控制器的 **方法** 。
## 必需的方法
#### setHost(host)
這種方法在初始化時通過\[\[交易主機\]\]傳遞給控制器。
#### configFlags()
實現這個方法來提供配置標志對象。 結果是具有以下鍵的對象,即可以`true`/`false`:
- supportReversePosition
經紀商支持反向交易。
如果經紀商不支持,則圖表將具有相反的按鈕,但會按相反的順序排列。
- supportClosePosition
經紀商支持平倉。
如果經紀人不支持,圖表將會有關閉按鈕,但會按順序排列。
- supportReducePosition
經紀商支持在沒有訂單的情況下更換倉位。
- supportPLUpdate
經紀人提供PL的持倉。 如果經紀商自己計算利潤/損失,它應該調用 \[\[plUpdate|Trading-Host#plupdatepositionid-pl\]\] 一旦PL改變了。 否則圖表將計算PL作為當前交易與持倉平均價格之間的差額。
- supportBrackets
經紀支持括號單(獲利和止損單)。如果此標志為 `true` ,則圖表將顯示倉位的編輯按鈕,并將 `Edit position...` 添加到倉位的上下文菜單。
- supportMultiposition
支持多重倉位可防止為反向交易創建默認實現。
- supportCustomBottomWidget
此標志可用于使用自定義更改默認的帳戶管理器小部件。
- showQuantityInsteadOfAmount
該標志可用于在訂單對話框中將“金額”更改為“數量”
- supportDOM
此標志用來啟用DOM小部件。 如果 `supportLevel2Data` 為 `false` 只有 `last price` 并且訂單將被顯示。
- supportLevel2Data
Level2數據用于DOM小部件。`subscribeDepth` 和 `unsubscribeDepth` 應該被實現。
- supportStopLimitOrders
此標志向訂單對話框添加止損訂單類型。
- supportMarketBrackets
使用此標志可以為市場訂單禁用括號單。 默認情況下啟用。
- supportEditAmount
此標志可幫助您在編輯現有訂單時禁用金額控制。
#### durations(): array of objects
訂單過期期權清單。 這是可選的。 如果您不希望在訂單中顯示持續時間,請勿實現。
對象有兩個key: `{ name, value }`.
例:
```
return [{ name: 'DAY', value: 'DAY' }, { name: 'GTC', value: 'GTC' }];
```
#### 持倉 : [Deferred](https://api.jquery.com/category/deferred-object/)
#### 訂單 : [Deferred](https://api.jquery.com/category/deferred-object/)
#### 執行信號(symbol) : [Deferred](https://api.jquery.com/category/deferred-object/)
圖表調用這些方法來請求位置/訂單/執行并在圖表上顯示它們。
您應該返回相應的列表\[\[positions|Trading-Objects-and-Constants#position\]\], \[\[orders|Trading-Objects-and-Constants#order\]\] or \[\[executions|Trading-Objects-and-Constants#execution\]\]
#### supportFloatingPanel()
此方法將返回`true`,以顯示浮動交易面板。
#### supportBottomWidget()
此方法將返回`true`,以顯示底層交易面板。
#### chartContextMenuItems(e)
圖表可以在上下文菜單中有子菜單 `交易` 。返回子菜單項的列表。格式是一樣的`buttondropdownitems`。 `e` 是瀏覽器傳遞的上下文對象
#### bottomContextMenuItems()
底部交易面板可以有一個上下文菜單。 返回此菜單的項目列表。 格式與 `buttonDropdownItems` 相同。
#### isTradable(symbol)
此方法是浮動交易面板所必需的。 是否可以訪問交易面板取決于這個函數的結果:`true`或`false`。如果所有符號都可以交易,則不需要使用此方法。
#### createBottomWidget(container)
當創建底部交易面板時需要調用這個函數。您應該創建DOM對象并將其附加到 `container`中。容器在需要時顯示一個垂直滾動條。
#### accountManagerInfo()
當supportCustomBottomWidget為`false`時,調用此方法。 返回用于構建帳戶管理器的信息。 有關詳細信息,請參閱\\ \[\\ \[帳戶管理器\] \]。
#### showOrderDialog(\[\[order|Trading-Objects-and-Constants#order\]\])
當用戶請求創建或修改訂單時,圖表會調用此函數。
所以我們給您一個自己的對話框,它100%由您管理。
#### placeOrder(\[\[order|Trading-Objects-and-Constants#order\]\], silently)
當用戶想要下訂單時調用方法。訂單預先填寫了部分或全部信息。 如果 `silently` 為`true`,則不顯示任何對話框。
#### modifyOrder(\[\[order|Trading-Objects-and-Constants#order\]\], silently, focus)
`order`是要修改的訂單對象 2.`silently` - 如果是`true`,則不顯示任何對話框 3.`focus` - \\ \[\\ \[Focus constant \\ | Trading-Objects-and-Constants \\ #focusoptions \] \]。 它可以由圖表初始化。
1. `order` 是要修改的訂單對象
2. `silently` - 為 `true` 時,不顯示任何對話框
3. `focus` - \[\[Focus constant|Trading-Objects-and-Constants#focusoptions\]\]. 它可以由圖表初始化。
當用戶要修改現有的訂單時調用方法。
#### cancelOrder(orderId, silently)
這個方法被調用來取消指定`id`的訂單。 如果 `silently` 為`true`,則不顯示任何對話框。
#### cancelOrders(symbol, side, ordersIds, silently)
1. `symbol` - 商品字符串
2. `side`: `"sell"` 或 `"buy"`
3. `ordersIds` - 已經被`symbol` 和 `side` 收集的訂單id列表 如果 `silently` 為`true`,則不顯示任何對話框。
此方法被調用以取消`symbol`和`side`的多個訂單。
#### editPositionBrackets(positionId, focus)
如果`supportBrackets`配置標志開啟顯示用于編輯利潤和止損的對話框,則調用此方法。
1. `positionId` 是要修改的現有位置的ID
2. `focus` - \[\[Focus constant|Trading-Objects-and-Constants#focusoptions\]\].
#### closePosition(positionId, silently)
如果`supportBrackets`配置標志開啟顯示用于平倉的對話框,則調用此方法。 如果 `silently` 為`true`,則不顯示任何對話框。
#### reversePosition(positionId, silently)
如果“supportReversePosition”配置標志打開,則通過id來反轉持倉,將調用此方法。 如果 `silently` 為`true`,則不顯示任何對話框。
#### symbolInfo(symbol) : Deferred (or Promise)
1. `symbol` - 商品字符串
該方法由內部Order Dialog,DOM面板和浮動交易面板調用以獲取商品信息。 結果是具有以下數據的對象: 對象具有 `min`, `max` and `step` 指定數量字段步驟和邊界的字段“min”,“max”和“step”。
- `qty` - object with fields `min`, `max` and `step` 它指定數量字段的步驟和邊界。
- `pipSize` - 大小為1個點數(例如,歐元兌美元0.0001)
- `pipValue` - 帳戶貨幣為1點的價值\\(例如,美元兌換EURUSD的1美元)
- `minTick` - 最低價格變動\\(例如,EURUSD \\ 0.00001)。 它用于價格領域。
- `description` - 要在對話框中顯示的說明
- `type` - 儀器類型,只有“forex”事項 - 它可以在訂單對話框中進行負點檢查
#### accountInfo() : Deferred (or Promise)
內部訂單對話框調用此方法獲取帳戶信息。
現在應該只返回一個字段: 1。currencysign:字符串 - 這是一個帳戶幣值的符號
#### subscribePL(positionId)
如果`supportPLUpdate` 配置標志為`true`,則應該執行方法。 由于該方法被經紀人調用,通過\\ \[\\ \[plUpdate \\ | Trading-Host \\#plupdatepositionid-pl \]\]方法提供損益。
#### unsubscribePL(positionId)
如果`supportPLUpdate` 配置標志為`true`,則應該執行方法。 由于這種方法被經紀人調用,來停止提供損益。
#### subscribeEquity()
如果您使用標準訂單對話框并支持止損,則應執行方法。 這種方法被經紀人調用,\[\[equityUpdate|Trading-Host#equityupdateequity\]\]
#### unsubscribeEquity()
如果您使用標準訂單對話框并支持止損,則應執行方法。 由于這種方法被經紀人導游,停止提供股權更新。
這就是它!
# See Also
- \[\[How to connect|Widget-Constructor#chart-trading\_controller\]\] your trading controller to the chart
- \[\[Trading Host\]\]
- 序言
- 更新日志
- 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