June 2002
Profile:Larry Pesavento by Howard Arrington
In May my brother John and
I visited Larry Pesavento in Tucson, Az. We were able to talk with Larry about
his research in the areas of astro-cycles and about his books. Perhaps we learned
the most just by watching a master trader make several successful trades during
our two-day visit.
Larry Pesavento is the author of 7 books, a frequent contributor to the
Market Mavens web site ( www.marketmavens.com
), and has privately trained more than 300 students. Larry has been a broker
for Drexal-Burnham-Lambert, is a former member of the C.M.E., and is currently a
private trader for a large hedge fund.
Larry said the ‘Holy Grail’ does not exist, but the closest thing to it
can be found in astronomical phenomena. The key planets to pay attention to are
Mercury, Venus, Mars, and Jupiter. He pays attention to aspectations of
the planets and eclipses using an ephemeris.
The fascinating part of our visit was watching Larry day trade Nasdaq stocks,
euro-currency, bonds, soybeans, and the S&P. His approach was very effective
and really quite simple. He used 2 tools exclusively. Larry said he has no interest in any
of the standard studies such as moving averages, oscillators, Stochastic, or
relative strength and does not use any studies. I believe the reason
for not using studies is that they lag behind the market action.
The tool he uses for picking price objectives is the Fibonacci Levels tool.
His afternoon homework to prepare for the next trading day is to mark hourly and
daily bar
charts with Fibonacci price levels, looking for key prices, and favorite
patterns such as Gartley and butterfly patterns. Multiple Fibonacci tools might
be applied to a chart, and the keys prices are those where there is congestion of
multiple levels at the same price. The Fibonacci Levels used are 0.618, 0.786,
1.00, 1.272, and 1.618. These 5 numbers are the 5 sacred numbers used by Larry.
The really fascinating 2nd tool used by Larry is a proprietary
analysis tool that tells him WHEN to place a trade. This tools focuses on TIME.
Larry said that Time is the most important aspect of a chart. Too many traders
focus on Price, instead of Time, and that is why they are not as successful as
they might be. Larry had great confidence in his Time forecasts. It clearly told
him when to go long and when to go short. Thus, he was not glued to the
computer screen. In fact, he was very relaxed when he traded and not obsessed
with watching the computer charts. We observed that Larry would know that the
trade would be on until the Time for the next turn, and until that time arrived,
he basically had nothing to do but wait. And indeed he would wait.
Thus, Larry is armed with 2 effective tools: one for Price and one for Time.
When the market is trading at the juncture of these two tools, he would place a
trade, which is a counter trade with the expectation that the market will
reverse direction. Larry trades at a price that is one of the Fibonacci Levels
of a prior major move. He always placed a reasonable stop at the time he made
the
trade. Then he would basically count on the probabilities to be in his favor,
that the market would reverse direction and his trade would work out. If the
trade did not work out, his loss would be small and manageable because of the
stop loss. The trading he did the first day of our visit had 5 winners and 2
losers, for a gain for the day of over ten thousand dollars. Larry said a
typical good day for his day trading would be up $20,000, and a really bad day
would be to lose $50,000. Of course his expectation is to have good days 3
times a week.
This is the method I observed that Larry used for his day trading. He would
watch for correlation in his Time forecast with market turns. Call it
harmony. If the chart was
showing good correlation, meaning actual turns are happening within 15 minutes
of the forecast time for the turn and had the right direction going into the
turn, then Larry would have confidence in the Time forecast and trade the chart.
If the correlation was ‘off’, the chart would be ignored. So, the market has
to be in sync or harmony with his Time forecasts on his 2-minute bar charts.
Then, when the market was at the TIME for a trend change, Larry would use the
Fibonacci Levels tool with the 5 sacred numbers to see which level should be
used for the price for his trade. We observed for one S&P trade he made, the
market was descending, but slightly above the 1.27 level. It was time for the
market to change, so he called his broker (he abhors electronic trading), placed
an order to buy S&P at the 1.27 level price, and placed a stop a few points lower.
A few minutes later the S&P traded beyond his entry price by a few ticks,
reversed, and then traded upward right on schedule exactly as expected.
I was
very impressed to watch the master at work to correctly call both the time of the
turn, and the price for the turn. Then he basically turned his back to his
computers and visited with us, quite relaxed about his trade. The Time for the
next turn was 35 minutes away, and thus this trade did not need further concern
until 35 minutes had passed. Possibly he would raise his stop to break even.
He
demonstrated the greatest of confidence in his trade, and in his tools for
picking the Time and the Price of the trade.

Larry uses the Ensign 6 program in 2002, an older DOS based program written by Ensign
Software and very popular 10 years ago. He also has the QCharts program,
but that seemed to be secondary or used as a back up data feed.
(Note: Larry has since switched to the Ensign Windows program.) His Ensign screens showed one or
two charts. On the screen he would overlay a list of symbols showing the current
price and net. He did not use any studies and did not look for divergence.
While day trading he only looked at 2-minute bar charts. His
charts had his proprietary Time tool, and the Fibonacci Levels tool (typically
just 1) that would be drawn when a price needed to be selected for the trade
about to be made. If the market was at the 0.618 level, that is the price that
would be used. He did not have any preconceived notion as to how much profit a
trade needed to have when it was removed. He traded based on knowing the Time
for the next turn, and took what ever Fibonacci Level price the market was
nearest
WHEN it was the time for a trend change. Sorry I keep harping on the issue of
Time, but it definitely was the KEY to the method Larry uses for day-trading.
Now, a Fibonacci Levels tool is readily available in most charting software
packages. However, the timing tool Larry uses is proprietary and not
available in any commercial software package. Believe me......it is
proprietary and his closely guarded secret. Rather than leave everyone
groping for a timing tool, permit me to suggest consideration of the following
timing tools as possible substitutes.
1) Use the Fibonacci Ruler where the measurement is from trend low to
trend low, and the extension percentages beyond the right side low are the
sacred numbers of 0.618, 0.786, 1.00, 1.272, and 1.618. This idea is
discussed in the January 2000 Trading Tips
newsletter.
2) Use the End-of-Square in the Pyrapoint tool in Ensign
Windows. This is a powerful tool that suggests price levels and
measures time. Many of the market turns occur at
End-of-Square. The biggest disadvantage of using Pyrapoint is you will
have excess End-of-Square boundaries. More can be read about
Pyrapoint in the January 2001 Trading Tips
newsletter.
3) Use Gann Fans placed on significant trend lows and highs and watch
the intersection of fan lines with each other and with the horizontals from the
trend lows and trend highs. This timing technique was discussed in the July
2000 Trading Tips newsletter.
4) Use cycles to find repetitive patterns. Read more about cycles
in these Trading Tips newsletters:
February 2000 'Cycle Calendar'
December 2000 'Cycles Tool'
February 2001 'Moon Phases'

This chart illustrates the process of using the Fibonacci Levels tool in conjunction
with a timing tool (cycles in the example). The cycles tool
shows a pattern of an opening low and a mid-day low. The
conjunction of the timing tool with the Fibonacci levels tools would give a
Buy at the 127% price of 9.45 at 12 o'clock on May 30th. This is not
one of Larry's trades because Larry does not follow any stock under $20 and
does not use the cycles tool for his timing. The example was hand
picked with the benefit of hindsight to illustrate the principles being
taught.
Now, is Larry's timing based on any of the above? The answer is no, it
is not. His timing tool is mathematical and examines past data for
repetitive behavior. Sorry the suggestions listed above will not be as
effective as Larry's timing tool. I wish I had his tool. I would use it if I had
it because I think his tool gives him a competitive advantage and puts the
probability of a winning trade in his favor. It truly was a pleasure to
watch a master trader at work: comfortable, confident, and very
successful.
Larry has a web site, managed by one of his students. The web site address is
www.tradingtutor.com. To learn more
about Larry Pesavento, please visit his web site and check out the services that
are available there.
Sacred Numbers
Where do the sacred numbers come from? All are related to
the Fibonacci number sequence as follows.
-
0.618 is the Fibonacci sequence ratio. Example 55 / 89 =
0.618
-
0.786 is the square root of 0.618.
-
1.00 is 100 percent of the measured distance.
-
1.272 is the square root of 1.618.
-
1.618 is the inverse of 0.618.
Analysis: Vista Charts and Historical Analysis by Dom Concilio
Part II
The First Trading Day of November, on a Monday is POSITIVE 75% of the
time. And, what's interesting about these is, that 5 of the 8 times this
occurred, the HIGH of the DAY was after 3:00 pm. Here's a couple to whet
your appetite.



Tip: So as you can see from just these small pieces of
research, HISTORICAL ANALYSIS, can be very interesting.
There are so many things you can do.
December Expiration Weeks have closed POSITIVE 70% of the time.
So do October.
I've recently been doing some studies on the DOW. It's really
weird. I decided to take a look at some market crashes, so I could run
some sort of comparison to the 9/11 crash. I found that the chart was
ghostly similar to 1929.
Let's take a look. Here is the current Dow chart.

The September 2001 Crash/Bottom is "in place". OK. Now let's
look at 1929.

Some similarities. Enough to pay attention. Enough to make
someone want to see what's next. Here is what followed.

Yes. One of the biggest BEAR markets in history!
Hmmm. How about we take a look at Pearl Harbor, a similar tragic event in
U.S. History. If history serves me correct, that was December, 1941.
Let's take a look.

So, the Attack on Pearl Harbor was in December, and the Dow
"bottomed" a few months later. Ok. I guess we would want to see
what happens next. That sounds like a good idea.

WOW. Looks like one of the biggest BULL markets in history.
Which do we have, if any, I do not know. But I do know that I have
these charts printed out, along with some other ones, and I'll be paying very
close attention to them!
Customer Feedback:
"Dom's program is fantastic. I am able to call up
charts from any date in history and analyze them for patterns that help me in my
trading. There are several time frames available, to accommodate for
different trading styles. The settings are also customizable, and Dom is
always happy to answer questions via telephone or email. For serious
traders, Vista Charts is indispensable." -db
"Vista Charts has helped me get my chart history
together. It is easy to use and extremely flexible. It creates
clear, concise, easy to read charts. Once I set the parameters, I could
print off the charts faster than my printer could go (I have an HP4050N).
For example to print 5 minute charts, I set the scroll function to 81 bars, so I
could go to the day before/after with one keystroke. I could adjust each
chart on the fly as they were printing, changing the scaling as well as the
horizontal positioning of the bars. This program made easy work of getting
my chart history together." -jg
Dom's web site: www.vistacharts.com
ESPL:ESPL – for the Power Programmer
by Paul Levin
Part III
In the prior two parts of this series, I covered some basic concepts about
ESPL, then discussed many of the programming features present in ESPL. This
segment will examine memory storage issues, and then I have a long wish list of
features I’d like to see added to ESPL.
Memory Modes
Information in any computer program needs to be stored in memory, so what’s
the big deal? There are two issues:
- to what instances is the data available;
- at point in time does the data cease to exist (referred to as
persistence); and
- to what part of the program is the data available (referred to as
scope).
Before addressing these issues, we need to remember how Ensign Windows uses
our ESPL code. Referring back to the first article in this series, our ESPL code
is invoked from Ensign Windows on each occurrence of the related event. That is,
an ESPL study is called for each new price tick (or at the close of each price
bar, if so configured). For timer related ESPL, the code is called each time the
configured time expires. For keyboard related code, it is called when the
related keystroke is hit. Also remember that for studies, color bar studies and
drawing tools, there is a separate instance of the ESPL program, for each study
that is applied to a chart.
Instance Global, Persistent, Method Global
Since there may be many instances of our ESPL study, active at a given time,
there might be data that we want to exist and be available to all instances of
the study, and across invocations. That is, if we set a value in one invocation
of one instance of the study, and we want that value to be available to another
instance (obviously in another invocation), then we can use ESPL global data.
This data is declared in the var block of the outer most var-begin-end
block of code.
Instance Private, Persistent, Method Global
This next memory mode is the most important one, to me. I frequently use data
that I want available only to the current instance of the study, and I want it
to exist across invocations. The idea here is that each instance of a study will
have it’s own set of data. The data in one instance is not to be shared with
other instances. However on each invocation of an instance (i.e. each tick or
closed bar), I need the values that were set on the prior invocation to be in
tact, just as I left them, at the end of the prior invocation.
If you are just learning the ESPL language, you might think that ESPL does
not provide for such an important memory mode. Then you take a closer look at
the documentation for the SetUser() method. Here you see that Ensign provides
six arrays of data, for every instance of a study. Note that the elements in
these arrays are of type real, so they can only hold numbers. Boolean,
String and other data types can not be stored in these arrays. I should
point out that I am discussing details about the new version Ensign (aka Super
Ensign). The older version has similar characteristics with some differences.
Of the six arrays, the first four are available to display lines (and/or
markers) on the chart. These arrays are dimensioned from 1, to the configured
maximum number of bars for the chart. The fifth array is dimensioned the same.
The sixth array is dimensioned from 1 to 50.
Since only the first four arrays are used to display lines on the chart, what
are the fifth & sixth arrays used for? You guessed it, they are available
for Private Persistent data. Any value stored in these arrays will be
private to the study instance that owns the array. In addition, those values
will be saved and remain available on each invocation of that instance.
To be complete about it, Super Ensign allows for the storage of 3 Private
Persistent String data elements, with the SetUser()
built-in function. This is a very welcome addition to Super Ensign.
Instance Private, Non-Persistent, Method Global
Next, consider the data that we want accessible to all methods (generic term
for procedures and functions). It does not need to exist across invocations, nor
do we want its content shared with other instances of the study. Since we don’t
care what happens to the data when we leave the current invocation, then this
type of data can be implemented with global data (outer most var
section) also. However, it is imperative that at the start of our code, for each
invocation, we initialize the data, since we have no idea what might be left
there from some prior invocation or from some other instance.
Instance Private, Non-Persistent, Method Local
The final memory mode supported by ESPL is local memory. This is memory that
is declared inside of a procedure or function. It is only accessible from inside
that method, and it ceases to exist when execution leaves the method. This type
of memory is frequently called automatic, since it automatically ceases to exist
upon leaving the method. These data items are declared in the var
section of each method that requires them. It is important to note that upon
entry to a method, these data items have an undefined content; and so it is
again imperative that your code initialize their content.
Other Memory Modes
I have used three characteristics to describe these memory modes: Instance
private or global, Persistent or not, and Method global or local. With three
characteristics, there should be 8 different possibilities; yet I have only
discussed four. What about the rest? Most of them make no sense; however there
is one that I should mention. Most programming languages allow for the dynamic
(at run time) allocation of data. This data would be private to the instance
that allocated it. The data is persistent, in that it survives across
invocations; and yet it’s access is local to the code that knows where to find
it. This last characteristic implies that we need another data item, that holds
the location of the dynamically allocated data. This location holder is called a
pointer. The pointer can be stored using any of the data modes
already discussed. Problems arise when the pointer ceases to exist and we have
not de-allocated the dynamically allocated memory. I should mention that there
are ways to deal with that problem, such as is done in the Java programming
language, where no explicit de-allocation is required. ESPL does not support
this memory mode.
(Editor's Comment: Any number of real arrays can be created by
declaring variables of type TArray. Any number of string arrays can
be created by using the powerful TStringList data type. ESPL manages
one global TStringList variable called sList that is global and freed by Ensign
upon program termination.)
My Wish List
If we were talking about some other product, writing and distributing a wish
list would most likely be a waste of time. But we are talking about Ensign
Windows and Howard Arrington. Ensign (especially Super Ensign) is so full of
wonderful features, but the number one thing, in my mind, that puts it way ahead
of the rest, is the fantastic support provided by Howard, Kimball Hansen,
Sheldon Lamont and
Mike Lamont. As for new features, and wish lists, we need to realize that Howard
and team, only have two hands, and 24 hours each day. Yet, when there is a
problem, or a significant number of requests for a feature, then amazingly it’s
in the next release, which you can download the next or following day.
Operating Environment
Multiple Code Files – As was discussed in the first article in this
series, Ensign works with at most one ESPL code file, at a time. Thus if you
have three ESPL studies that you like to use, you need to put them all into one
ESPL file (or at least, reference other code files with the Include
statement, from one master file). If you have your three studies, and you are
not constantly added and changing them, then this system would work for you.
On
the other hand, if you play around with 10 or 20 studies, color bar studies,
drawing tools, and timer or keyboard related code, then this mode of doing
things becomes very cumbersome. I would like to see Ensign use multiple code
files. I would like to put one study into its own file. Then tell Ensign to
apply that file to the current chart. I could add as many ESPL studies to the
chart as I wish, each in their own file. The same ESPL study/file could be added
to multiple charts as well. To maintain the ability to have related studies
together in one file, I would keep the concept of the ESPL (aka Who) value.
This
value would be unique within each ESPL file, but does not need to be unique
across ESPL files.
More Advanced User Study Parameters – The primary method of passing
configuration information to a running ESPL study, from Ensign, is through the
three parameter fields in the properties window for the ESPL study. This is
somewhat limiting in that:
- there are only three parameters,
- the parameters must be numeric, and
- the names of the parameters can not be set by the ESPL code.
(Editor's Comment: The Grid Line control could be used to pass 19 Boolean
check box states. The draw line color boxes can be used to pass color
parameters.)
I would like to see a mechanism where the ESPL code could tell Ensign the
quantity, identity (names) and type of the parameters to be shown in the study’s
properties window. This could be done either through a special section in the
source code file, that is read by Ensign (statically, not at run time); or it
could be done through methods that the ESPL calls at run time.
A True Debugger – When testing and debugging ESPL, the only debug tool
available is the writeln() method. This method writes values to the output
window of the ESPL editor. I would like to see a full featured debugger, with:
- break points,
- source level statement stepping,
- execution continuation,
- variable viewing (click on a variable name to see its value, or a watch
window), and
- variable setting (ability to change the value of a variable, during
execution).
(Editor's Comment: A variable watch window is available, but it is of
limited use because of the lack of break point capability.)
In all honesty, I have no idea if any of this is even possible, with the way
Ensign is written; but remember, this is a wish list.
Standard Programming Language Features
Return Statement – as I mentioned in the prior article in this series,
the lack of this statement leads to an excessive use of either if-then-else
statements, or goto statements. In conjunction, I would like to
see the built-in variable Result replaced with the use of a
parameter to a return statement.
Break and Continue Statements – these statements provide the ability to
leave a looping statement (such as while, until or for),
or to go to the top of the loop without completing the current pass through the
loop’s body. These statements are common in many conventional programming
languages. I classify them as convenience statements.
Forward Referencing – ESPL only allows backward referencing. This means
that any reference to a procedure or function must occur after that procedure or
function has been declared. As a result, when programming with a standard
top-down approach, the top level methods must be placed at the end of the file.
In addition, extreme care must be given to the order in which methods are
declared in the file. Most significantly, multiple method recursions (A calls B,
and B calls A) becomes impossible. I would like to see forward referencing
allowed, which would alleviate the three problems mentioned here.
Structures – I would like to see the ability to declare complex data
types, such as structures. A structures is a grouping of other data types (such
as some integers, some reals, some Booleans, etc.) into one group, so that the
group can be referenced as a whole.
Arrays of Data Types – Ensign currently does provide for arrays of reals.
However these arrays are created with special built-in methods, rather than with
data declaration. The use of methods is nice, since it allows the dimensioning
of the array to be determined at run time. So I would like to see the current
method retained. In addition, I would like to see the ability to declare arrays
of any data type, including arrays of structures and arrays of arrays.
Classes and User Defined Objects – Many conventional programming
languages today use a style of programming called "object oriented".
Examples of such languages are C++ and Java. A class is similar to a
structure, in that, it is a grouping of simpler elements; however a class also
allows the defining of methods within the context of the class. Objects
are instances of a class. Typically, objects are instantiated (allocated)
at run time, and the methods know which object to operate on, by referencing the
object and method together.
Pointers and References – a pointer is a data variable that
provides a reference (i.e. an address) to some other variable. Pointers
are essential when using dynamic memory allocation (discussed above, under
Memory Modes). Pointers can also be used to reference statically declared
data.
Preprocessor Macros – preprocessor macros allow the ESPL software
developer to declare names for constant values that will be used in the code.
An
example might be
#define MacdValue 1
This declares the name MacdValue to be replace by the constant
integer 1 whenever that name appears in the code. This happens
before the code is compiled. The name is not a variable, and thus takes up no
space in the running program. There is also no execution time spent, to obtain
the value 1, since it was simply a constant, at the time the code
was compiled. The benefit of preprocessor macros is that the code is easier to
read and debug, since constant values can be replaced with meaningful names.
Charting Package Programming Language Features
Ability to download extensive historical data – when back-testing a
programmed trading system, the more data it is tested with, the more reliable
the system. Related to this, is the feature to be able to build charts of any
timeframe, from downloaded data. Currently Ensign needs to download back data
for each timeframe chart used.
(Editor's Comment: The File | File Manager | Merge tool can be used to
build any time frame that is a multiple of a lower time frame data set that is
present. Up to 60 days of intra-day data and 10 years of daily data can be
downloaded from the eSignal servers, or by using the Internet Services download
tool. Ensign data files can store up to 65,535 bars.)
More Built-in Reporting and Support for Back-Testing of Systems – The
current reporting mechanism for back-testing is the Trading Details report.
This
report is wonderful. It reports trades taken by the ESPL program, number of
winners & losers, each trade’s profit/loss, a running balance, and more.
Other analysis would be useful. Such as daily and weekly trade results, maximum
run up and maximum draw down. Trade results for different times of the day would
also be of interest.
Built-in Support for Optimization – Optimization is the process of fine
tuning a trading system, to produce the best results. This could be done by
having Ensign vary the values of parameters to an ESPL trading system, over
defined ranges, and by a defined step sizes. For each value, the trading system
would be run, and the trading results captured. A specific value in the trading
results would be specified to be the one compared for best results.
When
the system had been run for each of the parameter settings, an optimization
report would show the trading results for each setting, and those settings that
produced the best results.
In Conclusion
I am aware that the above wish list is not only lengthy, but it would seem
that I am asking for the world on a silver platter. I know. But isn’t that
what a wish list is for? Do not get me wrong, as I mentioned at the start of
this series of articles, ESPL is the best charting system programming
language I have seen. Yet even the best, can be better.
I hope that through these articles I have provided some insight into why I
feel ESPL is so wonderful. I also hope that I have provided a hint or two, of
things you might want to do with ESPL. I thank you for reading, and I thank
Howard for giving me this opportunity to express my views.
Happy coding.
(Editor's Comment: Mr. Levin is a capable programmer and available for
hire to work on your ESPL programming projects. Contact him by e-mail at
plevin1@tampabay.rr.com)
|