PureBytes Links
Trading Reference Links
|
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/
|