PureBytes Links
Trading Reference Links
|
If you don't need looping, how do you propose to change the MaxFilter and
MinFilter each year as the overall volume changes? Perhaps not every year, but
maybe every 4 or 5 years, but it does need periodic changing. I presume you want
to do this for backtesting purposes. So, it seems to me you do need some sort of
loop in order to change your filter with time. If you figure it out, please post
the code. I'm interested. Thanks.
AV
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
<A title=chuck_rademacher@xxxxxxxxxx
href="">Chuck Rademacher
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Thursday, June 19, 2003 9:54
PM
Subject: RE: [amibroker] A challenge for
Al Venosa...
I don't think it is necessary
to get into looping. The code snippet below is just about
there. I just need to think about how to do the normalising. I'll
get out my bible (Kaufman's book) and have a look. He always comes
to my rescue.
<BLOCKQUOTE
>
-----Original
Message-----From: Al Venosa
[mailto:advenosa@xxxxxxxxxxxx]Sent: Thursday, June 19, 2003 9:50
PMTo: amibroker@xxxxxxxxxxxxxxxSubject: Re:
[amibroker] A challenge for Al Venosa...
Chuck,
I knew I'd get myself into deep doo-doo by answering your first
question. Even though I've owned AB for more than 1.5 years, I still
consider myself a rank beginner when it comes to AFL. There are lots more
folks out there much more astute than I am who could probably give you the
proper code. To increment each year, you probably need a For loop, which I
plead ignorance on. I believe you want to filter on TODAY'S stocks from a
minimum volume of 200,000 to a maximum volume of 500,000. So, you have
already defined TodaysFilter, which is:
TodaysFilter = V>MinFilter AND < MaxFilter;
What you really need to define is LastYearsFilter, and then the
yearbeforelast's, and so on. Each of those years' volumes is normalized to
the average volume 4500 bars ago. Sorry, I don't know the answer, but I'm
sure someone with intimate knowledge of For loops will speak up. I'm much
more of a lurker than a major contributor to this forum. Every once in
awhile, I emerge from hibernation and contribute something, but when it
comes to code, I usually let others take the lead.
AV
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
<A title=chuck_rademacher@xxxxxxxxxx
href="">Chuck Rademacher
To: <A
title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Thursday, June 19, 2003 8:42
PM
Subject: [amibroker] A challenge for
Al Venosa...
<FONT
face=Arial>Al,
<FONT
face=Arial>
How about writing an
AFL statement to do the normalising for me?
<FONT
face=Arial>
It would look
something like this:
<FONT
face=Arial>
x =
ma(WilshireVolume,245);
// 245 is approximately a year.... not critical
y =
ref(ma(WilshireVolume,245),-4500); // 4,500 is an
approximately how far back I want to look
<FONT
face=Arial>
maxFilter =
500000;
minFilter =
200000;
<FONT
face=Arial>
TodaysFilter =
(
);
<FONT
face=Arial>
<FONT
face=Arial>
I finished four of
the lines. If you could finish the fifth line, it would be
fantastic.
<BLOCKQUOTE
>
-----Original
Message-----From: Al Venosa
[mailto:advenosa@xxxxxxxxxxxx]Sent: Thursday, June 19, 2003
8:21 PMTo: amibroker@xxxxxxxxxxxxxxxSubject: Re:
[amibroker] Historical volume filtering
Chuck,
I, too, have often wondered how to apply a volume filter to the
distant past. What you suggest makes sense. However, it might be a
little more accurate if you normalized annual volume of the NYSE to 1985
and then increased your multiplier each year by the incremental increase
(or decrease) in volume for the next year. So, each year there would be
a different multiplier applied to your filter (starting with 1985 being
1). Also, why limit it to the NYSE? If you trade NASDAQ stocks, do the
same for them. Or, how about the Wilshire 5000 for the entire market?
Of course, this brings on the next question. If you also filter on
stocks with a price > $20/share, for example, how do you handle stock
splits over the years? A $20 stock today might be $0.20/share or less
back in 1985. Any ideas along these lines?
Al Venosa
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
<A title=chuck_rademacher@xxxxxxxxxx
href="">Chuck Rademacher
To: <A
title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Thursday, June 19, 2003
8:01 PM
Subject: [amibroker] Historical
volume filtering
<FONT face=Arial color=#0000ff
size=2>I was about to send this email to "b", but I would welcome
comments from anyone else interested in such historical
work.
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Arial color=#0000ff
size=2>At the risk of having some of you ask why it matters, my
backtesting generally goes back to 1985. Just
yesterday, I posted a message to this group saying that I always use
one set of parameters across all stocks and across all
timeframes. One of the downsides of this approach
(perhaps) is that volume has changed over time. I suppose
that one could argue that volatility changes over time as
well. Volatility, however, goes through cycles and volume
just keeps growing.
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Arial color=#0000ff
size=2>The question that I have involves volume filtering.
To me, it is essential that volume filters be applied to actual volume
and not backadjusted volume. My concern, however, is that
if I apply a filter requiring an average of 300,000 shares, I don't
get very many hits back in the late 80's and early
90's.
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Arial color=#0000ff
size=2>I have a solution in mind and would appreciate some input or
dialogue on the subject. It seems to me
that volume filtering should be based on some percentage of
the total volume of all NYSE stocks (for instance). I
haven't done my homework yet, but let's say that the average volume
today is ten times more than it was in 1985. If I decide
to filter today at 300,000 shares, wouldn't it make sense to filter
based on 30,000 shares in 1985. I can probably answer that
question myself by saying that I don't think 30,000 would be an
adequate filter in 1985. But I could scale it from 100,000
to 300,000 progressively between 1985 and 2003 based on mathematical
equation.
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Arial color=#0000ff
size=2>You may ask why backtesting to 1985 (or any other date) is
important. There are dozens of reasons, but the most
important reason to me is that prospective investors in any funds that
I manage want to see how a proposed system would have
performed over a statistically meaningful period of time.
You can argue about the relevance of such information, but THEY EXPECT
TO SEE IT. For the record, I also think that it is very
important.
<FONT face=Arial color=#0000ff
size=2>
<SPAN
class=742013523-19062003>I
welcome comments from anyone with an interest or knowledge in this
area.Send BUG REPORTS to
bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web
page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of
Service. Send BUG REPORTS to
bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web
page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of
Service. Send BUG REPORTS to
bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page:
<A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Send BUG REPORTS to bugs@xxxxxxxxxxxxxSend
SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page:
<A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Send
BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Yahoo! Groups Sponsor
ADVERTISEMENT
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
|