From the help section of the product:
Historic adjustments refer to adjustments made to the database for the purpose of continuity. They can
affect both commodities and stocks, and both charts and files. Futures Adjustments and Stock Adjustments settings are included in UA Preferences. Click "Historical Adjustments" to see your current setting and adjust as
desired.
The Historical Adjustments Screen:
The Historical Adjustment screen of Charting Preferences is very similar to the Historical Adjustments tab of Portfolio Settings. The one that controls your current
chart depends upon how the chart is created. Charts made from a portfolio
listing use the preferences that are defined for the specific portfolio. Charts
made through the "New Chart" feature will use the specification on
the Charting Preferences - Historical Adjustment
screen. Either way, here's how the settings apply:
Futures Adjustments
At your option, UA will apply adjustments involving contract specifications and changes in currency to
bring historical futures data into current dollar terms. This is most
appropriate for long-term historical analysis. Make sure the box is checked, if
desired.
Stock Adjustments
These settings change the historical
presentation of your stocks to accommodate various factors affecting price or
volume. They include:
·
|
Splits - The split ratio is applied to historical pricing so that
historical data is in line with current valuations. For example, a split-adjusted chart of IBM stock shows a considerably higher valuation now
(near $100/share) than in 1965 (near $7/share). This accurately reflects
growth that might otherwise be disguised by stock splits. Without split-adjustments, IBM shows a very sporadic price history and a closing price on
1/4/1965 of over $400/share. Although that was the actual price at the
time, the valuation does not correspond with today's pricing. Adjusting for Stock Splits is recommended.
|
·
|
Dividends and Capital Gains - Like stock splits, dividends and
capital gains distributions can obscure actual stock growth. The adjustment subtracts dividend and capital gains distributions from historical stock prices,
with cumulative effects. As noted, the subtraction of all dividends and capital gains can cause historical series to sink below
zero. Note that negative values can cause errors in some analysis and
charting programs.
|
·
|
Adjust Dividend/Capital Gains Proportionally - This choice becomes available only when adjustments are requested for Dividends and
Capital Gains (above). Proportional adjustments are
made by reducing the price of the stock by the proportional value, rather
than the actual dollar value, of the dividend or
distributions over time. The result is a series that will not go negative,
but which will not reflect actual dollar value of dividends and capital gains.
|
·
|
Adjust Stock Volume for Dividends and Capital Gains - This feature allows you to see the impact of dividends and capital gains on daily trading volume. It is available only
when both of the above Dividend and Capital Gains choices are implemented.
|
--
Terry
-----Original Message-----
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of
timgadd
Sent: Tuesday, March 21, 2006 19:04
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] CSI Data adjustments for dividends
Terry,
Can you point me to any information regarding CSI's claim to adjust
their stock data for dividends? I couldn't find any mention of it on
their web site, but will dump my current 2 data subscriptions for CSI
or any other vendor who meticulously adjusts their data to provide a
true picture of total return.
FastTrack is the only source I have been aware of that does this, but
they are too stuborn to provide open, high, low and volume data,
having been a mutual fund vendor for years.
Thanks
--- In amibroker@xxxxxxxxxxxxxxx, "Terry" <MagicTH@xxx>
wrote:
>
> "It gets worse the farther back in time I go. I'll have to
study the
> problem some more."
>
>
>
> It sounds like you might be seeing a back-adjusted data problem. I
would
> really like to have the fundamental data of QP3, but I think it's
more
> important to have access to ACTUAL PRICES and EXTINCT STOCKS so my
> back-tested trades in 1995 will appear realistic. I.e., I will buy
> stocks based on their "real" price at the time and I
will not have
> survivorship bias in my tests (buying only stocks that are still
in
> business today because the database no longer has the old stocks -
most
> data vendors seem to think this is a "benefit" as their
databases
are
> not "cluttered" with all the dead stocks). So I use CSI
Data and
give up
> on the fundamental info.
>
>
>
> Also check how your data is exported. CSI allows exports to be
> proportionally back-adjusted for dividends and splits. This method
> corrects for splits, dividends and capital gains and never allows
the
> prices to go negative (which AB doesn't like). By adjusting for
both
> dividends and capital gains you don't get false signals on your
> indicators when the price drops by the amount of the dividend.
>
> --
>
> Terry
>
> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
On
> Behalf Of Jeff Springer
> Sent: Tuesday, March 21, 2006 00:28
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: RE: [amibroker] Re: Single Value from Array
>
>
>
> Terry,
>
> I want to thank you for the time you put into educating me. I
learned a
> lot. I rewrote my code using what you taught me and everything
worked
> out as it should. It was much faster, and much cleaner.
Unfortunately, I
> haven't thought this through enough. It's looking more and more
like
> what I want to do will simply not be possible. The code returns
> different values from the array, but several vary from what QP3's
own
> software is telling me the earnings should be; even on the last
earnings
> reported (which should be barcount-0). It gets worse the farther
back in
> time I go. I'll have to study the problem some more. At least I
learned
> a lot about loops and arrays!
>
>
>
> Cato
>
> Terry <MagicTH@xxx> wrote:
>
> Cato,
>
>
>
> Almost.
>
>
>
> EPS is an array. AB let's you access individual array elements,
called
> bars (bar = day in a daily database), with [brackets]. So, EPS[i]
is
> just one of the days in the database for the symbol in use. You
were
> correct in your original assumption on that count. What you're
missing
> is the necessity of breaking those out into separate elements
since
EPS
> already contains the values you want. Maybe an example is in
order:
>
>
>
> Buy = C > 10 AND ESP > 20; //A simple example that buys if
Price is
>
> $10 and EPS > 20
>
>
>
> A backtest evaluates each bar (or the range of bars you select as
dates
> to test) and it knows on each day (bar) what the values are. The
EPS
> will change quarterly as it should. You don't really need to do
anything
> special to make this happen.
>
> --
>
> Terry
>
> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
On
> Behalf Of Jeff Springer
> Sent: Monday, March 20, 2006 18:49
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: RE: [amibroker] Re: Single Value from Array
>
>
>
> Terry,
>
> Thank you for your excellent reply. I think you pegged me right
on.
I
> was under the impression that the [] subscript referenced only a
single
> number from that array. But you're telling me that EPS[x] is an
array as
> well, albeit an array with the same number repeated for however
many
> bars. So, if I can rephrase what you wrote, I don't need EPSx, I
just
> need EPS with the various values for i to pull the number I want
to
> manipulate out? I can understand that, and see that what I really
need
> is to discover the values for "i" at each change. Do I
understand
you
> correctly?
>
>
>
> If so, do you have any recommendations for discovering the values
for
> "i"? Would it be much like your first post? I imagine I
would use
> different variables for each occurrence of a change, but I
probably
> shouldn't start assuming again.
>
>
>
> Again, your reply was very clear and clarifies a lot of questions
I
had.
> Thank you, again.
>
>
>
> Cato
>
> Terry <MagicTH@xxx> wrote:
>
> Cato,
>
>
>
> I don't have QP3 so I can't get too specific, but I think you have
a
> basic misunderstanding on how Amibroker is supposed to work. It's
very
> common for people with coding experience to want AB to work with
single
> values. If I'm way off on understanding your issue, my apologies!
>
>
>
> AB is an array processing system. For example, you shouldn't mix
arrays
> and single values as you have done in your Do loop. You have
assigned a
> single value to an array with EPS0 = EPS[b-1]. So, you have
assigned the
> same value to the entire EPS0 array. This array is the same size
array
> as the ticker you are working with. Now you have 4 arrays, all
barcount
> long, with the same value in each one. I think you are thinking
you
have
> an array that is one-quarter long (about 66 days), but it is not.
> Besides, you already have all the data in the original EPS array
and
> it's already arranged by quarter. In abbreviated form you have
this:
>
>
>
> Array Values -->
>
> EPS
11111111111111122222222222222233333333333333334444444444444444
>
> EPS0
11111111111111111111111111111111111111111111111111111111111111
>
> EPS1
22222222222222222222222222222222222222222222222222222222222222
>
> EPS2 33333333333333333333333333333333333333333333333333333333333333
>
> EPS3
44444444444444444444444444444444444444444444444444444444444444
>
>
>
> You need to get comfortable with data being in arrays and each bar
> simply represents the status "as of that bar". It really
works well
this
> way. Your EPS has a value everyday. If it doesn't change for an
entire
> quarter, you simply have the same value everyday. Then, on the day
it
> changes, you'll have the new value for the next 66 days. On any
given
> day you can simply refer to your EPS or Sales array and you will
have
> the correct value. AB "knows" which day you are
"on". Same answer
for
> your original question about Ref(). It does refer to a single
value -x
> bars in the past, it's just an array of single references so on
any
> given day, the array "knows" the answer -x bars
previously.
>
>
>
> Again, sorry if I am explaining something you already know.
>
> --
>
> Terry
>
> --
>
> Thank you very much for replying, Terry. That's pretty much what I
> discovered over the weekend. Would you mind looking at my response
to
> Bill Barnard and providing your input?
>
> Terry <MagicTH@xxx> wrote:
>
> Try this:
>
> i = 0; //Start at beginning of array
> do i++; while (myArray[i-1] == myArray[i])
> //After this line executes, the value of i = the first changed
array
> element.
> --
>
> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]
On
> Behalf Of Jeff Springer
> Sent: Monday, March 20, 2006 10:35
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: Re: [amibroker] Re: Single Value from Array
>
>
>
> Hi Bill,
>
> I've figured it out, but have run into a new problem. I'm trying
to
get
> the history of EPS and Sales from the QP3 data, which are arrays.
I
> didn't want to be this specific because I realize others don't
have
QP3
> and I wanted to phrase my question in general terms that I think
would
> work with all arrays. I think if you run this code on any array
you
> should come up with the same error I got. Would you mind looking
at
it
> and giving your input?
>
>
>
> EPS=GetExtraData("EPS");
>
> b=BarCount;
>
> i=1;
>
> EPS0=EPS[b-1];
>
> Sales0=Sales[b-1];
>
> //CurrentQ-1
>
> do
>
> {
>
> EPS1=EPS[b-i];
>
> Sales1=Sales[b-i];
>
> i++;
>
> }
>
> while (EPS1==EPS0 AND i<b);
>
> //CurrentQ-2
>
> //i=1;
>
> do
>
> {
>
> EPS2=EPS[b-i];
>
> Sales2=Sales[b-i];
>
> i++;
>
> }
>
> while (((EPS2==EPS0) OR (EPS2==EPS1)) AND i<b);
>
> //CurrentQ-3
>
> i=1;
>
> do
>
> {
>
> EPS3=EPS[b-i];
>
> Sales3=Sales[b-i];
>
> i++;
>
> }
>
> while (((EPS3==EPS2) OR (EPS3==EPS1) OR (EPS3==EPS0)) AND i<b);
>
>
> There's more, but you can see the general pattern from these
three.
The
> EPS array is set up so that each bar for a quarter has the same
EPS
> value. When a new EPS comes out, the EPS changes (ideally; since
I'll
> only be looking at stocks where EPS increases, I don't care if the
code
> mistakes a new EPS for an unchanged EPS). I step back through the
array
> to search for a different EPS.
>
>
>
> This code works fine, but I would prefer that "i"
continues
counting up
> rather than reseting (as I've done with the "i=1;" line
before each
do
> loop). The problem with this is that the do loop checks the
condition
> /after/ running the "EPSx=EPS[b-i];" line. So, when it
hits a stock
with
> few bars, the code errors out with the "outside 0...
(barcount-1)
range"
> error. Is there a way to put a conditional statement in before the
> "EPSx=EPS[b-1];" line so that if "i" is
greater than the barcount,
then
> EPSx is null, or 0?
>
>
>
> I've tried changing the "EPSx=EPS[b-i];" line to
"EPSx=iif(i>b, 0,
> EPS[b-i];" but that still errors out. Maybe there's something
more
basic
> I'm missing.
>
>
>
> Thank you, for your help.
>
>
>
> Cato
> Bill Barnard <wbarnard@xxx> wrote:
>
> --- In amibroker@xxxxxxxxxxxxxxx, Jeff Springer
<fatboycato@> wrote:
> >
> > Thank you so much for replying, Bill, but I don't think that
will
> work for me. I was hoping to use the code in an exploration, and I
> think this code will only give me the data in a debugger window,
> correct? I tried assigning the _Trace calls to variables, and then
> displaying that variable with AddColumn, but of course that
doesn't
> work. I'm too programming ignorant to know why.
> >
> > It seems to me that if Ref() calls up a specific value in
the
> array, then it shouldn't be returning an array, just that specific
> value. I'm sure there's a good reason why it doesn't work this
way,
I
> only wish I had some way of calling up a value from an array and
> assigning that value, and only that value, to a variable.
>
> ---------------------------------------------
>
> You are welcome. sorry it isn't what you need.
>
> Ref() does produce an array, the original one shifted by a certain
> amount.
>
> If you can describe what you are trying to do, very exactly, in
> English, I am sure the code would not be too difficult.
>
>
>
>
>
>
>
>
> _____
>
>
> Yahoo! Mail
> Use
>
<http://us.rd.yahoo.com/mail_us/taglines/pmall2/*http:/photomail.mail.
ya
> hoo.com> Photomail to share photos without annoying
attachments.
>
>
>
>
> _____
>
>
> Yahoo! Mail
> Bring photos to life! New
>
<http://pa.yahoo.com/*http:/us.rd.yahoo.com/evt=39174/*http:/photomail
.m
> ail.yahoo.com> PhotoMail makes sharing a breeze.
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For other support material please check also:
> http://www.amibroker.com/support.html
>
>
>
>
>
>
> SPONSORED LINKS
>
>
> Investment
> <http://groups.yahoo.com/gads?
t=ms&k=Investment+management+software&w1=I
>
nvestment+management+software&w2=Real+estate+investment+software&w3=In
ve
>
stment+property+software&w4=Software+support&w5=Real+estate+investment
+a
>
nalysis+software&w6=Investment+software&c=6&s=200&.sig=_XXUzbE9l5lGlZN
cM
> u4KNQ> management software
>
> Real
> <http://groups.yahoo.com/gads?
t=ms&k=Real+estate+investment+software&w1=
>
Investment+management+software&w2=Real+estate+investment+software&w3=I
nv
>
estment+property+software&w4=Software+support&w5=Real+estate+investmen
t+
>
analysis+software&w6=Investment+software&c=6&s=200&.sig=5_sgDczz3ArKGM
tJ
> 9tFSJA> estate investment software
>
> Investment
> <http://groups.yahoo.com/gads?
t=ms&k=Investment+property+software&w1=Inv
>
estment+management+software&w2=Real+estate+investment+software&w3=Inve
st
>
ment+property+software&w4=Software+support&w5=Real+estate+investment+a
na
>
lysis+software&w6=Investment+software&c=6&s=200&.sig=_N6zcwefgp4eg5n6o
X5
> WZw> property software
>
>
> Software
> <http://groups.yahoo.com/gads?
t=ms&k=Software+support&w1=Investment+mana
>
gement+software&w2=Real+estate+investment+software&w3=Investment+prope
rt
>
y+software&w4=Software+support&w5=Real+estate+investment+analysis+soft
wa
>
re&w6=Investment+software&c=6&s=200&.sig=MJ2jP31F3n64RDZkDadU8w>
> support
>
> Real
> <http://groups.yahoo.com/gads?
t=ms&k=Real+estate+investment+analysis+sof
>
tware&w1=Investment+management+software&w2=Real+estate+investment+soft
wa
>
re&w3=Investment+property+software&w4=Software+support&w5=Real+estate+
in
>
vestment+analysis+software&w6=Investment+software&c=6&s=200&.sig=GmF8P
lA
> JASx0wrSaX5-Zlw> estate investment analysis software
>
> Investment
> <http://groups.yahoo.com/gads?
t=ms&k=Investment+software&w1=Investment+m
>
anagement+software&w2=Real+estate+investment+software&w3=Investment+pr
op
>
erty+software&w4=Software+support&w5=Real+estate+investment+analysis+s
of
>
tware&w6=Investment+software&c=6&s=200&.sig=aMgGsKT4w29dMAYUzQUKzg>
> software
>
>
>
>
> _____
>
>
> YAHOO! GROUPS LINKS
>
>
>
> * Visit your group "amibroker
> <http://groups.yahoo.com/group/amibroker> " on the web.
>
>
> * To unsubscribe from this group, send an email to:
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
>
<mailto:amibroker-unsubscribe@xxxxxxxxxxxxxxx?subject=Unsubscribe>
>
>
> * Your use of Yahoo! Groups is subject to the Yahoo!
> <http://docs.yahoo.com/info/terms/> Terms of Service.
>
>
>
>
> _____
>
------------------------ Yahoo! Groups Sponsor
--------------------~-->
Try Online Currency Trading with GFT. Free 50K Demo. Trade
24 Hours. Commission-Free.
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/GHeqlB/TM
--------------------------------------------------------------------~->
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/