This PosSizer fluctuates the position size between a minimum and maximum value based on the
Trading System Safety Factor (TSSF). TSSF was invented by Russian asset manager Mikhail Korolyuk in the early 2000s in an article "Be in phase". In short, the TSSF evaluates a trading system's rolling performance using a time window of N trades through the following formula:
Average Win / Absolute Average Loss / ( ((110% - %Win) / (%Win-10%) + 1) )
You have the option to specify the position's minimum and maximum thresholds (as percentage of equity), plus define the TSSF level above which the maximum position size is applied. When TSSF drops below a certain threshold, indicating that the system's conditions are sub-optimal, positions will be sized at the minimum size. Finally, define the initial size as a percentage of equity which will be used to size the first N trades (20 by default) before the rolling TSSF value becomes available.
Example
For the last 30 closed trades, your winning rate was 56%, the average winner and average losing trade were
$590 and
($486) respectively. Consequently, the rolling TSSF ratio is 0.56 and it will apply to any new position being opened while your closed positions count isn't changed.
There's a chance that PosSizer stops trading in a drawdown (with a 0 position size) and can never recover: the equity flat-lines and backtested trades will stop. To avoid a complete halt, option "Include raw trades (ghost trading)" comes into play. It sort of builds a "simulated equity" by looking not at only the accepted trades but at all possible positions (including rejected).
- Known issue: Backtests which use "Include raw trades..." may not be accurate i.e. results from running a backtest with TSSF may differ from such when TSSF is applied on-the-fly from the Position Size dropdown box. Avoid using this option until the bug is fixed.
- The TSSF is based on closed position data, open positions are excluded from the calculation.
- For an in-depth article illustrating applications of the TSSF, see: Be In-Phase