A-B-C
Wave Forecast
by Howard Arrington
Ensign Windows has a wide variety of draw tools and
technical studies. This issue highlights the ABC wave
forecast tool. To draw the Elliott Wave ABC lines on a
chart, click the Draw Tools button on the main button bar,
and then click on the Formations button. The cursor will
change to a pencil while in the draw mode. Use ABCs to mark
price and time movements from important highs, lows, and
corrections. They can also be used to indicate the possible
turning point of the current trend or correction.
Three points are necessary to draw ABCs on a chart. To
draw the ABC tool on a chart select the 1st point from an
intermediate high or low by moving the cursor to the point,
then hold down the left mouse button and drag to the 2nd
point (end of wave A). The 2nd point should be the high or
low of the subsequent correction. Release the mouse and
then move to the 3rd point (end of wave B). The 3rd point
is generally the point where the correction ended. Click
the left mouse button to mark the 3rd point. You have
manually traced the A and B waves, and the tool forecasts
the C wave. The principle is that wave C will have the same
magnitude, duration, and slope as wave A.
The following illustration was cut from the middle of a
customer's chart which was sent to Ensign Software as an
e-mail attachment.
It is always refreshing to see customers putting to good
use the tools and features built into Ensign Windows. Let's
talk about some of the tools and studies I see the customer
is using in his analysis. The A and B waves of the yellow
ABC tool helped correctly forecast wave C. The A and B
waves of the following white ABC tool have helped forecast
the slope and extent of its wave C, which this customer
traded short and nailed a great exit price. I believe the
customer actually sold the market short at the levels
indicated, and covered his short trades at the levels marked
by 'Out'. So, he uses the ABC wave forecast tool in his
analysis and marked his trades using the Arrow tool.
The chart shows a study, possibly some kind of averages
of the bar highs, bar lows, and bar closes. I do not know
which study is on this chart, its parameters, or its
interpretation. The customer also uses three more studies
drawn in two study sub-panels below the chart (not shown).
The vertical lines of blue dots are from a cycle tool. The
bars are drawn using candlesticks, and painted with the
Trends or Small Trends color bar study. Well, you might
ask, 'Why don't I know more details about what this customer
is doing?' I didn't ask, and he didn't volunteer any
details. Besides, all I am trying to show with this
illustration is the use of the ABC tool in real-time
trading, which has been done skillfully. I consider an
actual undoctored example worth a lot more than my putting
an ABC tool on a chart with the benefit of hindsight. This
illustration of the ABC tool on an actual chart is an
excellent example for this article. I hope you have picked
up an idea or two to use in your trading.
Article:
Tick On Balance Volume
by Howard Arrington & Kimball Hansen
Customers recently requested the ability to accumulate up
and down tick volumes. A new statement was added to ESPL to
support tapping into the data feed so that this could be
accomplished for a few symbols using ESPL. The new
statement is an AlertEvent that fires a call to ESPL each
time a trade tick is received for a symbol on the alert
watch list. The following ESPL script illustrates the
AlertEvent statement and how volumes can be accumulated and
plotted.
// BidAsk.spt -- On
Balance Volume (OBV) for Bid and Ask trades
//
// Click Menu 8 to start the program.
// Click Menu 9 to stop the program.
//
// This program updates a User Defined Symbol for a stock's
BidAsk tick volume.
// Tick volume for Ask Price trades is added to the running
total (buy volume).
// Tick volume for Bid Price trades is subtracted from the
total (sell volume).
// A custom symbol named symbol+'OBV' in the Cash market
group has the results.
//
// AlertEvent(eTrade) calls ESPL for each alert
symbol trade.
procedure Start;
begin
Output(eClear); writeln('Process Started');
Alert('IBM',FindMarket('IBM'),0,0);
{Create Alert for IBM}
Alert('@ES0Z',FindMarket('@ES0Z'),0,0);
{Create Alert for @ES0Z}
{repeat the above statement to add others}
AlertEvent(eTrade,99); {Setup
AlertEvent}
end;
procedure Stop;
begin
writeln('Process Stopped'); AlertEvent(eClear); {Stop the
AlertEvents}
Alert('IBM', FindMarket('IBM'),0,eNone); {Remove
the IBM Alert entry}
Alert('@ES0Z', FindMarket('@ES0Z'),0,eNone); {Remove the
@ES0Z Alert entry}
{repeat the above statement to remove others}
end;
procedure ProcessTrade;
var
Market,IncVol,Vol: integer;
MidPrice: real;
begin
if Find(eCash,IT+'OBV') then
Vol :=
GetData(eLast,True) {Retrieve Cumulative
Volume}
else
Vol := 0;
Market:=FindMarket(IT);
MidPrice:= (GetData(eAsk,True)+GetData(eBid,True))/2;
if GetData(eLast,True) >= MidPrice then {Add the Ask
Tick Volume}
if Market=eFuture then IncVol:=GetData(eAskSize)
else IncVol:=GetData(eTickVolume)
else {Subtract the
Bid Tick Volume}
if Market=eFuture then IncVol:=-GetData(eBidSize)
else IncVol:=-GetData(eTickVolume);
Update(IT+'OBV',Vol+IncVol,1,0,eCash); {Update the
Custom Quote Price}
end;
{****MAIN PROGRAM****}
begin
if who=8 then Start;
if who=9 then Stop;
if who=99 then ProcessTrade;
end;
Click the #8 menu to Start the monitoring of tick volumes
for the symbols set up in the Start procedure.
Click the #9 menu to Stop the processing of ticks.
Statements like this add a symbol to the Alert form, but
do not set any price alerts, although such could be done.
Alert('IBM',FindMarket('IBM'),0,0); {Create generic
Alert for IBM}
Each symbol needs to be in the Alert form because that
alert list is used by the AlertEvent function to fire a call
to ESPL when a tick is received for any symbol on the alert
list. The following statement sets up the trigger to call
ESPL with a value of 99 loaded into the global Who
variable.
AlertEvent(eTrade,99); {Start
AlertEvent}
Therefore, in the Main Program, Who is
tested for a value of 99 to route execution to the
ProcessTrade procedure. The symbol which fired the
AlertEvent call is passed in the global IT
variable. This variable is used to construct a custom
symbol used to total the On Balance Volume data. If the
symbol is a Future, the incremental volume will be either
the AskSize or the BidSize. For stocks the incremental
volume is the trade volume. Results from the script are
illustrated using the @ES0Z symbol on the DTN data feed in
this image.
This tick chart shows the On Balance Volume plotted as
the host chart in black, and the @ES0Z prices are overlaid
in blue. Naturally there will be perfect time sync between
these two tick charts because each @ES0Z tick created a
corresponding on balance volume tick. Also, it seems
logical that in a rising market more trades will be at the
ask price, and the on balance volume plot should ascend.
And, in a falling market more trades will be at the bid
price, and the on balance volume plot should descend.
Whether there is some advantage to be gained by having a
plot of the On Balance Volume for tick charts, as
illustrated above, is yet to be determined. I am unsure
what customers are looking for, but by providing these
additional tools, research can be done. If there is
something significant to be found, one or more of our
advanced users will discover it and hopefully share with all
of us. |