The following is the frontend documentation for the TS2000i version of the LOS+AndrewsPitchfork indicator designed to run on the Omega TradeStation 2000i product.
There are some "pictures" intermixed to try to illustrate some of of the parameter use.
I hope you find this useful in starting to use this method of looking at price series.
Clyde Lee
CLICK
THE Add to Cart Button TO ORDER the
LOS+AndrewsPitch_II @$ 125.00
![]()
{
*********************************************************************
Indicator : LOS+AndrewsPitchf_EB
Last Edit : 05/30/01 (revised ptrntype routine--fork plotting)
06/23/01 (fixed rt problem - fixed DGL problem )
(renamed for users who want to keep old )
(fixed date problem in file facility )
07/20/01 (Added "a" thru "f" start ML facility )
10/05/01 (Renamed LOS+AndrewsPitchf_II and added )
(ability to plot up to 45 forks of type )
(selected from "a" thru "p" )
03/01/02 (Added ability to set the length of the }
(length of the Andrews fork lines by }
{specifying the number of bars past the }
{next occurring pivot or last bar on the}
{chart, whichever occurs first. }
Provided By : clydelee@clydelee.com (c) 1998,1999,2000,2001
: This version shall not be distributed without
: The written consent of the author.
Ficilities : 1. Plot from 1 to 45 Andrews Pitchforks from points
determined by use of the Swing_Lee_II function
which offers several methods of determining
swing points (turning points) for use in the
calculation of the Andrews (median/tine) lines.
You can specify the type of forks to plot by
assigning a letter value(s) of from a thru p.
Examine the following set of swings which
might setup an Andrews fork situation.
0-a 2-i 4-[q]
\ / \ / \
b h j p \
\ / \ / \
c g k o [r]
\ / \ / \
d f l n \
\ / \ / \ /
1-e 3-[m] 5-[s]
We consider a 'normal' Andrews fork to consist
of a median line drawn from point 3-[m] through the
median point [r] and extending forward in time and
associated with a pair of parallel lines which
begin at points 4-[q] and 5-[s] and also extend
forward in time.
However, it is sometimes desirable to have the
beginning of the median line to be placed at
points a, b, c, d, ......, p . A parameter
entitled BeginMed (Begin of Median Line) allows
the entry of the letters (lower or upper case)
from a through h as beginning points. If any
letter (or multiple letters are entered) then
FORK(s) is/are drawn from the selected beginning
point(s) specified. Any entry not in the range
defined causes normal operation.
2. Within the areas covered by the Andrews forks
plot a series of lines commonly known as Gann
Dynamic Levels (Lines).
3. Make a projection of a channel of possible
future prices based on leg length in time an
price from data gathered from the loaded
symbol.
4. Enumerate (at each TP) the length in number
of bars of the LAST LEG of a swing.
5. Enumerate (at each TP) the Pattern ID number
which has a value as indicated below.
6. If desired, plot a series of Fibonacci lines
into the future to examine possible coincidences
of Fib lines and Andrews fork lines.
Note: Uses Swing_Lee_II function that may use either HighestHigh and
LowestLow for n days OR % of price OR multiple of 21 day StdDev
OR multiple of 21 day ATR to determine Turning Points for Swing
Analysis. The number of bars in each leg detected is posted at
last turning point of that leg.
The Andrews aspect of this indicator uses an input parameter
NumForks which (when set to a value between 1 and 3) will
causes the system to perform normally and also to add the last
1, 2, or 3 "pitchforks" which can be drawn with the swings
picked by LOS.
A "channeling" capability is available. To access this
feature, set ATRMult to value which fits risk desired relative
to current swing position. A negative value sets it based on
length of NumBars.
User may select to plot TRUE turning points (i.e. actual dates
when TP was determined). User may or may not have channels
generated. User may or may not have end extensions plotted.
I looked all over the net looking for a good description of
how to use the Andrew's Pitchfork but did not find it. The
following is a description of what the pitchfork is (as if we
did not know).
Andrew's Pitchfork Three parallel trendlines are drawn linking
a major low or high with a point either side of this marking
an intermediate high or low. The lines are extended to
generate support/ resistance levels. The lines look a bit like
the prongs of a pitchfork, hence the indicators name.
Trendlines have been applied to all markets in all time
frames. A rising market bounces up off its supporting
trendline and a falling market bounces down off its resisting
trendline. In the former case, the trendline provides a buying
point at each bounce. If this market is still trending higher
(i.e. - does not break its trendline) there is no signal given
as to when to sell to lock in profits. By drawing a parallel
line to the trendline a channel can be created which contains
all short term rallies and declines within the general trend.
The bottom trend line can be used to buy into the rally and
the top trend line can be used to take short term profits.
After selling, the trader would then wait for the market to
hit the bottom trend line to buy again.
The previous paragraph was taken from the following site which
contains much more information on the Pitchfork.
http://www.crbindex.com/techtip/tipv2n21.htm
= = = = = = = INFO ON DGL APPROACH = = = = = = = = = = = = =
From the site: http://members.aol.com/ganntrader/info.txt
you may obtain extensive information on the DGL concept
as advanced by Don Fisher.
Note: Not being familiar with Don Fisher's work, a friend who used
my LOS+AndrewsPitchfork routine suggested that the equivalent
of the DGL lines could be accomplished by just plotting a
series of lines which began at the A point of an Andrews
fork definition to points on the BC line of this setup
such that the BC line was divided into intervals of 1/8, 2/8,
3/8,..... or by commonly used fib numbers. This is what was
done and although it appears to me to represent EXACTLY the
lines which are shown in some presentations of DGL's I cannot
grantee you that the computation is the same as what Don
Fisher uses since the formula for computation does not appear
in his public web site so far as I can determine.
= = = = = = = END INFO ON DGL = = = = = = = = = = = = =
= = = = = = = INFO ON LOS & PtrnID APPROACH = = = = = = =
The indicator will indicate at each turning point two items
that are important in evaluating where the market is at the
current time.
1. Length of (last leg) Swing in bars.
2. Swing Pattern Identification (Pattern # of 0 thru 9).
(An option to omit the Length of Swing exists).
Based on a set of four sequential turning points in a price
series (or actually any kind of time series) I have chosen
to assign a Pattern ID number based on the relative price
relationships of these turning points.
The following is a "picture" and logic equations for the
assignment of Pattern IDs as I have chosen. The sequence
of assignments is not arbitrary but is an attempt to use
a set of numbers that indicate the "age" of the market.
A pattern ID of 9 indicates a maturing UP market whereas a
PatternID of 0 quite often appears near the turn of a
downgoing market.
..........C.... ......B.......... .......C...... ........B......
........./\.... ...../\.......... ....../\...... ......./\......
......../..\/.. ...\/..\......... .A.../..\..... ....../..\....D
......./...D... ....A...\........ /\../....\.... ...../....\../\
..A.../........ .........\....D.. ..\/......\... ..../......\/..
./\../......... ..........\../\.. ...B.......\.. .../........C..
...\/.......... ...........\/.... ............\/ .\/............
....B.......... ............C.... .............D .A.............
Pattern:..#4... Pattern:..#5..... Pattern:..#1.. Pattern:..#8...
A>B B<C C>A A<B B>C C<A A>B B<C C>A A<B B>C C>A
D<C D>A D>C D<A D<C D<B D>C D<B
...........C.... .....B.......... ...A........... .............D.
........../\.... ..../\.......... ../\........... ............/\.
.A......./..\... .../..\........D ....\....C..... .......B.../...
/\....../....\.. ../....\....../\ .....\../\..... ....../\../....
..\..../......\/ \/......\..../.. ......\/..\.... ...../..\/.....
...\../........D .A.......\../... .......B...\... ..../....C.....
....\/.......... ..........\/.... ............\/. ..\/...........
.....B.......... ...........C.... .............D. ...A...........
Pattern:..#3.... Pattern:..#6.... Pattern:..#0... Pattern:..#9...
A>B B<C C>A A<B B>C C<A A>B B<C C<A A<B B>C C>A
...A............. .............D.
../\............. ............/\.
....\........C... ...B......./...
.....\....../\... ../\....../....
......\..../..\/. \/..\..../.....
.......\../....D. .A...\../......
........\/....... ......\/.......
.........B....... .......C.......
Pattern:..#2..... Pattern:..#7...
A>B B<C C<A A<B B>C C<A
D<C D>B D>C D>B
= = = = = = = END INFO ON LOS & PtrnID = = = = = = = = =
*********************************************************************
}
Input: EndDate(1201231), {Ending date for computation--use to }
{study prior behavior of function }
EndTime(1500), {Ending time for End date }
{This has no effect for daily,wkly,..... }
ForcePvt(True), {Force a pivot point at last bar/date }
BeginMed("m"), {Leave set to "m" to operate as "normal" }
{Andrews routine. Enter a, b, ....,h }
{to plot forks from other than "normal" }
{Andrews median line begin point. }
CMode(3), {Computation Mode for Swing Detection }
{See NumBars for definition }
NumBars(21), {Determines what "strength" of a swing to }
{use for determining turning points. }
{ CMode=0--% Price }
{ CMode=1--Multiplier of 21 bar StdDev }
{ CMode=2--Multiplier of 21 bar ATR }
{ CMode=3--Number of bars L&R for the }
{ detection of Pivots/TPs }
{Note for CMODE=3: }
{A decimal fraction may be used to set the}
{number of bars for use for measurement on}
{the righthand side of the Pivot/TP. }
{If a decimal value is specified (34.13) }
{then the decimal fraction(.13 * 100 = 13)}
{is multiplied by 100 and then the value }
{that results is used to set the length }
{for right hand side search. }
TrueSymb(""), {Set to a value of null "" if no plot }
{of the exact points where TP was picked. }
{Use leftmost character to show points }
{and value after decimal to set color }
{NOTE: This is a 'character' value and }
{values MUST be put inside double quotes }
ATRMult(1.2203), {Sets channel width. If set to ANY }
{NEGATIVE value width determined by NumB..}
{Fractional part defines line width and }
{color for channel and center lines }
{Notice that maximum resolution is a }
{single DECIMAL DIGIT. }
{ }
{NOTE: }
{Entry in form: M.Mcws where w=line width}
{c=color of channel/center line. If c is }
{set to Zero (0)---NO channel/center lines}
{Black=1,Blue=2,Cyan=3,Green=4,Magenta=5 }
{Red=6,Yellow=7, White=8,DarkBlue=9, and }
{s=style of line. 1=solid, 2=dashed, and }
{3=dotted. }
ExtProj(True), {False=don't extend last channel lines }
NumFork(1.41), {Number of Pitchforks to generate 3=max }
{Line width and color are defined by the }
{value of the fractional portion of this }
{parameter. X.cw where c=line color and }
{w=line width. Specify one specific }
{pattern to display by entering the fork }
{number time 10. (e.g. set NumFork to }
{10.14 will cause ONLY the #1 or latest }
{fork to plot. }
FibBars (180.202),{Use to setup fib computation & label. }
{0.cws=NO fib calculation. yy.cws =set fib}
{line lengths to be yy past last bar. }
{ }
{First decimal digit sets Fib line color }
{and second decimal digit sets Fib line }
{width. c=color w=width . The 3rd }
{digit sets annotation location. 0=left, }
{1=right, and 2=center. }
{ }
{A negative value inhibits annotations. }
FibOnForc(true), {True = calculate fib lines on basis of }
{a forced turn if specified. Otherwise }
{use a non-forced turn for computations }
DGLIncr(1/8), {Lowest Multiplier value and increment to }
{next DGL point on median defining line }
NumDGL(-8), {Number of Dynamic Gann Line plots. }
{Set to zero for no DGL line plots }
{Set to 99.wc (w=width c=color) for max. }
{If a decimal fraction is provided then }
{the first digit of the fraction defines }
{the width of the DGL lines and the second}
{digit specifies the color. }
{If NEGATIVE then only the last set of DGL}
{lines is plotted, otherwise all sets are }
{plotted. Recommend to use negative. }
PlotLOS(true), {Set false to inhibit listing of length }
FileDirI(""); {Enter a full folder ID where a file that }
{contains date, Pattern ID number, and the}
{High and Low prices for the date of TP }
{will be generated. File named }
{PTRNxxMMDD.csv where xx is the first }
{two characters of the symbol name and the}
{MMDD is current month and date. }
Input: ExtnBars(20); {Number of bars to extend length of fork }
{tines, projected channel, and DGL lines }
{past the last bar on the chart or past }
{the next Pivot for other than last forks }
CLICK
THE Add to Cart Button TO ORDER the
LOS+AndrewsPitch_II @$ 125.00
![]()
Return to: HOME
This is the mess that you can get on the screen if you are not selective about what you view at any particular time.
Input: EndDate(1201231), {Ending date for computation--use to }
{study prior behavior of function }
EndTime(1500), {Ending time for End date }
{This has no effect for daily,wkly,..... }
ForcePvt(True), {Force a pivot point at last bar/date }
{the next Pivot for other than last forks }
BeginMed("m"), {Leave set to "m" to operate as "normal" } {Andrews routine. Enter a, b, ....,h } {to plot forks from other than "normal" } {Andrews median line begin point. }
CMode(3), {Computation Mode for Swing Detection } {See NumBars for definition } NumBars(21), {Determines what "strength" of a swing to } {use for determining turning points. } { CMode=0--% Price } { CMode=1--Multiplier of 21 bar StdDev } { CMode=2--Multiplier of 21 bar ATR } { CMode=3--Number of bars L&R for the } { detection of Pivots/TPs } {Note for CMODE=3: } {A decimal fraction may be used to set the} {number of bars for use for measurement on} {the righthand side of the Pivot/TP. } {If a decimal value is specified (34.13) } {then the decimal fraction(.13 * 100 = 13)} {is multiplied by 100 and then the value } {that results is used to set the length } {for right hand side search. } CMode(3), {Computation Mode for Swing Detection } {See above for definition }
ATRMult(1.2203), {Sets channel width. If set to ANY }
{NEGATIVE value width determined by NumB..}
{Fractional part defines line width and }
{color for channel and center lines }
{Notice that maximum resolution is a }
{single DECIMAL DIGIT. }
{ }
{NOTE: }
{Entry in form: M.Mcws where w=line width}
{c=color of channel/center line. If c is }
{set to Zero (0)---NO channel/center lines}
{Black=1,Blue=2,Cyan=3,Green=4,Magenta=5 }
{Red=6,Yellow=7, White=8,DarkBlue=9, and }
{s=style of line. 1=solid, 2=dashed, and }
{3=dotted. }
ExtProj(True),
{False=don't extend last channel lines }
NumFork(1.41), {Number of
Pitchforks to generate 3=max }
{Line
width and color are defined by the }
{value
of the fractional portion of this }
{parameter.
X.cw where c=line color and }
{w=line
width. Specify one specific }
{pattern
to display by entering the fork }
{number
time 10. (e.g. set NumFork to }
{10.14
will cause ONLY the #1 or latest }
{fork
to plot.
}
FibBars (180.202),{Use to setup fib computation
& label. }
{0.cws=NO
fib calculation. yy.cws =set fib}
{line
lengths to be yy past last bar. }
{
}
{First
decimal digit sets Fib line color }
{and
second decimal digit sets Fib line }
{width.
c=color w=width . The 3rd }
{digit
sets annotation location. 0=left, }
{1=right,
and 2=center.
}
{
}
{A
negative value inhibits annotations. }
FibOnForc(true), {True = calculate fib
lines on basis of }
{a
forced turn if specified. Otherwise }
{use
a non-forced turn for computations }
DGLIncr(1/8), {Lowest Multiplier value and increment to }
{next DGL point on median defining line }
NumDGL(-8), {Number of Dynamic Gann Line plots. }
{Set to zero for no DGL line plots }
{Set to 99.wc (w=width c=color) for max. }
{If a decimal fraction is provided then }
{the first digit of the fraction defines }
{the width of the DGL lines and the second}
{digit specifies the color. }
{If NEGATIVE then only the last set of DGL}
{lines is plotted, otherwise all sets are }
{plotted. Recommend to use negative. }
TrueSymb(""), {Set to a value of null "" if no plot }
{of the exact points where TP was picked. }
{Use leftmost character to show points }
{and value after decimal to set color }
{NOTE: This is a 'character' value and }
{values MUST be put inside double quotes }
PlotLOS(true), {Set false to inhibit listing of length }
FileDirI(""); {Enter a full folder ID where a file that }
{contains date, Pattern ID number, and the}
{High and Low prices for the date of TP }
{will be generated. File named }
{PTRNxxMMDD.csv where xx is the first }
{two characters of the symbol name and the}
{MMDD is current month and date. }
The above facility to generate a file of historical data for any given stock, option, future, ..... is extremely important in that you can gather such information and then study correlations between a sequence of pattern numbers and what happens next using Excel.
Input: ExtnBars(20); {Number of bars to extend length of fork }
{tines, projected channel, and DGL lines }
{past the last bar on the chart or past }
CLICK THE Add to Cart Button TO ORDER the LOS+AndrewsPitch_EB @$ 125.00
Return to: HOME