PureBytes Links
Trading Reference Links
|
Only the school of 'hard knocks', as we say in Australia.
Thanks mate!
I will be awake all night now thinking about how I can gain an edge
from indicator composites.
BrianB2.
--- In amibroker@xxxxxxxxxxxxxxx, "Mark H" <amibroker@xxx> wrote:
>
> Brian:
>
> You have put a lot of thoughts in this topic. I am wondering if
you are from academic background :-)
> If you are building a composite to detect the pulse of the bear or
bull, I would recommend you consider a composite of indicators
instead of just price and volume.
> Tsokakis the great had many old posts discussing Trade-the-market
concept and have some composite code in AFL online library on
amibroker.com, which are very inspiring.
>
> - Mark
> ----- Original Message -----
> From: brian.z123
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Tuesday, August 15, 2006 10:56 PM
> Subject: [amibroker] Re: Unweighted Composites (again!)
>
>
> Tim,
>
> As in most trading discussions it is `horses for courses'.
> It is often difficult to arrive at absolute or error free
outcomes,
> as the Decision Point (DP) article states:
>
> `The bottom line is that different methods of calculating market
> indexes will render different results, so it is important to
> understand how an index is derived and what it intends to
> convey......
> Since we didn't account for index component changes during that
> prior two years, the indexes for that period are not 100%
accurate."
>
> I also find value in thinking outside the box e.g. I might have
a
> more expansive definition of `indexes' than the mainstream.
>
> In this topic we are talking about at least three different
indexes:
>
> 1. a cumulative total of the average %gain of each stock member
> per period,
> 2. a cumulative total of the %gain of each stock member per
> period,
> 3. a cumulative total of the %gain of `equal portfolios' per
> period.
>
> There is also a consideration of zero-based versus `number
based'
> indexes, weighted versus non-weighted, and cumulative versus ATC.
> I can't see any difference between the last two terms as far as
the
> outcome goes.
>
> Point 2 and point 3 are lifted straight from the DP article:
>
> "Calculate the daily average percentage change of each stock in
the
> index, and increase or decrease the prior day's index value by
that
> percentage.................
> We have to assume that the theoretical dollar value of the index
is
> equally distributed among each issue in the index at the
beginning
> of each market day."
>
> I have posted a file at this AmiBroker Group file site under
> Indexes/Composite.xls to illustrate some of the arguments from
my
> first post (I might take the folder and file down after a while).
> The file tracks the three indexes we are interested in for 3
Bars or
> 2 Periods.
> In places I interchange %, say 0.63%, with %factor 1.0063 for
> calculations.
>
> Index 1 (highlighted in green - table 1).
>
> Table one, period 1, illustrates that for three stocks of
different
> prices the average ROC% change of the stocks can be positive
(cell
> C8) while the ROC% for the `portfolio' is negative (cell F12)
and
> the portfolio lost money.
> This is because method 1 is still weighted by the larger priced
> stocks.
> As stock C, the highest priced stock, fell - 1.7%, it influenced
> the `index' disproportionately.
> So for average ROC% indexes there is no obvious relationship
between
> the index and the change in the portfolio.
>
> Index 2 (highlighted in grey - table 1) leads to similar
conclusions.
>
> Index 3 (refer to table 2).
>
> Table 2 contains exactly the same data and calculations as table
1
> with the exception that the stocks in the portfolio have had
`money
> management' rules applied.
> We have now purchased equal $values of each stock i.e. 10 shares
of
> stock A, 2 shares of stock B and 1 share of stock C.
> We can see that for `equal $ weighted' portfolios the ave %ROC
index
> tracks the portfolio for the first period.
> To maintain the equal weighted nature of the index it might be
> necessary to rebalance the portfolio every period.
> I would say that this is what the article is referring to.
> This might involve some tricky code; I'm not sure having gone no
> further at this point.
>
> I started to suggest in my previous post that as Ami provides
foreign
> ("~~~ equity", "X"), it might be more fruitful to use that for
the
> task as it has portfolio equalization built-in.
> The trick there might be to compare/overlay Ami portfolio equity
for
> your database/watchlist against the industry index of your
choice or
> any other composite.
> Possibly an Ami composite of, say the XYZ100 components, could
be
> calculated using the same formula as your database/watchlist of
> interest for comparison purposes.
> There might be ways to use AA to give you an equal $weighted buy
and
> hold index e.g. add the component members of the XYZ100 to your
> portfolio, assign each a 1% equal weighted $ value using money
> management rules in AA, use buy C on date of your period as the
> entry and sell C on the last date of your period as the exit,
run a
> back-test and plot the resultant ~~~equity curve (the default
equity
> histogram can be changed to line view).
> Obviously, if your interest is in comparing database subsets
> (watchlists) or rotating subsets (watchlists) it gets quite a
bit
> trickier, as the previous composite topics discussed in the
forum
> show.
>
> In my first post I also introduced the possibility of using a
> fourth `index'.
> In the spreadsheet tables it is highlighted in yellow.
> It is a smoothed curve that I would describe as the exponential
mean
> of the portfolio, although that might not be the correct
> terminology, as I am not mathematically trained.
> It is calculated by multiplying the starting portfolio by the
> average portfolio ROC% for any period(s).
> It can be derived from starting and ending portfolio values
(refer
> to table 2 - cell K13, K15 -highlighted in blue).
> Possibly this `index' offers a quick comparison of the relative
> value between buy & hold one basket of shares c.f. another but I
> haven't followed through on that either.
>
> Most of the examples I have used zero based which offers the
> advantage of easy comparison by chart overlay.
> Users can add any common number as an initial starting point,
which
> will simply move the starting point of all indexes up the chart
a
> bit.
> The main thing is that apples are compared to apples and that
the
> index is actually telling you what you want it to, or as near to
it
> as one can get.
>
> Mark H; thanks for your code.
> It looks like it creates index 1 to me.
> It can run in a pane by itself can't it?
>
> BrianB2.
>
> --- In amibroker@xxxxxxxxxxxxxxx, "brian.z123" <brian.z123@>
> wrote:
> >
> > Hello (Tim?).
> >
> > Would these speculative ideas help?
> >
> > 1. For a database subset (watchlist etc) that is constant for
the
> > period:
> >
> > create a composite (as per Graham's or other code in recent
> > composite posts except without the averaging component);
> > and then divide ROC(~composite,periods) by periods to
standardise
> > the composite to % per bar (day, week?).
> > That would give you a standardised composite 'momentum' type
> > indicator for your watchlist etc.
> > I don't know if I would describe it as 'unweighted' as it is
> > monentum biased but it might be 'unweighted' by your
definition.
> > If you want to do it for a complete database you can create
the
> > composite without looping etc and use ROC/periods in the same
way.
> >
> > 2. For a rotating subset, say a watchlist, create a composite
for
> > the 'current' bar (day, week, month etc), (without the
averaging
> > component);
> > perform an ROC(~periodcomposite,1) = PC,
> > and then create your running watchlist composite of the period
> > result ATC(PC etc) over the bar range that interests you.
> > There is no need to give any consideration to averaging as the
> > ~watchlist has already been standardised to % per period basis.
> > The ROC% composite index is also zerobased for any range so
there
> is
> > no need to set and maintain an intitial stating or 'base'value.
> >
> > If the criteria for rotating symbols in and out of the
watchlist
> is
> > constant over time then method 2 would be going awfully close
to
> > being a pseudo backtester with the 'composite' plot analagous
to
> an
> > equity curve, wouldn't it?
> > An interesting conceptual extrapolation of that idea would be
to
> > replace the 'watchlist' with a set of trading rules which
would
> > create a dynamic composite 'on the fly'.
> > (I think that idea or somethng like it has been talked about
> > somewhere else in AB; maybe by Tomasz?)
> >
> > As I can barely write a line of code to save myself I can't
help
> > with specific code or any further clarification.
> > I have just offered my comments as a starting point for one
> possible
> > solution or maybe as an interesting discussion piece.
> >
> > BrianB2.
> >
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "timgadd" <timgadd@> wrote:
> > >
> > > After spending MUCH time searching, I have found this topic
> > started
> > > many times in the group archive, but i've never seen a final
> > solution
> > > given in AFL. I would greatly appreciate assistance with the
AFL
> > code
> > > or reference to a prior solution.
> > >
> > > The standard AddToComposite function produces a "price
weighted"
> > > composite. For analyzing the breadth of a sector, for
> > > instance, "unweighted" composites are more appropriate and
> > revealing.
> > > I have seen the term "equal weighted" used for what i am
calling
> > > an "unweighted" composite, so i will explain in boring
detail
> what
> > i
> > > am looking for just to be clear.
> > >
> > > By unweighted composite, i refer to one that is produced by
> > > calculating an arithmetic or geometric average of the day to
day
> %
> > > change for each component, so that each component has equal
> weight
> > > (no weighting is introduced by the calculation). I am
interested
> > in
> > > the arithmetic average - the simplest form, but i don't know
how
> > to
> > > initialize the starting value and then cumulate(?) the
> successive %
> > > change averages for the open, high, low, close (volumes are
> simply
> > > added). I have seen references regarding problems with
averaging
> > > values for high and low for this type of composite, so if
> > necessary,
> > > a composite calculated on the close only will suffice. I am
only
> > > interested in the average changes between end-of-day values,
but
> > > would like to produce candlesticks of the composites if
possible.
> > >
> > > Assuming closing values only, each composite will start with
an
> > > initial value (like 100) and then, for each day, the average
of
> > all
> > > the %changes (from the previous day) will be added to the
> > preceding
> > > value. Using a simple 3 component composite as an example,
> assume
> > for
> > > the second value of the composite (remember the first value
will
> > be
> > > 100), we have the following %changes.
> > >
> > > Component1 = +1.2%
> > > Component2 = +2.4%
> > > Component3 = -1.7%
> > >
> > > So the first day's average %change = ( 0.012 + 0.024 -
0.017 ) /
> 3
> > >
> > > 100 + ((0.012 + 0.024 - 0.017) / 3) + (the next day's
average %
> > > change) + ...
> > >
> > > The component values for volume are just added (or averaged)
to
> > get
> > > the daily values.
> > >
> > > TIA for any help.
> > >
> >
>
|