Trade parameters 1 - entry and exit limits

Entry

Entry limit, entry stop: Enter the subsequent trade when the price reaches the given limit or moves by the given distance (default = 0 = enter immediately at market). The value can be positive or negative, and can be either directly a ask price level, or a distance to the current close price. A positive price level or positive distance constitutes an entry stop, a negative price level or negative distance constitutes an entry limit.
  An entry limit buys when the price moves against the trade direction and touches or crosses the limit. It increases the profit because it buys at a price that went in opposite direction to the trade. An entry stop buys when the price moves in trade direction and reaches or crosses the limit; it reduces the profit, but enters only when the price is moving in favorable direction, and thus acts as an additional trade filter. For a long trade, an entry limit should be below and an entry stop should be above the current price. If the entry price is not reached within the allowed time period (set through EntryTime), the trade is cancelled and a "Missed Entry" message is printed to the log file.

OrderLimit

Use a limit order at the given limit price, instead of a market order, for subsequent trades in live trading. Has only an effect if supported by the broker API; has no effect in training or backtests. OrderLimit is different to an Entry limit because it is handled on the broker's side (see remarks) and is - if supported by the API - also valid for exits. If not sent in GTC mode, the order is automatically cancelled if not filled within the wait time set for the broker API. 
  The price limit is directly used for the order and thus must be an ask price for enterLong and a bid price (ask minus Spread) for enterShort. For a combo order it must be the sum of the ask and bid limits of all legs. The script must round the limit to an integer number of pips if required by the broker API. Unlike normal orders, not filling a limit order does not produce a "Can't open trade" error message in the log. For avoiding that it affects subsequent entries and exits, set OrderLimit back to 0 after entering. A tick or tmf function can be used to resend orders with different OrderLimit values for catching the best price within a certain time period.

Stop

Stop loss: Close the subsequent trade.when the price moved in adverse direction to the given limit or by the given difference to the fill price (default = 0 = no stop loss). When a new trade cannot be entered due to the MaxLong/MaxShort limit, open trades of the same component are automatically updated to the stop that the new trade would have. A good value for Stop is derived from the ATR, f.i. 3*ATR(20). Setting a stop loss is recommended for risk control.

StopFactor

Stop loss distance sent to the broker API to act as a 'safety net' in units of the real stop loss distance (default = 0 = don't send stop). At the value 1.5 the stop sent to the broker is 50% more distant than the stop on the Zorro side. This allows to stop out the trade even when the broker connection breaks down, but hides the real stop value from the broker and thus prevents 'stop hunting' or similar practices. At 0 the stop is only controlled on the Zorro side, at 1 it is only controlled by the broker. If StopFactor is set to a negative value or if a BrokerStop function is not available in the broker plugin, the broker stop is only placed at opening the trade, but not updated afterwards. StopFactor has no effect on pool trades in Virtual Hedging Mode. Broker stops on NFA compliant accounts require separate orders and must be explicitely enabled with the SET_ORDERTYPE command.

StopPool

Broker stop loss distance for pool trades in Virtual Hedging Mode (non-NFA mode only; default 0 = no stop loss), in price units. For instance, at 0.25 any pool trade sends a stop to the broker at 25% distance from the initial price.

TakeProfit

Profit target: Close the subsequent trade.when the price moved in favorable direction to the given limit or by the given difference to the fill price (default = 0 = no profit target). When a new trade cannot be entered due to the MaxLong/MaxShort limit, open trades of the same component are automatically updated to the profit target that the new trade would have.A profit target takes profits early, which increases the number of winning trades, but normally reduces the overall profit of a strategy. It is preferable to use TrailLock instead of setting a profit target.

Trail

Trailing:  Raise the stop loss value as soon as the price reaches the given limit, or goes in favorable direction by the given distance in price units (default = 0 = no trailing). Has only an effect when a Stop is set. The stop loss is increased in a long position, and decreased in a short position so that it normally follows the price at the distance given by the sum of the Stop and Trail distance. For instance, Stop = 10*PIP and Trail = 5*PIP lets the stop follow the price at 15 pips distance. A slower or faster 'movement speed' of the stop loss can be set through TrailSlope.

TrailSlope

Trailing 'speed' in percent of the asset price change (default = 100%); has only an effect when Stop and Trail are set and the profit is above the trail distance. Example: The asset price of a long position was above the Trail limit and goes up by more 10 pips. TrailSlope = 50 would then raise the stop loss by 5 pips. TrailSlope = 200 would raise the stop loss by 20 pips. 

TrailLock

'Locks' a percentage of the profit (default = 0 = no profit locking); has only an effect when Stop and Trail are set and the price has exceeded the trail distance. A stop loss is then automatically placed at the given percentage of the current price excursion. Example: A long position is currently in profit by 20 pips above the entry price. TrailLock = 80 would then place the stop loss at 16 pips above entry, thus locking 80% of the profit (without trading costs). TrailLock = 1 (or any small number) would set the stop loss at the entry price when the current price reaches the Trail value. Using TrailLock is in most cases preferable to setting a profit target.

TrailStep

Automatically raise the stop loss every bar by a percentage of the difference between current asset price and current stop loss (default = 0 = no automatic trailing); has only an effect when Stop and Trail are set and the profit is above the trail distance. Example: A long position has a stop at USD 0.98 and the price is currently at USD 1.01. TrailStep = 10 will increase the stop loss by 0.003 (30 pips) at the next bar. TrailStep reduces the trade time dependent on the profit situation, and is often preferable to a fixed exit time with ExitTime. Stopping and restarting a strategy counts as a step and will raise the stop loss as if a bar had passed.

TrailSpeed

Speed factor for faster raising the stop loss before break even, in percent (default = 100%). Has only an effect when Stop and Trail are set and the profit is above the trail distance. Example: TrailSpeed = 300 will trail the stop loss with triple speed until the entry price plus spread is reached, then continue trailing with normal speed given by TrailSlope and TrailStep. Has no effect on TrailLock. This parameter can prevent that a winning trade with a slow rising stop turns into a loser.

Type:

var

Remarks:

Examples:

// set stop at 1% distance 
Stop = 0.01*priceClose(); 
enterLong();

// place limit order at ask/bid center
OrderLimit = priceC() - 0.5*Spread;
enterLong(); 

See also:

bar, enterLong/Short, exitLong/Short, EntryTime, ExitTime, Lots, TMF

 

► latest version online