Difference between revisions of "Auto Trading"

From MultiCharts
Jump to navigation Jump to search
Line 63: Line 63:
 
=== Cancel Market Orders as Obsolete If not Filled Within X Seconds ===
 
=== Cancel Market Orders as Obsolete If not Filled Within X Seconds ===
  
This option sets the timeout to cancel market orders not filled within specified time. If the option is not enabled any market order will be cancelled in 40 seconds automatically.
+
This option sets the timeout to cancel market orders not filled within specified time. If the option is not enabled any market order will be cancelled in 40+ seconds automatically.
  
 
<br>
 
<br>

Revision as of 12:26, 8 January 2014

Auto Trading tab

Require Order Confirmation

It is possible to manually confirm or reject strategy order transmission to the order execution gateway. Order Confirmation is set in the Auto Trading tab of the Strategy Properties window: Require Order Confirmation

To learn more, see Setting Up Auto Trading in MultiCharts

With Order Confirmation selected, each time that one or more orders are generated, a New Order dialog box displaying the orders will appear in the center of the desktop. To confirm order transmission, click Transmit Orders, and to prevent order transmission, click Ignore Orders.

  • When more than one order is displayed in the New Order dialog box, it is not possible to transmit one order and ignore another; ether all of the orders are transmitted, or all of the orders are ignored.
  • If neither Transmit Orders or Ignore Orders is selected before a new Market order or set of Market orders is generated, or before a new bar is started, the previous order or set of orders is ignored and not sent to the execution gateway.


Note: Order transmission confirmation affects only the transmission of the strategy order to the execution gateway; once the order has been transmitted, execution of the order by the broker is subject to market conditions.


Replace to Market Partially Filled Orders

If the option is turned on, the unfilled part of any partially filled price order remaining unfilled by the end of the current bar will be converted into market order and will be sent on open of next bar.

Note: If conditions for order generation are met on the next bar, the unfilled part of the order will not be converted into market one, it will be sent as original order but with number of remained unfilled contracts.


Show Order Execution Status

If the option is turned on, status of any order placed from this chart will be displayed in a pop-up alert message in the right bottom corner of the screen.

Note: Since MultiCharts 7.0 all standard alerts are disabled by default. It means that the checkbox won't work until the required flag in registry in on: HKEY_CURRENT_USER\Software\TS Support\MultiCharts\TraderServer\GlobalMessenger\ShowAlerts.


Optimize Order Flow

If One-Cancel-Others group is emulated in MultiCharts the situation when more than one order is filled is possible One Cancels Other (OCO) orders are the price orders sent in a group. When any of OCO orders is filled or partially filled, the system cancels or reduces size of other orders in this OCO-group.

Note: Reduce size functionality is supported by Interactive Brokers only: if one order in OCO group is partially filled, others are reduced in size proportionally.

There are two types of OCO-groups in MultiCharts: Native and Simulated.

Native OCO-group is used when the broker’s API supports OCO-groups. In this case all OCO orders are sent to the broker directly and unfilled OCO orders will be cancelled by the broker. (Native OCO-group is supported by Interactive Brokers only).

Simulated OCO-group means that all OCO orders will be sent to the broker, but once one of them is filled, other orders from this OCO group will be cancelled by MultiCharts. In this case, when one of the OCO orders is filled, MultiCharts will send a command to cancel or reduce size of the second OCO order to the broker.

In case of high market volatility there may be not enough time to cancel the order and therefore both orders may be filled. Both orders also may be filled in the unlikely event of crash or connection loss.

Optimize Order Flow optimizes the process of sending orders to broker in order to avoid overfill.

Example 1: You are flat. Strategy generates 3 buy limit orders. Position limits are set to 2 entry orders in the same direction as the currently held position. MultiCharts will send to broker only 2 orders with the prices more likely to be filled depending on the current market price.


Example 2: The position at broker is +3. Strategy generates 3 sell limit orders and 3 sell stop orders. MultiCharts will send to broker 3 OCO group in the following sequence:
  1. MC sends 1 stop order and 1 limit order with the prices most likely to be filled.
  2. When one of these 2 orders is filled, the other is cancelled.
  3. MC sends 1 stop order and 1 limit order with the prices most likely to be filled (among the rest 2 stops and 2 limits).
  4. When one of these 2 orders is filled, the other is cancelled.
  5. MC sends the last 2 orders: 1 stop order and 1 limit order.
  6. When one of these 2 orders is filled, the other is cancelled.


Example 3: You are flat. Strategy generates 2 sell market orders: order #1 and order #2. Position limits are set to 2 entry orders in the same direction as the currently held position. MultiCharts will send to broker 1 sell market order with the size = size of the order #1 + size of the order#2


Cancel Market Orders as Obsolete If not Filled Within X Seconds

This option sets the timeout to cancel market orders not filled within specified time. If the option is not enabled any market order will be cancelled in 40+ seconds automatically.


Audio Alert

If the feature is turned on, it triggers a sound alert when an order placed by a strategy from the chart is filled. Once the box is checked, the File field becomes active and allows you to locate a sound file to play when an order is filled. To select the file, click the "..." button. It is possible to specify if the sound file should be played once or repeated by selecting one of these options below the File field. After the file is specified, one can try it by clicking the Test button.

Note: Only .wav file format is supported.


Unfilled Strategy Order Replacement

There 2 checkboxes in this sections. If they are checked:

  1. The first one converts unexecuted limit/stop only entry orders to market orders after X seconds.
  2. The second one converts unexecuted limit/stop only exit orders to market orders after X seconds.
Note: If one of the described boxes is checked, then an entry/exit order maybe converted into a market order almost at once simply because price hit its level, but the order queue is too long and the order fails to be filled.


Recalculate on Broker Events

The option can be used to force the strategy to be recalculated after a certain event during live trading. One can check the following events:

  1. When Market Position Changes.
  2. When an Order is Filled.
Note: Without enabled Intra-Bar Order Generation (IOG) the strategy will be recalculated, but it will place no new orders intrabar because of this setting.
Note 2: If strategy generates both entry and exit orders at the same time when there is no market position opened, only the entry order will be sent. When the market position is opened, the exit orders will be placed intrabar even without enabled Intra-Bar Order Generation (IOG), no matter if this feature is used or not.


Get Real-Time Data from

This option affects special orders monitoring and defining the moment to convert price orders into market ones.

Note: Special trailing stop order (SetDollarTraling) will be calculated based on the distance from the entry price order to the real-time price. The entry price is defined by the broker. In MC this price is the real price of order fill. It doesn't depend on trading mode or the source of real time.
i_OpenEquity, OpenPositionProfit keywords are not affected by this option, they are always calculated from chart prices.
Example: Autotrading mode is Async. (see Understanding Automated Trade Execution), Get Real-Time from Chart is selected, there is an executed entry and a trailing stop is sent. The trailing order price is calculated based on the entry order fill price at the broker and the real-time price from the chart.
  1. From Broker: Asks and Bids are taken from the connected broker.
  2. From Chart: depends on the BackTesting Mode:
a) If it is Classic Backtesting, then the data is taken from the data series 1;
b) If it is Extended Backtesting (see Precise Backtesting), then the data is taken from the Ask and Bid subseries.


Mode Selection

Automated execution from chart can be turned on in one of two available modes: synchronous and asynchronous:

  • In synchronous mode [SA] one can see the same open market position and active orders on the chart as at broker. All orders generated by historical calculation during are wiped out from the chart when auto execution is turned on. Executed order is displayed only if it has been executed at broker and the final status of the order has been received by MultiCharts.To use synchronous mode for auto trading select Entries/Exits are based on the execution confirmation by the broker (Sync)
    Note: Chart market position and broker market position are in synch only if no more than one chart is auto trading without any manual orders on a particular symbol connected a particular broker account, assuming that at the moment the automation was turned the broker market position was flat or, if it was not flat at broker, assigned manually on start of auto trading in MC to match it (see Assign the Initial Market Position at the Broker Settings). If more than 1 chart is auto trading in [SA] mode and/or manual trading is used as the same time on the same symbol at broker, chart can easily get out of synch. To learn more, see Trading from Multiple Charts on One Instrument.

  • In asynchronous mode [AA] the strategy on the chart starts auto trading based on the historically calculated orders and open position, displaying all generated by the script orders on chart even if an order was not executed at broker. In AA strategy on chart acts separately from broker.
    To use asynchronous mode for auto trading select Entries/Exits are independent of the execution status at the broker (Async)



Assign the Initial Market Position at the Broker Settings

Whenever automated trading is turned on a srtrategy starts working with a particular market position. Depending on the mode of auto trading the position can vary. In [SA] mode it is always flat on chart when you turn it on, but in [AA] mode it can be short, flat or long, depending on what was generated in backtesting (to learn more see Mode Selection). This option allows you to control the initial market position for the strategy to start calculation and order generation when you turn on automated trading.

Two options are available:

  • Show the Assign the Initial Market Position at the Broker Dialogue
    By default it this variant is selected. If market position on the chart is not flat and automation is turned on, than the Assign the Initial Market Position Dialogue window will pop up. There the direction of current market position, number of open contracts, average entry price and maximum position profit amount can be put.
    Note: The Show Always box should be checked to get the Assign the Initial Market Position Dialogue every time the automation is enabled, no matter what is the strategy position by that moment. It is extremely important for [SA] mode, because it is always flat when automation is turned on in [SA].


  • Do not Show the Assign the Initial Market Position at the Broker Dialogue
    When this variant is selected it opens two sub variants:
  • Assume the Initial Market Position at the Broker is always FLAT when automation is enabled.
    Example: Assume that according to your backtesting the current position is 1 contract long and your real broker position is 1 contract short. With this option you will have +1 on your chart, flat for auto trading engine within the software and -1 short at broker, when the automation is turned on.
  • Assume the Initial Market Position at the Broker is the SAME AS on the CHART when automation is enabled.


Select Broker Plug-in

Each chart has a Broker Plug-in selected for it by default when it is created. Broker Plug-ins are similar to Broker Profiles. All information about broker plug-in configuration is stored in a corresponding Broker Profile.

Example: If the chart has data from Interactive Brokers, IB automated trading plug-in is selected by default for this chart. Connection settings are the same as in the corresponding Broker Profile (except for Default Account settings for FXCM Broker Profile).

If the instrument on the chart is provided by a data vendor that is not a broker, then the default plug-in for automated trading will be the same as the first existing Broker Profile on the Trade Bar.

Example: If the first Broker Profile on the Trade Bar is Dukascopy and a new chart is created using eSignal data feed, then Dukascopy will be selected by default as the broker plug-in for automated trading.

To change a Broker Plug-in for a particular chart, click the arrow in the Broker Plug-in field to get a dropdown list and choose the required one.

Settings of the Plug-in can be adjusted and become different from the corresponding Broker Profile settings. Not all the settings are the same, to learn more about particular Broker Plug-ins, see here Broker Plug-ins.


Distinguished Features of Auto Trading

Auto Trading Status Switch

The Auto Trading Status Switch is a button on the chart that lets the user turn on auto trading quickly. The button will be labeled either SA or AA depending on whether the user selected synchronous auto trading or asynchronous auto trading mode for the strategy.

By default, the location of this button is on the top left corner of the chart. However, it is possible to move it to a different location by doing the following:

  1. Select Format from the main menu.
  2. Select Window.
  3. In the Format Window dialogue box, select the Status Line tab.
  4. In the list box, find Automate Order Execution Switch.
  5. Click on Move Up or Move Down to change the order and the location. To remove it from the chart, deselect it.


Automatic Termination of Auto Trading

Auto Trading is stopped automatically if any of the following occurs:

  • Any changes are made to the symbol chart or charts, to which the strategy is applied: chart reload, adding, removing, changing any of the symbols or their request parameters that result in the strategy's recalculation (not to be confused with receiving historical data).
  • Any of the strategy signals are turned on or off
  • Any of the strategy signal inputs are changed
  • Any of the strategy signals are recompiled
  • Any signals are removed from or added to the strategy
  • Any strategy parameters are changed
  • Any Auto Trading parameters are changed
  • Connectivity between MultiCharts and the execution gateway has been lost and the disconnection time exceeded the specified acceptable level.


Pending Order Cancellation upon Termination of Auto Trading

If any orders are pending when Auto Trading is terminated, an Auto Trading Warning – Do you want to cancel the order? window appears.

A list of pending orders is displayed in the window.

To cancel some or all of the pending orders, select the check boxes to the left of the orders that are to be canceled, and clear the check boxes to the left of the orders that are not to be canceled, and click Cancel Order(s) .

To not cancel any of the pending orders, click Do Not Cancel Order(s) .


Closing of Open Positions upon Termination of Auto Trading

If any positions are open when Auto Trading is terminated, an Auto Trading Warning – Do you want to close position? window appears. A list of open positions is displayed in the window.

To close open positions, click Close Position.

To leave the positions open, click Do Not Close Position.


Auto Trading the Same Symbol from Multiple Charts

If the same symbol is traded from multiple charts, market position for each chart is tracked separately. For detailed review of such situation, please read Trading from Multiple Charts on One Instrument.



Tracking Market Position from the Broker During Auto Trading

In auto trading, there can be a de-synchronization between the market position of the strategy and the actual filled position from the broker. The de-synchronization is usually caused by orders that are submitted but not filled. In such cases, the user may want to have the strategy adjust calculations based on the actual filled position instead of adjusting the calculations manually.

PowerLanguage keywords are available to track the actual filled positions during auto trading. The user can use these keywords to enable hands free trading.

The following keywords are available:

i_MarketPosition_at_Broker

i_MarketPosition_at_Broker_for_The_Strategy

MarketPosition_at_Broker

MarketPosition_at_Broker_for_The_Strategy