Trade parameters 3 - investment control
The trade size - the number of contracts or currency units purchased - can be determined in
four different ways. For directly ordering a certain number of contracts, use
Amount or Lots. For investing a certain sum of
money, use Margin. For risking a certain sum of money by determining the worst case loss, use Risk.
Trade size given by the number of lots (default = 1; max =
1 Mio/LotAmount). This is the unit used for sending orders to the broker. One lot is the smallest possible order unit of the active account (see remarks). In binary trading mode (BINARY flag) or if Margin or Risk are used for calculating the trade size, Lots determines the minimum number of lots to be opened per trade (normally 1). If Lots is 0, no trades are opened. If Lots is -1, trades are executed in
Trade size given in multiples of 100,000 units for currencies, and in multiples
of 1 contract for anything else (default = 0 = trade size by
Lots). This number is independent of the broker's smallest possible order
size and similar to an "MT4 lot" for currencies (see remarks). If a nonzero
Amount amounts to less than one lot, 1 lot is opened.
Trade size given by invested margin, in units of the account currency (default = 0.0001 for always opening at least 1 lot). With no leverage, Margin is simply the money invested to purchase the asset.
On a leveraged account, Margin is a fixed part of the real trade size - for instance 1% at 1:100 leverage - that the broker keeps as a deposit for opening a trade. As long as the trade is open, the margin amount is locked on the account and can not be used for further trades (of course the loss of a trade can be higher than the margin). If Margin is 0 or negative, no trades are opened. Otherwise the trade size is calculated from the given margin.
The Lots variable still determines the minimum number of lots to be opened per trade. If the trade size by Margin is lower than Lots and the MARGINLIMIT flag is set, trades are skipped. If the ACCUMULATE flag is set, the size of skipped trades is accumulated until it reaches the Lots amount. Keep Margin at its default value for controlling the number of lots only with the Lots variable.
Trade size given by the trade risk in units of the account currency (default = 0 = no risk limit). The risk is the theoretical maximum that a trade can lose; it is determined from trade size, stop loss distance, commission, and spread. Since risk is undefined when a trade has no stop loss, the Risk parameter must always be given in combination with Stop. If the risk of a trade at the given Margin is higher than the Risk variable, the trade size is accordingly reduced.
When the RISKLIMIT flags is set, trades are skipped when even with the minimum amount (1 lot) the trade risk is still higher than twice the given Risk value. When Margin is not set, the trade size is only limited by Risk; this can lead to extreme trade sizes and subsequent margin calls when the Stop distance is tight. Due to slippage and minimum lot amount, the displayed risk in the trade log can deviate from the set up Risk value especially with tight Stop distances.
A stopped out trade can lose less or more than Risk.
Initial invested capital in units of the account currency (default = 0 = no initial capital). This has no effect on trading, but on the calculating the strategy performance in the simulation. Set this to the initial capital when the strategy reinvests profits; Zorro then calculates CAGR instead of AR and determines performance parameters from the invested capital instead of the required capital. If drawdown plus
required margin exceeds Capital on leveraged accounts, Zorro will declare a Margin Call and abort the simulation.
Make sure to set Capital well above the required capital on leveraged accounts, and to limit reinvestment so that negative equity is avoided.
For test purposes, setting Capital to a negative amount allows
to continue the backtest even with negative free capital.
Maximum number of open long and short trades with the same asset and algo. If this limit is reached in [Test] or [Trade] mode, enter calls do not open more trades, but still close reverse positions, and update
the stop limits, profit targets, and life times of
the currently open trades to the values that
the new trade would have.
- Lot has different meanings dependent on
platform and broker. Normally one lot is the smallest order unit; the trade size is always a multiple of 1 lot and can never be less than 1 lot. The lot amount - the number of contracts
or units equivalent to one lot, available through the LotAmount
variable - depends on the broker, the account, and the asset type. Forex brokers
can offer mini lot and micro lot accounts. 1 mini lot is equivalent to 10,000 contracts and about
$100 margin; 1 micro lot is 1000 contracts and about $10 margin. On stock broker accounts, the lot amounts and margins for Forex trading are usually higher and the leverage is smaller. For CFDs, some brokers offer lot sizes that are a fraction of one contract (f.i.1 lot = 0.1 contracts). For options and futures, the lot size is determined by the Multiplier. The broker normally
lists his trade parameters on his website or in his trading platform, so the lot amount per asset is always available.
In some platforms,
the term 'lot' has a special meaning. In the MT4™/MT5™ platforms, 1 'MT4
Lot' is equivalent to 100000 Forex contracts, and to various amounts of other
here). For forex, MT4 lots can be converted to real lots with the
formula Lots = MT4Lots * 100000/LotAmount.
- The margin per lot can be determined with the MarginCost
variable. The risk of a trade - the maximum possible loss at a given Stop distance - is Lots * (Stop/PIP) * PIPCost. The number of lots equivalent to a given margin is (Margin/MarginCost).
- Margin, Risk and Lots must be set before calling enterLong / enterShort. The number of lots, the current price, and the risk is displayed in Zorro's message window when an order is placed (see Trading).
- Margin, Risk or Lots could be set up in real time with a slider (see script example). This allows to quickly adapt the trade risk to the market situation, or to disable trades temporarily
in case of a market crash. When either Margin or Lots are zero, no trade is opened.
- Because orders can only be placed in a multiples of one lot, the actual margin can be bigger or smaller than the given
Margin value. When the MARGINLIMIT flag is set, trades are not executed when the required margin is more than twice the
Margin value; increasing Margin will then increase both the trade size and the number of trades, while increasing
Lots only increases the trade size.
- The Capital variable is used for determining the effectivity of the reinvestment algorithm. It calculates performance parameters based on the given capital, not on the equity curve, and thus ignores the setting of the Monte Carlo
- In [Train] mode, trades always open 1 lot, phantom trades are converted to normal trades,
and MaxLong/MaxShort have no effect. This
way all trades equally contribute to the training result. This behavior can be modified with the
// set margin from slider
Margin = slider(1,500,0,2000,"Margin","Average margin in $");
enterLong/Short, Stop, Spread, PIP, PIPCost, MarginCost, Win/LossPayout
► latest version online