Conditions of execution of automatic trading systems

All instruments

Start of trading systems: It is necessary to close all open positions and pending orders on the instrument before starting the trading system. The first position can be opened at the earliest at the opening of the first bar following the start of the system. Only one automatic trading system can be running on a given instrument. Please contact your account manager if you wish to run several trading systems simultaneously on the same instrument.

Maximum position size parameter: The "Max position size" parameter which can be set in the ProOrder window prior to starting a system takes precedence over quantities to buy or sell specified in the code. For example, if your code has an instruction to buy 3 lots, but you limit the max position size to 1, this buy 3 order will be ignored. Similarly, if your code has an instruction to buy 1 lot, then sellshort 3 lots, the sellshort order will be ignored and you will remain in the long 1 position. You should always check the max position size prior to executing a code.

Time zones & trading hours: The time zone taken into account by ProOrder is the instrument's default time zone. If you activate the option "Use intraday quotes to build daily candles", this option will not be taken into account by ProOrder. If you define reduced trading hours for an instrument:

  • The customized trading hours will be taken into account. Once a trading system has been added to ProOrder, you can check its custom trading hours in the "Trading system details" window which can be accessed by clicking on the code's "Version" in the ProOrder AutoTrading window. Indicators used in the system will be calculated based only on data during the custom trading hours.
  • Market orders as well as orders placed with "AT <price> LIMIT" and "AT <price> STOP" instructions will be executed only during the custom trading hours. If such an order is placed on the last bar of the custom trading hours, it will be executed or placed at the open of the first bar of the custom trading hours on the next trading day.
  • Orders placed with "SET TARGET" and "SET STOP" type instructions in the code may still be executed outside the custom trading hours if the market is open.
  • It is possible to prevent any positions after the "custom close" of the market using the instructions "FlatBefore" and "FlatAfter" (see the programming manual for more information).
  • The trading hours set when the system is added cannot be changed while it is running. If you want to use new custom trading hours on a market, you will need to add a new system to an instrument of this market after applying the new trading hours.
  • The trading system may be stopped outside the custom trading hours. In this case, its pending orders may be canceled and its positions may be closed outside the custom trading hours.

"Time" function: if you use the "time" function in your trading system's code, it will be applied to the market's default time zone (and not your local time zone).

Weekend data: weekend data is taken into account for markets that are open during the weekend, even if the corresponding display setting is unchecked in your platform settings.

Closed markets: If your trading system tries to place an order when the market is closed, the order will be placed when the market opens.

Intraday quotes for daily: ProOrder always ignores the setting "Use intraday quotes to build non-intraday candles".

Insufficient capital: The total capital of your account is shared between all your systems. Any position opened by a system will impact the global exposure of your account and consequently the margin available to open a new position by all your strategies.

Stopped trading systems: By default, when a trading system is stopped, whatever the cause :

  • if some orders placed by this system are still pending, they will be cancelled immediately, or as soon as possible if the connection to the broker is temporarily interrupted,
  • if a position is still open on the corresponding instrument, ProOrder will close this position with a market order immediately, or as soon as possible if the connection to the broker is temporarily interrupted.

Automatic stop of trading systems due to expiration: All running trading systems have a common validity date. If you do not click the "Extend" button before this date, ProOrder may automatically stop them. You can view the validity date in the ProOrder window (expressed in your computer's time zone) and extend your trading systems validity via the "Extend" button at the bottom of the ProOrder window when a trading system is running. The amount of time of each extension can be configured from within the "Automatic trading" section in the "Trading settings" window.

Automatic stop of a trading system due to number of orders placed: ProOrder may stop any given trading system as soon as the sum of pending orders on one hand and number of executed orders since market open (0:00 GMT for the forex market) on the other hand of this system is greater than the quantity chosen in the "Automatic trading" section of the "Trading settings" window. Pending orders include orders that are being processed and not executed, rejected or canceled.
For example, each "SET STOP" or "SET TRAILING STOP" or "SET TARGET" instruction counts as one order as long as it has not been canceled, rejected, or executed.
In addition, 3 different limit orders or 3 different stop orders that have not been canceled, rejected or executed will count as 3 pending orders. This is true if the 3 orders are on the same price level or on different price levels.
If for example you choose a stopping level of 7 orders and since the market open 5 orders have been executed by a given trading system and this system has an open position and 2 pending orders (one "SET TARGET" and one "SET STOP") and the system needs to send an additional order to the market: this 8th order will not be sent (5+2+1 reaches the stopping level), this trading system will be stopped with its pending orders canceled first, and then its position closed.

Automatic stop of a trading system due to order rejection: ProOrder may stop any given trading system if too many orders of this trading system are rejected.

Automatic stop of trading systems due to insufficient cash or margin: If an order is rejected due to insufficient cash or margin to place the order, the trading system that tried to place this order will be stopped.

Orders placed outside the workstation: if you place an order from outside the platform (ex: external websites, TWS...) on an instrument on which you have a trading system running or if you modify a position opened by a trading system, ProOrder will stop that system, but it will not modify the orders placed by this system or your position. This becomes a manual position that is managed solely by you.

Position liquidation by the broker: If the executing broker closes all or part of your position on an instrument on which you have a trading system running, ProOrder will stop the system but will not modify the orders placed by it or your position. This position then becomes a manual position managed solely by you.

Notification when a trading system is stopped: If a trading system is stopped automatically, regardless of the cause, ProRealTime will provide the client with an electronic notification posted on the Workstation or an email as soon as possible stating that the trading system has been stopped.

ProRealTime's Limitation of Liability : ProRealTime is only responsible for maintaining your trading systems until they expire. Therefore, ProRealTime shall not be liable for any costs, expenses, losses or lost profits that result from the automatic shutdown of an automatic trading system (and any resulting order placements and/or cancellations) for any reason whatsoever, once ProRealTime has notified the customer by electronic notification posted on the Workstation or by email that the automatic trading system has been stopped.

Futures only

Futures Expiration: Any trading system running on a futures contract that expires :

  • will have its orders and positions closed by the broker
  • will be stopped and will need to be restarted on a contract with a different expiration date

No Globex Futures: If you try to execute a trading system on a no globex future, the following conditions apply:

  • If you have not defined custom trading hours for this market prior to starting the system, it will be executed on the standard future contract with trading hours corresponding to the No Globex trading hours.
  • If you have defined custom trading hours for this market prior to starting the system, its trading hours will take into account either the start time of the No Globex instrument or the start time you have defined (whichever is later) and the end time of the No Globex instrument or the custom end time you have defined (whichever is earlier).
  • Indicators used in the system will be calculated based only on data during the trading hours of the system.
  • Orders placed with "AT MARKET", "AT <price> LIMIT" and "AT <price> STOP" instructions in the code will be executed only during the custom trading hours.
  • Orders placed with "SET TARGET" and "SET STOP" instructions in the code may still be executed outside the custom trading hours if the market is open.
  • The trading hours set when the system is started can not be changed while it is running. If you want to change the trading hours taken into account by the system, you need to stop the system first, then change the trading hours of the instrument, then send it to ProOrder again before starting it.
  • Since orders from an automatic trading system on a No Globex future are executed on the corresponding regular future, starting a trading system on a No Globex future will prevent starting another trading system or manual trading on the corresponding future and vice versa.