PureBytes Links
Trading Reference Links
|
Issue 5/2000 AmiBroker Tips weekly newsletter.
Issue 5/2000.
Copyright (C)2000 Tomasz Janeczko.
All back issues available from:
http://www.amibroker.com/newsletter/
IN THIS ISSUE
1 Welcome
2 AFL Formula Library: Aroon Up/Down indicator
3 Tip of the week: Culling database - how to detect non trading stocks?
1 Welcome
Welcome to the 5th issue of AmiBroker Tips newsletter.
The main topic of this issue is how to remove stocks that are no longer traded from your database in automatic fashion. AFL corner features Aroon Up/Down indicator.
By the way: Do you find this newsletter useful? Have any comments/suggestions or article ideas. Please don't hesitate to drop a line to newsletter@xxxxxxxxxxxxxx
2 AFL Formula Library: Aroon Up/Down indicator
The Aroon indicator was developed by Tushar Chande. Aroon is Sanskrit word meaning "dawn's early light" or the change from night to day. The Aroon indicator allows you to anticipate changes in security prices from trending totrading range. The indicator uses two lines: Aroon Up and Aroon Down. Aroon Down is a measure of how close the current bar is to the most recent lowest Low bar found in the last N bars. Aroon Up is a measure of how close thecurrent bar is to the most recent highest High bar found in the last N bars. Additionally Aroon oscillator can be defined as the difference between the Aroon Up and Aroon Down indicators. For more information on the Aroon indicator see the article written by Tushar Chande in the September 1995 issue of Technical Analysis of Stocks & Commodities magazine.
Aroon indicator ranges from 0 to 100 and it is drawn with additional 30/70 levels. The default period is 14 days. The indicator works as follows: if asecurity makes a new 14-day high, the Aroon Up = 100; when the security makes a new 14-day low, the Aroon Down = 100; when there was no new high in 14 days, the Aroon Up = 0; and consequently when there was no new low for 14 days, the Aroon Down = 0.
Aroon indicator is an another way (in addition to VHF and ADX indicators) of detemining if market is trending or not. The AFL formula for the indicator is given below.
L14 = LLV( Low, 14 );
H14 = HHV( High, 14 );
AroonDown =
100* (14 - (( IIF(Ref(L,-1) == L14 ,1 , IIF( Ref(L ,-2 ) == L14 ,2 , IIF( Ref(L ,- 3 ) ==
L14 ,3 ,IIF( Ref(L ,-4 ) == L14 ,4 ,IIF(Ref( L ,-5 ) == L14 ,5 ,IIF(Ref(L ,-6 ) ==
L14 ,6 ,IIF( Ref(L ,-7 ) == L14 ,7 ,IIF(Ref( L ,-8 ) == L14 ,8 ,IIF(Ref( L ,-9 ) ==
L14 ,9 ,IIF( Ref(L,-10) == LLV(L,14 ) ,10 ,IIF(Ref(L ,-11) == L14,11 ,IIF(Ref(L,-12 ) ==
LLV(L ,14) ,12,IIF( Ref(L,-13) == LLV(L ,14 ) ,13 ,IIF( Ref( L,-14) == L14 ,14 ,0) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) / 14;
AroonUp =
100 * ( 14 - ( ( IIF(Ref(H ,-1) == H14 ,1 ,IIF(Ref(H ,-2 ) == H14,2 ,IIF(Ref(H ,- 3 ) ==
H14 ,3, IIF(Ref(H ,-4 ) == H14 ,4 ,IIF(Ref(H ,-5 ) == H14 ,5 ,IIF(Ref(H ,-6 ) ==
H14 ,6 ,IIF(Ref(H,-7 ) == H14 ,7 ,IIF(Ref(H ,-8 ) == H14 ,8 , IIF(Ref(H ,-9 ) ==
H14 ,9 ,IIF(Ref(H ,-10 ) == H14 ,10 ,IIF(Ref(H ,-11 ) == H14 ,11 ,IIF(Ref(H ,-12 ) ==
H14 ,12 ,IIF(Ref(H ,-13) == H14 ,13 ,IIF(Ref(H ,-14 ) == H14 ,14 ,0 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) / 14;
graph0 = AroonUp;
graph1 = AroonDown;
( Note: the formulas presented here are also available from http://www.amibroker.com/library.html )
3 Tip of the week: : Culling database - How to detect non trading stocks?
Note: This functionality is available only in Windows version of AmiBroker
In the first issue of AmiBroker Tips newsletter AmiBroker I discussed usingof AmiBroker's OLE automation interface for accessing stock data. In this article I will give you another example of automation: detecting non trading stocks using simple JScript. For starters I recommend reading the first article before proceeding with this one.
As you already know keeping your database clean is not an easy task. Especially when you have several thousands stocks listed. Some new tickers appear, some are gone and you don't want to keep them listed when they are not used anymore. Now you can of course examine each stock by hand but it is a tedious task. This is the area where AmiBroker's scripting & automation capability may help a lot.
The main idea of a script is to automatically scan the database and check the latest quotation date. If it is old enough (say last quotation date was more than 30 days ago) the script will warn the user and give him/her a change to decide if the stock should be deleted or not. Additionally script can generate a list of "old" stocks and save it to the text file.
When I wrote the script I realized that it is just too complicated for non-programmer, so I won't dig into details here. Instead I will explain how totune the script to suit your needs. I parametrized the script so it is easy now to change its behaviour. When you open the script with a text editor (such as Notepad) you will see the following lines at the beginning (after comments):
/* detection threshold (in days) */
var Threshold = 30; // one month for example
/* by default do not delete */
var DeleteByDefault = false;
/* ask the user for the decision */
var AskUser = true;
/* a timeout to wait until default route (no deletion) is taken */
var Timeout = 5;
These four variables control the bahaviour of the script. The Threshold variable defines how many non-trading days are needed to consider given tickeras obsolete and to warn the user about it. DeleteByDefault variable decides if detected stocks should be deleted by default - when user does not response within given timeout. As you can see I assigned false to this variableso tickers are NOT deleted by default (they are deleted only if user confirms deletion). AskUser decides if script displays prompts asking user what to do with given stock, if you assign a false to this variable the script will quietly scan the whole database taking a default route (not deleting just saving the list). Otherwise it asks the user what to do with each ticker. The last parameter Timeout decides how many seconds the script should wait for user interaction. If a timeout is reached (by default 5 seconds) without a click scripts goes further taking default route (not deleting). One nice feature of this script is that that even if you say "Yes" to delete given stock the script just adds the ticker to "StockToDelete" list and you can later decide not to proceed with the deletion. Another nice feature is that all stocks that were not deleted but were detected as obsolete can be written to "nottraded.txt" file. Just answer "Yes" when the script asks for this.
A complete Cleanup.js script can be found here. You could safely save this file onto your hard disk, launch AmiBroker and double click on the script file (in Windows Explorer). The script will run detecting your old stocks, and it will not delete anything unless you confirm deletion manually. Advanced users can play with described parameters to make this script better suited for your personal purposes.
.... and that's all for this week - hope you enjoyed reading
--------------------------------------------------------------------------------
AmiBroker Tips weekly newsletter. Issue 5/2000. Copyright (C)2000 Tomasz Janeczko. All back issues available from: http://www.amibroker.com/newsletter/
------=_NextPart_002_0010_01C05CA6.719831A0
Content-Type: text/html;
charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-2" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD>
<DIV align=center><B><IMG alt="" border=0 hspace=0
src="cid:000d01c05c9e$0fc300c0$bb1aa0d4@xxxx"><BR>Issue 5/2000</B></DIV></TD>
<TD width="15%"><FONT size=-2>AmiBroker Tips weekly newsletter.<BR>Issue
5/2000.<BR>Copyright (C)2000 Tomasz Janeczko. <BR>All back
issues available from:<BR><A
href="http://www.amibroker.com/newsletter/">http://www.amibroker.com/newsletter/</A></FONT></TD></TR></TBODY></TABLE>
<H5>IN THIS ISSUE</H5>
<H5>1 Welcome<BR>2 AFL Formula Library: Aroon Up/Down indicator<BR>3 Tip ofthe
week: Culling database - how to detect non trading stocks?</H5>
<H5>1 Welcome</H5>
<P>Welcome to the 5th issue of AmiBroker Tips newsletter. </P>
<P>The main topic of this issue is how to remove stocks that are no longer
traded from your database in automatic fashion. AFL corner features Aroon
Up/Down indicator.<BR></P>
<P>By the way: Do you find this newsletter useful? Have any comments/suggestions
or article ideas. Please don't hesitate to drop a line to <A
href="mailto:newsletter@xxxx">newsletter@xxxx</A></P>
<H5>2 AFL Formula Library: Aroon Up/Down indicator</H5>
<P>The Aroon indicator was developed by Tushar Chande. Aroon is Sanskrit word
meaning "dawn's early light" or the change from night to day. The Aroon
indicator allows you to anticipate changes in security prices from trendingto
trading range. The indicator uses two lines: Aroon Up and Aroon Down. AroonDown
is a measure of how close the current bar is to the most recent lowest Low bar
found in the last N bars. Aroon Up is a measure of how close the current bar is
to the most recent highest High bar found in the last N bars. Additionally Aroon
oscillator can be defined as the difference between the Aroon Up and Aroon Down
indicators. For more information on the Aroon indicator see the article written
by Tushar Chande in the September 1995 issue of Technical Analysis of Stocks
& Commodities magazine.<BR><BR>Aroon indicator ranges from 0 to 100 andit
is drawn with additional 30/70 levels. The default period is 14 days. The
indicator works as follows: if a security makes a new 14-day high, the Aroon Up
= 100; when the security makes a new 14-day low, the Aroon Down = 100; when
there was no new high in 14 days, the Aroon Up = 0; and consequently whenthere
was no new low for 14 days, the Aroon Down = 0. </P>
<P>Aroon indicator is an another way (in addition to VHF and ADX indicators) of
detemining if market is trending or not. The AFL formula for the indicator is
given below.<BR></P>
<BLOCKQUOTE>
<P><CODE>L14 = LLV( Low, 14 );<BR>H14 = HHV( High, 14 );</CODE></P>
<P><CODE>AroonDown =<BR>100* (14 - (( IIF(Ref(L,-1) == L14 ,1 , IIF( Ref(L ,-2
) == L14 ,2 , IIF( Ref(L ,- 3 ) == <BR>L14 ,3 ,IIF( Ref(L ,-4 ) == L14 ,4
,IIF(Ref( L ,-5 ) == L14 ,5 ,IIF(Ref(L ,-6 ) == <BR>L14 ,6 ,IIF( Ref(L ,-7 )
== L14 ,7 ,IIF(Ref( L ,-8 ) == L14 ,8 ,IIF(Ref( L ,-9 ) == <BR>L14 ,9 ,IIF(
Ref(L,-10) == LLV(L,14 ) ,10 ,IIF(Ref(L ,-11) == L14 ,11 ,IIF(Ref(L,-12 ) ==
<BR>LLV(L ,14) ,12,IIF( Ref(L,-13) == LLV(L ,14 ) ,13 ,IIF( Ref( L,-14) == L14
,14 ,0) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) / 14;</CODE></P>
<P><CODE>AroonUp =<BR>100 * ( 14 - ( ( IIF(Ref(H ,-1) == H14 ,1 ,IIF(Ref(H ,-2
) == H14 ,2 ,IIF(Ref(H ,- 3 ) == <BR>H14 ,3, IIF(Ref(H ,-4 ) == H14 ,4
,IIF(Ref(H ,-5 ) == H14 ,5 ,IIF(Ref(H ,-6 ) == <BR>H14 ,6 ,IIF(Ref(H,-7 ) ==
H14 ,7 ,IIF(Ref(H ,-8 ) == H14 ,8 , IIF(Ref(H ,-9 ) == <BR>H14 ,9,IIF(Ref(H
,-10 ) == H14 ,10 ,IIF(Ref(H ,-11 ) == H14 ,11 ,IIF(Ref(H ,-12 ) == <BR>H14
,12 ,IIF(Ref(H ,-13) == H14 ,13 ,IIF(Ref(H ,-14 ) == H14 ,14 ,0 )) ) ) ) ) )
) ) ) ) ) ) ) ) ) ) / 14;</CODE></P>
<P><CODE>graph0 = AroonUp;<BR>graph1 = AroonDown;</CODE></P></BLOCKQUOTE>
<P><I>( Note: the formulas presented here are also available from <A
href="http://www.amibroker.com/library.html">http://www.amibroker.com/library.html</A>
) </I></P>
<P><B>3 Tip of the week: : Culling database - How to detect non trading
stocks?</B></P>
<P><I><FONT size=-2>Note: This functionality is available only in Windows
version of AmiBroker</FONT></I></P>
<P>In the <A href="http://www.amibroker.com/newsletter/01-2000.html">first
issue</A> of AmiBroker Tips newsletter AmiBroker I discussed using of
AmiBroker's OLE automation interface for accessing stock data. In this article I
will give you another example of automation: detecting non trading stocks using
simple JScript. For starters I recommend reading the <A
href="http://www.amibroker.com/newsletter/01-2000.html">first article</A>before
proceeding with this one. </P>
<P>As you already know keeping your database clean is not an easy task.
Especially when you have several thousands stocks listed. Some new tickers
appear, some are gone and you don't want to keep them listed when they are not
used anymore. Now you can of course examine each stock by hand but it is a
tedious task. This is the area where AmiBroker's scripting & automation
capability may help a lot. </P>
<P>The main idea of a script is to automatically scan the database and check the
latest quotation date. If it is old enough (say last quotation date was more
than 30 days ago) the script will warn the user and give him/her a change to
decide if the stock should be deleted or not. Additionally script can generate a
list of "old" stocks and save it to the text file. </P>
<P>When I wrote the script I realized that it is just too complicated for
non-programmer, so I won't dig into details here. Instead I will explain how to
tune the script to suit your needs. I parametrized the script so it is easynow
to change its behaviour. When you open the script with
a text editor (such as Notepad) you will see the following lines at the
beginning (after comments):</P>
<BLOCKQUOTE>
<P><CODE><FONT color=#0000ff>/* detection threshold (in days) */</FONT><BR>var
Threshold = 30; // one month for example <BR><FONT color=#0000ff>/* by default
do not delete */</FONT><BR>var DeleteByDefault = false;<BR><FONT
color=#0000ff>/* ask the user for the decision */</FONT><BR>var AskUser=
true;<BR><FONT color=#0000ff>/* a timeout to</FONT></CODE><CODE><FONT
color=#0000ff> wait until default route (no deletion) is taken
*/</FONT><BR>var Timeout = 5;</CODE></P></BLOCKQUOTE>
<P>These four variables control the bahaviour of the script. The
<B>Threshold</B> variable defines how many non-trading days are needed to
consider given ticker as obsolete and to warn the user about it.
<B>DeleteByDefault</B> variable decides if detected stocks should be deleted by
default - when user does not response within given timeout. As you can see I
assigned <I>false</I> to this variable so tickers are NOT deleted by default
(they are deleted only if user confirms deletion). <B>AskUser</B> decides if
script displays prompts asking user what to do with given stock, if you assign a
<I>false</I> to this variable the script will quietly scan the whole database
taking a default route (not deleting just saving the list). Otherwise it asks
the user what to do with each ticker. The last parameter <B>Timeout</B> decides
how many seconds the script should wait for user interaction. If a timeout is
reached (by default 5 seconds) without a click scripts goes further taking
default route (not deleting). One nice feature of this script is that that even
if you say "Yes" to delete given stock the script just adds the ticker to
"StockToDelete" list and you can later decide not to proceed with the deletion.
Another nice feature is that all stocks that were not deleted but were detected
as obsolete can be written to "nottraded.txt" file. Just answer "Yes" when the
script asks for this.</P>
<P>A complete <I>Cleanup.js</I> script can be found <A
href="Cleanup.js">here</A>. You could safely save this file onto your hard disk,
launch AmiBroker and double click on the script file (in Windows Explorer).The
script will run detecting your old stocks, and it will not delete anything
unless you confirm deletion manually. Advanced users can play with described
parameters to make this script better suited for your personal purposes. </P>
<P><I>.... and that's all for this week - hope you enjoyed reading</I> </P>
<HR>
<P><FONT size=-2>AmiBroker Tips weekly newsletter. Issue 5/2000.
Copyright (C)2000 Tomasz Janeczko. All back issues available
from: <A
href="http://www.amibroker.com/newsletter/">http://www.amibroker.com/newsletter/</A></FONT></P>
<P> </P></DIV></BODY></HTML>
------=_NextPart_002_0010_01C05CA6.719831A0--
------=_NextPart_001_000F_01C05CA6.719831A0
Content-Type: image/gif;
name="logo.gif"
Content-Transfer-Encoding: base64
Content-ID: <000d01c05c9e$0fc300c0$bb1aa0d4@xxxx>
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
------=_NextPart_001_000F_01C05CA6.719831A0--
Attachment:
Attachment:
Description: "Description: Binary data"
|