Hello Growly, I did this sort of thing a few years back and posted on it.
Didn't attract any comments. I thought it was a good idea. The headline indexes belong to the institions and serve their purposes. Knowing how they are constructed we (freelance traders) can use them as we see fit but IMO the equal weighted index is the Traders Index: 1) - if we are system trading it is our real benchmark.... we could nominally split our capital and buy an equal $ value of each stock in the 'index' .... nominally we sell at the close of every bar ... rebalance our capital and buy back in. This doesn't require any special trading skill so it is the dumbluck return we can achieve and our equivalent of 'buy & hold'. Traders Benchmark == format as GrowthFactor and expressed as equity (GF1 * GF 2 ->GFn) There is no need to stipulate starting eq because Initial EQ == 1 standardises the Traders Indexes. Using the same number of bars (data sample window) standardises the TI in time. 2) we can construct our indexes for any universe of stocks and are not limited to, say the S&P list 3) we can move between markets and take our benchmarks with us (some markets don't have the range of indexes available in the US) Try averaging your index (divide the Sum(ROC per bar) by the number of stocks in the index) ... perhaps this could be seen as a standard that holds even when stocks rotate out of your index watchlist. --- In [email protected], "G_R_O_W_L_Y" <g_r_o_w_...@...> wrote: > > Hello > > I have created an Amibroker index creation script that uses percentage > change in each security added, rather than price movement to ensure > equal weighting for each security. > > It still is not functioning correctly and if anyone would like to > give it a try and maybe recommend any changes that would be greatly > appreciated. > > > Simply run it in Automatic Analysis on a group of securites and it > will create an index name "~MyIndex" > > > AddToComposite( ((Close - Open) / Open ) * 100, "~MyIndex", "X" ); > AddToComposite( 1, "~MyIndex", "I"); > Buy=0; > Graph0=(Foreign("~MyIndex", "C" ) / Foreign("~MyIndex", "I" )); > > > Thanks >
