March 14, 2018

Please reload

Recent Posts

Low capital vs. high capital account performance continued. Trade by trade analysis

January 14, 2019

Please reload

Featured Posts

Why does the house account seem to outperform my account?

January 2, 2019

Most AlgoLab users are trading with the DifferenceEngine (DE) system or subscribed to AutoSystemSwitcher, which has been set to trade the DE system for over 6 months so AlgoLabHouse2 is the reference house system for this analysis.


If you've ever noticed that the AlgoLabHouse2 account seems to outperform your own AlgoLab account, there are a few reasons why this might happen, and none of them are due to an unfair advantage that the house accounts may have over other AlgoLab accounts. The possible causes for this discrepancy could be any or all of the following 3 reasons:


  1. You are circumventing AlgoLab's built in automation by pausing your account, changing your leverage (risk value, or # of contracts traded), or manually exiting your trades (AlgoLab Pro users).

  2. The capital in your account is less than optimal considering the number of contracts you are trading. During very active trading the minimum is about $50,000 with more capital being advantageous (read on to find out why).

  3. Missed trades due to "trade crowding".

If you'd like to understand this better I have provided a detailed explanation below.




The majority of AlgoLab users (but not all) who have attempted to improve their returns by taking manual control over their AlgoLab have failed to outperform, and more typically have managed to underperform the house account due to their actions. Following are some tactics used: (some of these functions are only available in AlgoLab Pro)


1. Pause trading to hopefully avoid a drawdown day or period. Typically (but not always), an unprofitable day or period is followed by a profitable day or period. If you pause your AlgoLab after you have lost money, chances are good that you will still be paused when the markets 'rebound' and you will miss  earning some or all of those losses back.


2. Increase or lower your leverage (# contracts traded which we used to call "risk") hoping to capitalize on a profitable period, or to reduce contracts going into a losing period.

Here is an example of an AlgoLab account that doubled the number of contracts traded shortly before a very bad drawdown day. Notice how that single change effected this profit graph going forward from that moment on:



3. Pause AlgoLab hoping to "skip-over" a losing period.


Here is an example of an AlgoLab user that paused their account and missed out on two very significant profitable periods:



4. Change trading systems from SuperSystem to DifferenceEngine or visa versa. Since late November, we have recommended all AlgoLab users AutoFollow an account called "AutoSystemSwitcher" which will automatically switch your system between SuperSystem and DifferenceEngine depending on which system has been outperforming. it is my expectation that we will all be trading DE for the foreseeable future, and any switch to SS could be very temporary - if at all. However, some users have attempted to predict when SS might be becoming more profitable than DE (based on a statistically insignificant profitable day, or two), and have switched their systems over. At times, this has been profitable, but more often than not, they end up switching back after realizing that DE is still a better trading system.


Occasionally, increasing leverage, pausing or using the AlgoLab Pro manual trade exit feature can be profitable if the user has developed an intuitive feel. But more often than not, it just doesn't work. Below is an example of an AlgoLab Pro account that increased the # of contracts traded at an opportune time (red arrow). Notice that this account also used manual trade exits subsequent to the increase in leverage to turn a losing period (12/14/19 to 12/31/18) into a profitable period. I need to stress that even though automation override can periodically improve results over short periods of time, it has failed to result in overall improvement over a longer period of time. Even the very experienced AlgoLab Pro account shown below has not managed to outperform the HouseAccount (they have only matched the performance of the HouseAccount) over the entire period that they have been trading (as measured by gain/pain ratio which I will talk about later).






For the smaller capital accounts this is the single most important reason your account may be underperforming the HouseAccount. Before I get into this analysis, I need to point out that making FAIR comparisons between AlgoLab accounts is very difficult. Many users have made settings changes and have circumvented automation, and these actions throw any kind of fair comparison to the house account out the window. The other reason this is so difficult, is that we at AlgoLab have periodically changed trading systems from DifferenceEngine to SuperSystem and back via the AutoSystemSwitcher. You can only compare results between 2 accounts that have been trading the exact same system over a period of time.


The period of time between 10/11/18 and 12/30/18 for most of our users have been consistently set to AutoSystemSwitcher, and have been trading DifferenceEngine. So the comparisons I'm going to show you below are only for that period.


As you should clearly see below, the result of this analysis is such that if your capital is at the low end ($50,000 or less) of what we recommend, your account will probably not perform as well as the HouseAccount which trades a single contract (just like all of the $50,000 accounts), but the HouseAccount has access to over $150,000 of capital.


The table below is sorted from the highest capitalized account ($353,000) to the lowest ($41,000). Rather than measuring performance using the % return, or $ of profit, since each account uses different leverage levels (trades different numbers of contracts), the best and fairest method of comparison is the gain/pain ratio. This ratio can be found on your dashboard in the red badge at the top left hand side of your profit graph. This ratio is the maximum profit (for the time period set on your chart), divided by the maximum drawdown (loss) for that period. If you are trading many contracts, then your maximum profit will be higher, but your maximum loss will be proportional, so this is a good way to compare performance between different accounts.


Another way of looking at gain/pain is this is how many dollars of profit are earned for each dollar risked. It is important to point out that lower gain/pain ratios don't necessarily mean that these accounts  lose money - it just means that they earn less profit for every dollar lost in drawdown.


For comparison, the S&P 500 index over this same period of time produced a gain/pain ratio of .16 so even a relatively poor AlgoLab gain/pain ratio of .6 in the table below is three and a half times better than the stock market.


** note: There was a single large capital account above $300K set to relatively low risk of 2 contracts that had an unusually low gain/pain of .7. This low gain/pain for such a well capitalized account was very unusual and did not fit the pattern in the table above. I could find no reason for the poor performance, as this user had not circumvented automation at any time. I contacted the user and inquired. It turns out that the capital in their IB account was deposited in Canadian dollars, and even though the AlgoLab and the IB account is set to US base currency, this account was negatively effected by the exchange rate difference between the Canadian dollar and the US dollar over the period of his AlgoLab trading. This explains the difference perfectly. If not for the currency risk in his account, his GP would be just as high as the house account - possibly even higher, as his capital to contracts ratio was better.


What is the reason that lower capital accounts are not as profitable as larger capital accounts?


When AlgoLab transmits an order to your Interactive Brokers account to buy 1 contract of gold (for example), it sends a stop limit order which is an exact price which *may* result in an opened position if gold were to "hit" that exact price. This order stays on the server at Interactive Brokers until it is filled, or cancelled. The Chicago Mercantile Exchange wants to make sure that you have about $4000 of capital in your account before it will allow you to buy 1 contract of gold. This amount is called the minimum margin requirement and is different for every symbol. If you had at least $4000 in your IB account when gold reached your stop limit price, then CME would allow you to buy that contract. You don't actually "spend" any money, however that minimum margin requirement of $4000 is reserved, or "set aside" to cover your new gold position.


Each position that you have in your account consumes more of your available capital. If you have 5 positions, and each one required a minimum margin amount of $5000, then you would have used up $25,000 of your $50,000 of available capital.


There are times when your AlgoLab trading account might have 10 positions. If each symbol you owned consumed $5000 of margin, then you would have used up all of your $50,000 of capital and you would not be allowed to purchase any more positions. At this point, Interactive Brokers would reject any new orders sent by AlgoLab to your account.


There are many times when AlgoLab is going through profitable periods or days where most users will amass quite a large number of open positions. Accounts that have excess capital like the house account which is currently above $150,000 will never be in a position where IB rejects new orders, and will continue to accumulate new profitable positions while low capital accounts that 'run out of margin' will miss-out on these new potentially profitable positions.


Compounding this situation for low capital accounts, it is not only the open positions that consume available capital, but also, in behind the scenes and not viewable through the dashboard we have "outstanding orders" waiting for the right price to be hit and these orders will consume a different % of your margin. IB does not release the formula that it uses to calculate open-order margin, and this calculation also changes depending on current market volatility. Therefore, it is possible to consume all of your margin without any open positions by simply having a whole bunch of open stop limit orders, waiting to be filled. This is key to understanding why low capital accounts may not be as profitable as higher capital accounts.


The result of this limitation, as I said above, is that these low capital accounts can potentially miss-out on profitable trades. If this restriction is happening during a period when we are in a drawdown, it can be beneficial, but more often, in profitable periods it is detrimental.


The matter is far worse when a new $50,000 account goes through a drawdown immediately after starting trading and is reduced to $30,000 to $35,000. These trade restrictions will be happening on a daily basis. This is why it is difficult to recover from a bad drawdown if your account value drops down to $35,000. This is not to say that you can't recover, as many have! It does mean it takes longer to become profitable. See the account below as an example:

The $50,000 account above went through a bad drawdown immediately after they started trading. To make matters worse, this user paused the account part-way down, and missed out on some profitable days. Once they resigned to allowing AlgoLab to full automation, and once the drawdown period was over, they eventually regained all of their lost profit.


I need to stress here, that there have been MANY, MANY $50,000 (or even less) accounts that have earned well over 100% returns over time, and that this minimum margin issue doesn't mean that your account will not be profitable. I'm just pointing out that if you are comparing results between your account and any other accounts that may have more available capital, then this might be the reason your account is less profitable (or has a lower GP ratio).




You will note that in the table above, there are some accounts with similar levels of capital but widely varying gain/pain ratios. This is due to the somewhat random nature of getting "filled" on a new position. When an order to buy 1 contract of gold at $1000 stop limit is submitted to your IB account, then your buy order will be filled if there is an off-setting sell order for 1 contract at $1000 that is also sitting on the IB server. There has to be a seller for every buyer and visa versa. There are times when there might only be a dozen sellers at our exact stop limit price, and there may be 2 dozen buyers at that price level. That's called "trade crowding". The order in which the buyers get matched to available sellers is on a 'first come, first served' basis. If your stop limit order is transmitted to IB first, then you will be the first to get filled.


All AlgoLab users orders are not transmitted at the exact same time, or our server would crash. To protect our servers, AlgoLab transmits new orders for your account on a randomly chosen second each minute. We have NOT measured any advantage to this order priority over time. The result of this random timing of order placement is such that it is possible periodically to either be filled on a profitable position when another account is not filled, or to be filled on an unprofitable position when another account is lucky and does not get filled on that position. In summary, most of us get filled on most or our orders most of the time. (There is no other way to say this.)