# Script contexts

When you save a script in the Run Script widget, you can give it a "context". This makes it available in a specific place within the Sway Charts Pro platform, rather than being part of the list of scripts for general use.

&#x20;

For example, you can set up a script so that it is included on the action menu for a trade or order (in the Trade List component, or from the chart marker for an open trade or pending order).

&#x20;

Scripts which have a context receive information about that context in their Framework.privateSettings, as described below.

&#x20;

### 9.1      Quote Board script context

Scripts which are assigned to the Quote Board context are displayed under the widget's Tools menu. For example, you could create a script which doubles up any open position on markets currently listed in the quote board.

&#x20;

The script receives the following information in its Framework.privateSettings about the current contents of the quote board:

&#x20;

| Member                 | Description                                                                                                                        |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| scriptContext          | Set to "quoteboard"                                                                                                                |
| listedInstruments\[]   | Array of all markets currently loaded into the quote board (potentially including markets filtered out, and not currently visible) |
| filteredInstruments\[] | Array of all markets which meet any filtering, and are currently visible in the quote board                                        |
| selectedInstruments\[] | Array of markets which are currently selected by the user (and highlighted) in the quote board                                     |

&#x20;

### 9.2      Trade List script context

Scripts which are assigned to the Trade List context are displayed under the widget's Tools menu. For example, you could create a script which calculates a technical indicator and closes any trade based on the indicator value for its market.

&#x20;

(Note: scripts can also be assigned to the Order Menu context. This causes them to be displayed under the All/Filtered Orders and Selected Orders sub-menus of the Tools menu.)

&#x20;

The script receives the following information in its Framework.privateSettings about the current contents of the trade list:

&#x20;

| Member            | Description                                                                                                                                                                         |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| scriptContext     | Set to "tradelist"                                                                                                                                                                  |
| listMode          | Selected mode for the list. One of "trades", "pending", or "all".                                                                                                                   |
| listedOrders\[]   | Array of all orders markets currently loaded into the trade list (which will match all the trades/orders currently existing on the account, depending on the value of the listMode) |
| filteredOrders\[] | Array of all orders which meet any filtering, and are currently visible in the trade list                                                                                           |
| selectedOrders\[] | Array of order which are currently selected by the user (and highlighted) in the trade list                                                                                         |

&#x20;

### 9.3      Chart script context

Scripts which are assigned to the Chart context are displayed under a chart's settings menu.

&#x20;

The script receives the following information in its Framework.privateSettings about the current chart:

&#x20;

| Member        | Description                                   |
| ------------- | --------------------------------------------- |
| scriptContext | Set to "chart"                                |
| instrumentId  | ID of the market being displayed on the chart |
| timeframe     | Timeframe being displayed on the chart        |
| timezone      | Selected time zone for the chart              |

&#x20;

### 9.4      Order Menu script context <a href="#toc104559799" id="toc104559799"></a>

Scripts which are assigned to the Order Menu context are displayed in the following places within Sway Charts Pro:

&#x20;

·      In the trade list widget, under the All/Filtered Orders and Selected Orders sub-menus of the Tools menu

·      In the pop-up action menu for an individual order in the trade list grid

·      In the pop-up action menu for an order from its marker on a trade chart

&#x20;

The script receives the following information in its Framework.privateSettings about the applicable orders. The orders\[] array will contain a single ID if used from the action menu of a chart marker or individual entry in the trade list grid. The array may contain multiple orders if used from the Tools menu of the trade list.

&#x20;

| Member        | Description                       |
| ------------- | --------------------------------- |
| scriptContext | Set to "ordermenu"                |
| orders\[]     | Array of applicable orders/trades |

&#x20;

&#x20;
