Misc. Position sizing topics

Top  Previous  Next

 

Rejected trades

In general, performance suffers when you are frequently having to reject trades at the Initial Size stage due to under-capitalization.

There are two reasons trades are being rejected at this point. Either (a) there is too little capital to accommodate the specified risk per trade, or (b) you have specified too little risk to take per trade for the amount of capital in the account. In a sense, they are one in the same problem, since one or the otheror bothneeds to be modified in order to avoid consistently having trades rejected.

While this may seem like a paradox at the moment, in the next section well explore intentionally rejecting trades as part of various risk control strategies. One example of this would be to reject any additional trades that are presented for sizing, after a sector has already achieved a predetermined level of risk.

ThumbTack white

Adequate capitalization is much more of an issue for futures traders than for stock traders, due to the relatively large notional dollar value of a typical futures contract, compared to the relatively small dollar value of a typical share of stock in most countries. (Berkshire Hathaway is one of the rare exceptions to this rule in the United States. In parts of Europe, though, stocks rarely split, and the price of a single share can be quite high, for mature companies.) 

       

STARTDATE

Lets take a minute and discuss this keyword, which we sneaked into the previous exercise without much of an explanation.

When used in a SIZ file (Initial Size page)

When used on the Initial Size page of a SIZ file, the STARTDATE command allows you to slam on all the portfolio's currently open positions on a certain day, in order to avoid the perils of inadequate diversification that occurs as new positions are being slowly added at the beginning of a simulation, or at the start of a period of actual trading.

In other words, Mechanica looks at the STARTDATE command and puts on (initially sizes), any trades in progress as of that time. To accommodate the sizing of these slammed on positions, Mechanica looks back in time and stores the dollar risk at the inception of the trade (the initial risk), even if trade entry occurred months prior to the STARTDATE, and returns that initial risk figure via the functions NEWRISK and USERDEFINEDRISK.

This means that you get the immediate benefit of diversification when starting up a new portfolio, and reduce the chances of experiencing what otherwise might be a large drawdown while your portfolio is getting up to speed.

When used in a SIG file (Resources page)

When used on the Resources page of a SIG file, STARTDATE behaves in an entirely different manner: It simply specifies the date that Mechanica starts reading data.

Using STARTDATE in both a SIG and SIZ file

If you are just beginning to test a large portfolio that has 20+ years of data for most symbols (instruments), and you are interested in testing only from 1997 forward, then you would want to specify STARTDATE = 19970101 on the Initial Size page.

Lets further assume that you are trading a medium-term system, and that the vast majority of trades are of a duration of one year or less. Then, on the Resources page of the SIG file, you would specify STARTDATE = 19950601.

In this scenario, when you run the SIG file, Mechanica would start reading data on June 01, 1995. Then, when the Position Sizing rules are run, the system would be up to speed (in fact, it may have already entered and exited one or more trades in many markets), and Mechanica would slam on all trades in progress as of Jan 01, 1997, which is the STARTDATE specified on the Initial Size page.

Summary

Using STARTDATE in a SIG file cuts down on trade processing time if your data goes back in time significantly more years than you want to test. Using STARTDATE in a SIZ file slams on all trades in progress as of that date, and allows you to avoid the perils of under-diversification as your portfolio gets up to speed.        

ThumbTack white

Using the same STARTDATE simultaneously in a SIG file and a size file defeats the whole purpose, because when you run the Position Sizing Rules, there will be no trades in progress as of the specified date. Why? Because STARTDATE on the SIG side specifies the date that Mechanica starts reading data.

 

Include Today 

You will find the Include Today options listed near the top of the Position Sizing menu, as shown (right).

Include Today YES

When Include Today = Yes, Mechanicas keyword return values are updated across all Category-related keywords, each time a position is entered during the course of the trading day. (The topic of Categories is introduced in the second following section.) 

See also: INCLUDETODAY

This mode of operation accommodates creating simulations for traders who watch the markets continuously, and will take actions that are influenced by these updated calculations, throughout the trading day.

The type of Category-related keywords that are updated during the trading day, as each new trade is processed, include TOTALRISK, SYSTEMRISK, SECTORISK, SYMBOLONGRISK, etc. 

Example  You enter a Crude Oil trade at the top of the trading day. An hour later, your system presents a Natural Gas trade to the Position Sizing rules for initial sizing. Since all the pertinent risk-related keywords have been updated to include the additional risk incurred by that mornings Crude Oil trade, Mechanica takes that (additional risk) into consideration when sizing the Natural Gas trade.

Include Today NO

In this mode, risk calculations are updated once, at the end of each trading day. This mode is for use by end-of-day traders, who base all of todays trading decisions on the various figures available as of yesterdays close. The difference in these two modes is demonstrated in the following section.

ThumbTack white

1.When Include Today = Yes , Mechanicas keywords are updated intraday across all Category-related keywords, each time a new position is processed.
2.When Include Today = No, Mechanicas various category-related keywords like TOTALEQUITY, SECTORPOSITIONS, etc., are not updated intraday, so last nights values are used for todays initial sizing operations.

 

SortList Manager

The SortList is covered in detail in Lesson  - Misc. but a brief description is included here for the sake of continuity.

SORTLIST[n];  n = 1 to 4

SortList values are created when the Signal Rules are run; these values are later used by Initial Size when the Position Sizing rules are run.

A SortList defines the order in which trades are Initially Sized.

SortLists can be user-defined in the SIG code. Default SortLists are provided for you.

The SortList Manager dialog is accessed via the Position Sizing menu, as shown (right). A number of options are presented; for each, you can choose between the system default SortList, and one of four (4) user-defined SortLists.

Sysparam Manager 

The System Parameters dialog is accessed via the Position Sizing menu (select Sysparam Manager), as shown above. (It is also available as an option under the Signals menu.)

SYSPARAM[n];  n = 1 to 15 

The SYSPARAM[n] keyword associates a specific value with a specific system number. It is in essence a function that returns the value entered in the System Parameters table, and it internally tracks which system it is associated with. It is legal anywhere on the Initial Size or Resize page(s).

The value for each instance of SYSPARAM[n] is assigned in the System Parameters dialog box under the Sysparam Manager option (Signals or Position Sizing menu).

The System Parameters dialog box will accommodate multiple SYSPARAM[n] values for a single system (each system can have up to 15 unique SYSPARAM[n] variables). For example, your entries might look something like this:

In the example above, Systems 5 and 6 have only one value each, for SYPARAM[1].

System 7, on the other hand, makes use of four unique SYSPARAM[n] values. 

The SYSPARAM[n] keyword might be used on the Initial Size page for uniquely weighting different systems (as shown in the example below), or on the Resize page, to resize some systems more aggressively than others.

Initial Size

MEMORY[1] = (.01 * TOTALEQUITY) / NEWRISK

NEWCONTRACTS = MEMORY[1] * SYSPARAM[1]

 

ThumbTack white

Mechanica internally tracks and associates which SYSPARAM[n] value(s) is/are associated with the currently processing system.