Changes

Jump to navigation Jump to search

Auto Trading

1,265 bytes added, 15:48, 9 October 2020
m
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 either 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.
=== Replace to Market Partially Filled Orders ===
<div style="background-color: #E3FBE5;">'''Note''': Since Multicharts 11 Beta 1 this option has been replaced with the [[Auto_Trading#Partially_Filled_Orders_Replacement|"Partially Filled Orders Replacement"]] controls.</div>When this option is turned on, the unfilled part of partially filled price order will be cancelled and the remainder will be converted into market order only when the order is no longer generated by the strategy or the set of orders generated by the strategy changes. It means if conditions for order generation are met on the next barcalculation, 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.
<br>
=== 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.
<br>
=== Cancel Expired Market Orders as Obsolete If not Filled Within After X Seconds ===
This option , formerly known as "Cancel Market Orders as Obsolete If not Filled Within X Seconds", 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.
<div style="background-color: #E5F6FF;">'''Example''': the feature is not enabled;<br>12:00:00 Strategy Calculation at close of bar # 51 - place market order to buy at open of next bar;<br>12:00:01 Strategy Calculation at open of bar # 52 - market order to buy is placed at broker;<br>12:00:10 Strategy Calculation at close of bar # 52 - no market order to buy at open of next bar should be placed;<br>Default 40 seconds countdown has been started:<br>12:00:50 - market order is cancelled.</div>
<br>
<br>
=== Emulate Stop orders locally Price Order Emulation ===<div style="background-color: #E3FBE5;">'''Note: This feature is available since MultiCharts 10.0 Beta 1.'''</div><div style="background-color: #E3FBE5;">Note: This feature requires realtime data subscription on your broker account.</div>When this option is enabled a stop order is emulated by MultiCharts - once the stop price level is reached by the corresponding ask or bid series, a market order is sent to the broker.In case Stop and/or Stop-Limit order emulation is enabled - the emulated OCO group is used, disregard the broker profile/autotrading plugin settings. <br>
=== Emulate Stop-Limit orders locally ===<div style="background-color: #E3FBE5;">Since '''This feature is available since MultiCharts 10.0 Beta 1.12'''</div><div style="backgroundit is possible to switch between native and emulated Stop, Limit and Stop-color: #E3FBE5;">Note: Limit orders in both auto trading and manual trading. This feature requires realtime data subscription on your broker account.<When a Stop/div>Limit order is emulated - once the Stop/Limit price level is reached by the corresponding Ask/Bid or Trade prices, a market/limit order is sent to the broker correspondingly. When this option is enabled a stopStop-limit Limit order is emulated by MultiCharts - once the stop Stop price level is reached by the corresponding ask Ask/Bid or bid seriesTrade prices, a limit Limit order is sent to the broker.In case Stop , Limit and/or Stop-Limit order emulation is enabled - the emulated OCO group is used, disregard the broker profile/autotrading broker plugin settings.
To enable the Stop, Limit or Stop-Limit order emulation for automated trading select '''Emulate locally using Bid/Ask''' or '''Emulate locally using Trade''' from the dropdown list next to the corresponding order type. Leave the settings to '''Use native''' if using price order emulation is undesirable.
In order to apply the changes one needs to disconnect the broker profile and reconnect it.
<br>
With the help of these options one can have unexecuted entry/exit price orders converted into market orders when the specified timeout is exceeded or upon bar close.
The timer is launched depending on the option “Get realtime data from”:
* when set to “Broker”, the timer starts when the '''price at the broker ''' touches the order’s price;* when set to “Chart”, the timer starts when the order price is hit '''on a chart'''.
Operation of these options depends on the [[Signal Settings#Intra-Bar Order Generation|Intra-Bar Order Generation (IOG)]]:
# IOG disabled - if the timer has started but the bar closed faster than timeout exceeded, then the price order is converted into a market order without waiting for the timeout to exceed;
#IOG enabled - each new tick is considered to be bar close. If the order’s price is touched and new tick comes in – the price order will be converted into market order at once without waiting for the timeout to exceed.
<div style="background-color: #E3FBE5;">'''Note''': If the order price is not hit at broker/chart then the order will not be converted.</div>
<br>
 
=== Partially Filled Orders Replacement ===
<div style="background-color: #E3FBE5;">'''Note''': Available since Multicharts 11 Beta 1, replaces “Replace to Market Partially Filled Orders” option.</div>
When these options are enabled the unfilled part of partially filled price order will be cancelled and the remainder will be converted into a market order when the specified timeout is exceeded, or upon bar close. The timer is launched on the first partial fill event.
<div style="background-color: #E3FBE5;">'''Note''': When timeout is set to 0, the order will be cancelled and replaced with a market order once partial fill event occurs.</div>
 
<br>
# When Market Position Changes.
# When an Order is Filled.
# When an Order is Rejected.
<div style="background-color: #E3FBE5;">'''Note''': Without enabled [[Signal Settings#Intra-Bar Order Generation|Intra-Bar Order Generation (IOG)]] the strategy will be recalculated, but it will place '''no new''' orders intrabar because of this setting.</div>
<div style="background-color: #E3FBE5;">'''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 [[Signal Settings#Intra-Bar Order Generation|Intra-Bar Order Generation (IOG)]], no matter if this feature is used or not.</div>
=== Get Real-Time Data from ===
This option affects special orders monitoring and defining the moment to convert price orders into market ones.
<div style="background-color: #E3FBE5;">'''Note''': Special trailing stop order (''SetDollarTralingSetDollarTrailing'') 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.<br>''i_OpenEquity'', ''OpenPositionProfit'' keywords are not affected by this option, they are always calculated from chart prices.</div>
<div style="background-color: #E5F6FF;">'''Example''':
=== Mode Selection ===
* 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 Backtesting are Backtesting 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)'''<br> <div style="background-color: #E3FBE5;">'''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 to 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|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]].</div><br>
* 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.<br>To use asynchronous mode for auto trading select '''Entries/Exits are independent of the execution status at the broker (Async)'''
# '''Chart position'''. This is the '''position generated by orders visually executed on chart'''. It has nothing to do with open position horizontal drawing shown when you open [[Chart Trading]] panel.
When you auto trade '''in SA (sync. mode) the 2 and 3 are the same''', what is you see on the chart in is synchronized with auto-trading engine. When '''you use AA (async. mode), you may have to deal with 3 different positions''': what you have on broker, what you see on chart, what MC thinks it is.
====Market Position Checking Keywords====
Two options are available:
* Show the Assign the Initial Market Position at the Broker Dialogue<br>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 and average entry price can be put.<br><div style="background-color: #E3FBE5;">'''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].</div>
* 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 (of the broker profile) exceeded the specified acceptable level.* [[Auto_Trading#Stop_auto-trading_if_final_status_of_an_order_is_not_received|"Stop auto-trading if final status of an order is not received"]] option has come into effect* [[Auto_Trading#Stop_auto-trading_after_X_rejected_orders|"Stop auto-trading after X rejected orders"]] option has come into effect<br>
<br>
=== Pending Order Cancellation upon Termination of Auto Trading ===

Navigation menu