The objective of Domainian Trader is to implement an automated actively managed investment fund. This objective is being accomplished using a series of parameterized trading rules which are optimized over a set of input parameters or as I call them parameter sets. The optimization algorithm compares the results for each parameter set in recent history and uses the best parameter set to determine the next day’s trades.

Fund Examples

Below are examples of funds followed by a short description and analysis of the current system. Each fund has a configuration and results. The Nasdaq Composite, Wilshire 5000, and Domainian Trader indexes have been graphed for comparison.
##
SM10M Yr1 DD0 MAP2

###
Configuration

###
Results

##
SM1M Yr1 DD0 MAP2

###
Configuration

###
Results

##
SM100K Yr1 DD0 MAP2

###
Configuration

###
Results

##
SM10M Yr3 DD0 MAP2

###
Configuration

###
Results

##
SM1M Yr3 DD0 MAP2

###
Configuration

###
Results

##
SM100K Yr3 DD0 MAP2

###
Configuration

###
Results

##
SM10M Yr5 DD0 MAP2

###
Configuration

###
Results

##
SM1M Yr5 DD0 MAP2

###
Configuration

###
Results

##
SM100K Yr5 DD0 MAP2

###
Configuration

###
Results

Given the hypothetical funds shown above the best returns came from a $1,000,000 initial investment. This fund performs much better than the evenly distributed DTI hypothetical index and outperforms the Wilshire 5000 index all of Domainian Trader’s hypothetical funds are based on.

The $100,000 initial investment performs very poorly. The poor performance is a result of limited distribution. There are minimum share restrictions which limits the number of positions that can be taken with there are limited funds available.

The charts below show what happens to the $10,000,000 hypothetical fund when a filter is applied that restricts the symbols Domainian Trader can invest in based on the individual symbol return over the past year. The comparison is made with filters between 0%, which is the default used in all the previous hypothetical funds, 2.5%, 5%, 7.5%, and 10%. The best returns come from a restriction of only 5% and not from the higher 10%.

Seed Value ($) 10,000,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 10.43%

Average Quarterly Return 2.20%

Average Annual Total Return 10.43%

Daily Negative Volatility -0.91%

Average New Positions Per Day 72.07

Average Open Positions Over Night 111.32

Position Accuracy 55.12%

Average Winning Position Gain 1.58%

Average Losing Position Loss -2.29%

Seed Value ($) 1,000,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 11.27%

Average Quarterly Return 2.62%

Average Annual Total Return 11.27%

Daily Negative Volatility -1.10%

Average New Positions Per Day 28.62

Average Open Positions Over Night 38.73

Position Accuracy 56.17%

Average Winning Position Gain 1.80%

Average Losing Position Loss -2.25%

Seed Value ($) 100,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 6.27%

Average Quarterly Return 1.82%

Average Annual Total Return 6.27%

Daily Negative Volatility -1.46%

Average New Positions Per Day 4.77

Average Open Positions Over Night 6.37

Position Accuracy 59.45%

Average Winning Position Gain 2.07%

Average Losing Position Loss -2.75%

Seed Value ($) 10,000,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 19.90%

Average Quarterly Return 4.21%

Average Annual Total Return 23.65%

Daily Negative Volatility -0.97%

Average New Positions Per Day 83.60

Average Open Positions Over Night 142.06

Position Accuracy 62.63%

Average Winning Position Gain 1.57%

Average Losing Position Loss -2.32%

Seed Value ($) 1,000,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 20.64%

Average Quarterly Return 4.43%

Average Annual Total Return 25.09%

Daily Negative Volatility -1.06%

Average New Positions Per Day 36.85

Average Open Positions Over Night 58.86

Position Accuracy 62.48%

Average Winning Position Gain 1.69%

Average Losing Position Loss -2.44%

Seed Value ($) 100,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 9.29%

Average Quarterly Return 1.84%

Average Annual Total Return 9.12%

Daily Negative Volatility -1.45%

Average New Positions Per Day 5.98

Average Open Positions Over Night 9.33

Position Accuracy 61.14%

Average Winning Position Gain 1.92%

Average Losing Position Loss -2.90%

Seed Value ($) 10,000,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 13.46%

Average Quarterly Return 3.08%

Average Annual Total Return 16.97%

Daily Negative Volatility -1.20%

Average New Positions Per Day 85.97

Average Open Positions Over Night 140.58

Position Accuracy 61.76%

Average Winning Position Gain 1.75%

Average Losing Position Loss -2.58%

Seed Value ($) 1,000,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 14.40%

Average Quarterly Return 3.33%

Average Annual Total Return 18.52%

Daily Negative Volatility -1.30%

Average New Positions Per Day 38.09

Average Open Positions Over Night 59.79

Position Accuracy 61.06%

Average Winning Position Gain 1.84%

Average Losing Position Loss -2.64%

Seed Value ($) 100,000

Minimum Share Price ($) 5.00

Start Date 2012-01-01

End Date 2015-01-01

Average Annual Return 4.05%

Average Quarterly Return 1.06%

Average Annual Total Return 4.00%

Daily Negative Volatility -1.65%

Average New Positions Per Day 5.44

Average Open Positions Over Night 8.35

Position Accuracy 59.84%

Average Winning Position Gain 2.12%

Average Losing Position Loss -3.13%

Given the hypothetical funds shown above the best returns came from a $1,000,000 initial investment. This fund performs much better than the evenly distributed DTI hypothetical index and outperforms the Wilshire 5000 index all of Domainian Trader’s hypothetical funds are based on.

The $100,000 initial investment performs very poorly. The poor performance is a result of limited distribution. There are minimum share restrictions which limits the number of positions that can be taken with there are limited funds available.

The charts below show what happens to the $10,000,000 hypothetical fund when a filter is applied that restricts the symbols Domainian Trader can invest in based on the individual symbol return over the past year. The comparison is made with filters between 0%, which is the default used in all the previous hypothetical funds, 2.5%, 5%, 7.5%, and 10%. The best returns come from a restriction of only 5% and not from the higher 10%.

Data Set

Theoretically Domainian Trader can be applied to any market or sector in any country or region in the world. The data set used for all funds above is a 6 year history based on the Wilshire 5000 membership published in October 2012. That publication can be found on the Wilshire website here. All of the data was downloaded from freely available sources. The Wilshire 5000 membership was chosen because it is an index of all American companies with reliable data. However, at this time I have been unable to obtain the membership historically. That means I do not know what the Wilshire 5000 membership was prior to October 2012. Because my data comes from free Internet sources I may not have data for symbols that no longer exist. Any company that was delisted prior to the start of my data collection is likely missing from my dataset. I am still working to acquire the missing information.

Domainian Trader Index (DTI)

While my examples are based on the Wilshire 5000 there are several reasons that Domainian Trader does not consider a symbol for trading even if it is part of the Wilshire 5000. For example, if there is not enough historical data for a symbol then it will not be considered for trading. If there are periods in a symbols history without trading activity then the symbol may not be considered. In addition to symbols that are not considered the Wilshire 5000 is an index whose value is weighted by market capitalization. Aside from some minimum and maximum investment restrictions based on market capitalization Domainian Trader purchases the same number of shares of each company it buys on the same day. Therefore the Wilshire 5000 is a common index that is useful for comparison but it is a not the bar to use as a measure of the success or failure of Domainian Trader. However, the Domainian Trader Index (DTI) is the bar to measure by. The Domainian Trader Index is an average adjusted close value which only includes the symbols that are considered for trading by Domainian Trader. For Domainian Trader to be successful it must outperform the DTI. If Domainian Trader does not outperform the average of all the companies it is considering then it is not an effective trader.

Static Trading Rules

As an example a static trading rule might be to buy and hold company X when X’s 20 day moving average is above its 60 day moving average. You may generalize the rule by saying buy and hold company X when its short term moving average is above its long term moving average. But the question is how do you know 20 over 60 is actually better than 20 over 80 or 10 over 120? In some market conditions and for some symbols 20 over 60 would be better however, in some cases it would not. The answer is not always one or always the other.

Parameterized Trading Rules

If you can parameterize the same trading rule you can then statistically determine which parameters have produced the best results in recent history and use those parameters with the trading rule to determine your future buy and sell signals. A parameterized trading rule might be to buy and hold company X when X’s y day moving average is above its z day moving average. The input values for y could be 10 to 40 by 10 and the input values for z could be 60 to 120 by 20. That gives you 4 choices for y and 4 for z which means you would have 16 combinations of y and z. In an exhaustive optimization you have a parameter set for each the combinations and the trading rule would have to be evaluated for each of the 16 parameter sets. If your rule must be evaluated against each symbol you are considering a position in then your computational requirement increases for each of those symbols. So if you are watching only 100 symbols then your trading rule must be recalculated 1600 times for each set of trading decision.

Complexity

It should be obvious from the example above that the number of parameter sets grow exponentially as the number of rules, parameters, and parameter values increase. As the number of parameter sets grow so does the number of calculations that must be performed. The more symbols you consider increases the computational requirements even further. Consequently, regardless of how powerful your hardware is there is a limit to how many symbols you can watch, how large your parameter sets are, how many parameter sets you can have, and how many trading rules you can calculate in an allowable duration of time. The rules used in Domainian Trader do not actually consider moving averages. The results you will see here use 288 [a larger number] parameter sets which are used to evaluate the trading rules against every symbol in my data set at the end of every trading day.

Scope

Domainian Trader uses only daily historical prices which are freely available. Domainian Trader automates swing trading behavior. It will buy (open a position) and hold until an acceptable profit is achieved or the position has deteriorated and the position is closed at a loss. Domainian Trader is not designed for high volume, intraday, or day trading but it will only hold a position for a few days at most. The system will issue market orders, stop orders, and limit orders.

Trading Model

While there are many different simulators for trading and testing trading rules I did not find one that could do what I needed. But, In order to develop Domainian Trader I had to have the ability to simulate trading against a historical dataset. So I built my own. I refer to the simulator as the trading model. The trading model attempts to take into consideration all commissions and trading fees. The results from the model should be what you would actually receive had you invested. I validated the trading model by running the model alongside a small test fund which I call the live fund. If the trading model and Domainian Trader are functioning properly than the value of the fund according to the model and the actual value of the live fund is the same.

Distribution Algorithm

Domainian Trader has a distribution algorithm which attempts to cover as many positions as possible keeping the fund diversified. Different initial investments do produce different results. That is because there is a minimum quantity of shares that must be purchased with each transaction. Of the approximately 3500 symbols analyzed every day Domainian Trader may generate 50 buy signals. Domainian Trader cannot cover all 50 positions as well as the positions already opened if there is only $10,000 invested. However, with a very large investment Domainian Trader can evenly distribute the money acting on all buy signals.

Updates

I do still occasionally find bugs which affect the results. This page is updated periodically with any corrections, new simulated funds, and additional analysis. If you are interested in more details please Contact Us .

Domainian Trader