October 2000
Feature Tip:Study Alerts
on Averages
by Howard Arrington
A trader's arsenal of tools should include the ability to set alerts on
studies. This article illustrates how study alerts can be set in
Ensign Windows using the Alert object which is found on the Draw Tool
panel.
Display any chart and add any study. Then click on the Alert button on the
Draw Tool panel to add an alert to the chart and display the parameter form for
the alert. The alarm clock button is the Alert object. Click
it to set an alert on a study.
The Alert object is incredibly flexible because of the wide variety of things
that can be tested. Basically an alert compares two pieces of information
and returns a Boolean True or False result. The Alert occurs when the
comparison is True.


A simple and oft used alert would be when two moving averages
cross, as shown in the chart image above the Alert parameter form. The 'A'
panel on the left will obtain information about the 1st moving
average. The 'B' panel on the right will obtain information
about the 2nd moving average. In this example, since we want to alert on the crossing of two
moving averages, we need to compare Study Values. The other choices in the 1st drop down box
are shown below.

The 2nd drop down box in the 'A' panel selects which study is
used. Since a chart might have several studies, the desired study is
selected from the studies listed in the 2nd drop down box. The
studies on a chart at the time the alert object is added will be shown in the
list. Therefore, add a study to a chart before adding the alert
object. In our example, the Ave 2,11 study is selected. Ave 2,11 is an
abbreviation for Average and the two line parameters are 2 and 11 period averages.
The contents of the 3rd drop down box will change according to which study is
selected in the 2nd drop down box. The choices for a Simple Moving
Average study are shown below.

The choices are fairly self explanatory. One can select to
work with the value of the 1st study line, the 2nd study line, or the spread
between these two study lines. A Simple Moving Average study places
two average lines on a chart each controlled by a parameter for the period used
in the average.
The choice 'Hi/Lo X 1st Line' will return a Boolean True when
the High of the bar crosses above or below the study line, or when the Low of
the bar crosses above or below the study line. 'X' is an
abbreviation for crossing, and checks a bar and its neighbor to the left.
For the High of a bar to cross the study, the High of the bar would have to be
on one side of the study line, and the previous bar's High would have to be on
the other side of the study line. Thus the crossing occurs only when
the two bar Highs are on opposite sides of the study line.
The '1st Line X 2nd Line' would return a Boolean True when the
two moving average lines cross going in either direction. This choice
could have been used as another way our alert might have been
implemented. 'Last X 1st Line" returns Boolean True when the
close of the bar crosses above or below the 1st average line. '1st
Line % of Scale' returns a percentage between 0 and 100 of where the first
average is on the price scale.
The Bar Offset box is typically zero, but could be changed to a
negative number to reference a prior bar's prices or study value. An
offset of -1 would reference values from a bar offset one bar to the left.
In summary, our 'A' value will be a Study Value from the
Ave 2,11 study, specifically the 1st Line's Value at the bar being examined.
The 'B' value is similar, except the value will be from the 2nd Line's
Value. Now that the two study lines have been selected, how they are to be
compared is determined by the Conditions check boxes where one or more
conditions may apply. In this example, we want to be alerted when
the 1st Average Line crosses either above or below the 2nd Average Line. Thus
both the 'A cross above B' and 'A cross below B' condition boxes are checked.
The Marker Position is used to visually show where
the Alert object returned a Boolean True. A marker can be
placed in 24 different locations.

Uncheck the Show checkbox to not show any marker. The
first six
choices place a marker near or on the bar with the alert. The next
eight choices place bullets along four rows at either the top of the chart or at
the bottom of the chart. Our example shows a purple square placed below
the low of the bars where the averages crossed. This is the
bar that had the study alert, and it is nice to visually see where the alert
occurred. Tip: Use markers to visually verify that your Alert object is
finding the study conditions you are trying to identify using the various
choices in the drop down boxes and Conditions panel.
An alert object can optionally color the bars where the
condition occurs instead of placing a marker. To color the bar, select the
chart bars selection in the marker drop down list.

For the sake of illustration, let's modify the example by
unchecking the 'A cross below B' condition, and checking the 'A below B'
condition. Now, the bars where this relationship is True are
indicated by a sequence of markers as shown in this image.

The condition of 'A below B' is a relationship, instead of an
event like a crossing of the two lines. The reason I point this out
is because users often want to combine studies and have a compound alert phrased
something like this: "Alert when the moving average crosses down and
the Stochastic crosses down." While these study crossings can
be identified individually, it is unlikely that both studies would cross on the
same bar. An alert tool testing for two simultaneous crossings would
rarely return True. Tip: Design one of the studies to be a
relationship (such as I just illustrated by marking all bars where the 1st
average is below the 2nd average), then have the other study condition be the
event of a crossing. This compound alert would be phrased more correctly
as: "Alert when the 1st average is below the 2nd average and the
Stochastic crosses down." Now the alert condition is likely to exist.
Alerts using two studies may require nesting multiple alert
objects. One alert object might indicate the moving average
relationship. A second alert object would catch the Stochastic crossing
and have a 'A AND B' condition with the result from the first Alert object.
If you want a message to appear when the alert occurs, check the
Show box in the Alert Message frame and type the text for the message in the
entry box. The two color boxes select the color that will be used
for the message font, and the color of the message panel. Tip: Double click on a color square to change the
color using a Color Dialog form.
The Auto Remove check box controls whether the alert message
remains showing (unchecked) or is automatically removed when the alert object
returns a Boolean False. Be careful in how this feature is used
because multiple alerts, both trying to remove the message panel, can interfere
with each other and possibly cause the chart to perpetual repaint itself.
Tip: If multiple alerts are on a chart, then it is best to have the Auto Remove
box unchecked on all of them.
When alerts trigger, an optional beep can be sounded or a wav
file can be played. You can record your own wav files with spoken
messages like "Averages crossed down." A different wav
file could be used for each alert object, or you can play a standard wav file
like C:\Windows\Chord.wav.
Select the 'Copy to Clipboard' choice to have the Alert Message
text copied to the clipboard. Use Speakonia
to announce your message.
Alert objects can also be triggers to buy and sell in a trading
system, but that will have to be the subject of a future article.
Enjoy the extreme power and great flexibility Ensign Windows provides for
setting alerts on studies. The process of adding a study alert is
really quite simple because the drop down boxes show you the logical choices
that are at your disposal.
Feature Tip:
Zig Zag Tool
by Howard Arrington
Ensign Windows can draw a Zig Zag tool which shows the percent retracement a
subsequent wave is in comparison to a previous wave. Here is an
implementation I did of the Zig Zag tool using ESPL.
Cut and paste this script, and then save it under a unique file name such
as FibLevel.
procedure FibLevel;
var
n,x,y: integer;
x1,x2,x3,y1,y2,y3: integer;
p1,p2,p3: real;
s: string;
begin
x1:=XtoIndex(Pt1X); x2:=XtoIndex(Pt2X); x3:=XtoIndex(Pt3X);
p1:=YtoPrice(Pt1Y);
if abs(High(x1)-p1)<abs(Low(x1)-p1) then p1:=High(x1) else
p1:=Low(x1);
y1:=PriceToY(p1); x1:=IndexToX(x1); p2:=YtoPrice(Pt2Y);
if abs(High(x2)-p2)<abs(Low(x2)-p2) then p2:=High(x2) else
p2:=Low(x2);
y2:=PriceToY(p2); x2:=IndexToX(x2); p3:=YtoPrice(Pt3Y);
if abs(High(x3)-p3)<abs(Low(x3)-p3) then p3:=High(x3) else
p3:=Low(x3);
y3:=PriceToY(p3); x3:=IndexToX(x3);
setPen(clBlue,1);
if who=13 then MovetoLineto(x1,y1,x2,y2);
if who>11 then MovetoLineto(x2,y2,x3,y3);
MovetoLineto(x1,y1,x3,y3);
x:=(x3+x1) div 2-8; y:=(y3+y1) div 2-6;
n:=round(100*(p3-p2) / (p1-p2));
TextOut(x,y,inttostr(n));
end;
begin
if Who=11 then FibLevel;
if Who=12 then FibLevel;
if Who=13 then FibLevel;
end;
This is how the tool works. We will use the first three number buttons
on the Draw Tools panel. The zig zag tool shows three sides of a triangle,
where two sides overlay two adjacent trends and the 3rd side is like a bridge
spanning the gap and has a label showing the percent retracement the 2nd trend
is in comparison to the 1st trend.
The reason we use three number buttons is to select whether you need to show
one, two or three of the triangle sides. Fewer than three lines would need
to be shown when a subsequent triangle is drawn connecting to an existing
triangle. You still need to identify the three points of the two waves,
but you may not need to remark these waves with lines when they are already
shown.
To put the tool on the chart, click the #3 button on the Draw Tools panel for
3 lines to be drawn. Move the cursor to the start of the 1st wave (point
A), click and hold down the mouse button and move to the end of the 1st wave
(point B). Release the button and move to the end of the 2nd wave (point
C) and click. The three lines for the triangle are drawn and the
percentage relationship of the 2nd wave (B-C) to the 1st wave (A-C) is shown as
a number on the 3rd side (A-C) of the triangle. To draw a triangle that
shares the wave 2 (B-C) line already drawn, click button #2 to draw 2 lines and
repeat the construction process beginning at the start of wave 2 (point B),
retrace to point C, release, and click on the 3rd wave's end (point D).
Two zig zag triangles are shown in this example. The first A-B-C
triangle shows wave B-C is a 157 percent larger than wave A-B. The 2nd
B-C-D triangle shows wave C-D is 135 percent larger than wave B-C.
|