Trade statistics parameters

The following system variables can be used to obtain trade statistics separately per asset, algorithm, and long/short trade direction. They can be evaluated in real time while trading, or at the end of a simulation cycle for calculating statistics in [Test] mode. All parameters are read/only. Most come in three flavors:

...Long: Results of all long trades with the current asset and algorithm. Including phantom trades, but not including pool trades.
...Short: Results of all short trades with the current asset and algorithm, including phantom trades, but no pool trades.
...Total: Results of all trades with all assets and algorithms, not including phantom trades.

In [Train] mode, trades always open 1 lot, and pool and phantom trades are converted to normal trades. The results are summed up over all bar cycles. In [Test] mode only the ...Total results are summed up; the ...Long and ...Short results are from the current bar cycle only. This allows to produce statistics distributions of bar cycles.
 

WinLong

WinShort

WinTotal

Sum of profits of all trades won so far. When oversampling or phantom trades are used, WinLong or WinShort can be higher than WinTotal.

LossLong

LossShort

LossTotal

Sum of losses by all trades lost so far. The accumulated balance, i.e. the return of all closed trades is WinTotal - LossTotal. WinTotal or LossTotal can be modified by script for simulating additional wins or losses that are not caused by trades.

WinValLong

WinValShort

WinValTotal

Open profit of all currently winning trades.

LossValLong

LossValShort

LossValTotal

Open loss amount of all currently losing trades. The accumulated equity, i.e. the current profit of all open and closed trades is WinTotal - LossTotal + WinValTotal - LossValTotal.

ProfitClosed

Realized component profit so far; WinLong-LossLong+WinShort-LossShort.

ProfitOpen

Unrealized component profit so far; WinValLong-LossValLong+WinValShort-LossValShort.

BalanceLong

BalanceShort

Sum of returns of all closed trades; WinLong-LossLong resp. WinShort-LossShort.

EquityLong

EquityShort

Sum of returns of all closed, plus value of all open trades; BalanceLong+WinValLong-LossValLong resp. BalanceShort+WinValShort-LossValShort.

WinMaxLong

WinMaxShort

WinMaxTotal

Maximum profit of a trade so far.

LossMaxLong

LossMaxShort

LossMaxTotal

Maximum loss of a trade so far.

NumWinLong

NumWinShort

NumWinTotal

Number of profitable trades so far. The average return per winning trade is WinTotal/NumWinTotal.

NumLossLong

NumLossShort

NumLossTotal

Number of lost trades so far. The average return per trade is (WinTotal-LossTotal)/(NumWinTotal+NumLossTotal).

LossStreakLong

LossStreakShort

LossStreakTotal

Current number of losses in a row, or 0 if the last trade was a winner.

WinStreakLong

WinStreakShort

WinStreakTotal

Current number of wins in a row, or 0 if the last trade was lost.

LossStreakValLong

LossStreakValShort

LossStreakValTotal

Accumulated loss of the current loss streak, or 0 if the last trade was a winner.

WinStreakValLong

WinStreakValShort

WinStreakValTotal

Accumulated profit of the current win streak, or 0 if the last trade was lost.

NumWinningLong

NumWinningShort

Number of currently open winning trades with the current asset and algorithm, including phantom trades.

NumLosingLong

NumLosingShort

Number of currently open losing trades with the current asset and algorithm, including phantom trades.

NumOpenLong

NumOpenShort

Number of currently open trades with the current asset and algorithm, including phantom trades.

NumLongTotal

NumShortTotal

NumOpenTotal

NumOpenPhantom

Numbers of currently open trades with all assets and algorithms.

NumPendingLong

NumPendingShort

NumPendingTotal

Number of currently pending trades, i.e. trades that have just been entered, or that have not yet reached their Entry Stop or Limit within their EntryTime period. NumPendingTotal includes pending phantom trades in Virtual Hedging mode, as they also trigger real trades.

NumRejected

Number of rejected open or close orders in live trading, due to lack or market liquidity, broker connection failure, market closures, holidays, or other reasons.

LotsPool

LotsPhantom

Open net lot sum of real trades and phantom trades for virtual hedging with the current asset. The net lot sum is the difference of long lots and short lots. LotsPool is also valid when no virtual hedging is used.

ResultLong[0] .. ResultLong[19]

ResultShort[0] .. ResultShort[19]

Arrays containing the last 20 trade results as difference between entry and exit prices. The [0] element contains the result of the most recent trade. Result/PIP gives the profit or loss of the trade in pips (disregarding the trade volume). These arrays can be used for equity curve trading.

 

Type:

int for numbers that count something, otherwise var.

Remarks:

Example:

// suspend trading after 4 losses in a row
if(LossStreakShort >= 4 || LossStreakLong >= 4)
  Lots = -1; // phantom trades
else Lots = 1;

See also:

trade parameters, Balance, status, Lots, for(trades)

 

► latest version online