April 2007
Back Testing Tip:
Ensign Stochastic System
by Howard Arrington
In this article I will design a trading system based on the Stochastic
study using the Design Your Own (DYO) feature in Ensign
Windows. Let's begin by understanding the fundamental behavior
of Stochastic so that we can pick some rules for when to enter and exit a
position. Click this link for additional reading on the Stochastic
Fundamental Behavior.

I want to catch a new trend when it starts, which has been
marked with the Red arrows on the chart. The Buy Signal could
be based on the Stochastic %K line crossing the 50% level after having
been below 30%. One of the exit rules or objectives
could be when the %K line turns down the 2nd time, which is marked by the
Blue arrows. This would typically be at the end of a 3rd wave in the
Elliott wave pattern. So the portion of the chart I am trying
to scalp is from the Red arrow entry to the Blue arrow exit.
The inverted pattern would be the basis for the Sell Signal.
I would also like the system to try to scalp a trade based
on a profit objective. So I will design the system to do a blend of
both, and have rules for aborting the trade based on either an adverse
move or running out of time at the end of the day session.
Hopefully in a choppy market the 1st contract's profit objective will put
some money in the bank to offset small losing trades, and in a trending
market the 2nd contract held for the 2nd Stochastic turn will make a nice
profit for the system.
The following is an outline of the rules for the Ensign Stochastic
System. The design is based on trading the EUR/USD
forex symbol, but could be adapted to trading any symbol, including the
popular ES, ER2, NQ or YM futures symbols.
General Rules:
-
Trade signals between 7 a.m. and 3 p.m. Eastern Zone
time. That is when I am watching the markets.
-
Exit entire position (if any) at 4 p.m. I
do not want to carry positions over night.
-
Exit 1 contract on a profit objective of 10
pips. Test the system with larger and smaller profit
objectives.
Long Trade Rules:
-
The Buy Signal will be %K being below 30 and then
crossing above 50. Buy 2 contracts.
-
Exit entire position which may be 1 or 2 contracts on
the 2nd %K downturn. Location of the downturn does not matter.
-
Exit entire Long position if %K crosses below
40. This is the bail out rule for being on the wrong side
of the move.
Short Trade Rules:
-
The Sell Signal will be %K being above 70 and then
crossing below 50. Sell 2 contracts.
-
Exit entire position which may be 1 or 2 contracts on
the 2nd %K upturn. Location of the upturn does not matter.
-
Exit entire Short position if %K crosses above
60. This is the bail out rule for being on the wrong side
of the move.
Time Conditions:
Let's begin by taking each rule, one at a time, and show
its implementation using DYOs and Study Alerts in Ensign Windows.

This DYO implements Boolean flags for the two rules based
on Time. Signals will only be taken between 7:00 and 15:00 EST
which is marked on the chart with the green background. This
time condition will be stored as a flag in Global Variable [10].
Long Signal:


Line D tests whether the %K is less than 30. When
this condition is true, Line E sets a Flag in GV[250] to remember the
event. The private Global Variable [250] is used to remember this
event between calculate calls since this trade system might be running on
multiple charts simultaneously.
Line F is True when the %K crosses above the 50
level. Line G copies the Flag for the <30 event in GV[250] to
GV[12], so it
can be included in the 3 flag test performed by Line H. Line H
is the Buy Signal to put on a long position of 2 contracts.
When Line H is True, Line I will reset the flag in [250] which clears the
Below 30 condition. This condition will have to set itself again by
having %K go below 30 again. This way the system has only one Buy
Signal (Red stripe) following any Below 30 Condition (Green stripe).
The following Study Alert will be used to execute the
trade system to Buy 2 contracts when the DYO Flag on Line H is True.
The Flag was saved in GV[1].

Sell Signal:


The logic for the Sell Signal is similar to the Buy Signal
logic. First the %K must be above 70 as indicated by the blue
stripes. Then it must cross below 50, and this signal is marked by
the Red stripe. The Above 70 condition flag stores in GV[251] is
reset by Line F so that a single occurrence of the Sell Signal follows the
Above 70 condition.
The Study Alert to sell 2 contracts when Line E is true is
similar to the one shown for the Buy Signals.
Profit Exit:


This DYO tests for a Profit scalp objective being
met. The DYO will only mark conditions where the Position Size
is either a 2 for a Long or -2 for a Short. This means that
the scalp to take off the 1st contract has not happened yet.
The scalp size in points is the Number field on Line D. The
DYO is putting green stripes on the chart where the Position Size is 2 and
the profit exceeds 0.0010 points. The red stripes show where the
position is short 2 contracts (position size = -2) and the profit
objective of 0.0010 points has been met.
A True Flag on Lines E will be used to sell 1 of the Long
contracts. A True Flag on Line G will be used to buy back one
of the Short contracts.

This is one of 2 Study Alerts that see the DYO flags and
take 1 contract off on a Profit Exit. The Flag was stored in GV[10]
on Line E of the Profit Exit DYO.

Stochastic Exit:


Line A and B will reset a private Global Variable in [240]
used to
count the Stochastic %K tops when a Buy Signal is seen. Line C
and D will also reset this count when the Trade Position is
neutral.
Line E
and F detect the top in the %K formation by seeing a rising Stochastic on
the prior bar and a falling Stochastic on the current bar. When the
top formation is detected, Line G will increment the top counter in
GV[240]. Line H will be True when this count is a 2, and used to
exit all positions. Hopefully, the scalp objective was achieved
ahead of this exit signal, as was the case with the first Buy Signal on
the left side of the chart (dark green stripe) being followed by the light
green strip (profit exit).
Here is an example of the Study Alert that watches the DYO
Flag for the 2nd Top/Bottom counter. The Flag for a Stochastic
Top Exit was stored in GV[10] and the Flag for a Stochastic Bottom Exit
was stored in GV[11]. Either condition performs the action to
Exit Any Position, so both Flags can share this Study Alert.

Time Exit:


Panel A is True for the 1st bar after 1559 which
is shown on the chart as the vertical pink stripe. This is the condition to
exit any open position for the night.
Wrong Trend Exit:

Exit Long positions if the Stochastic %K goes below
40. This is our wrong way protective stop. The Study
Alert to exit Short positions when %K is above 60 is similar in design,
but not shown here.
Design Summary:
This list of chart objects shows the final design.

The chart has a Stochastic study, 5 DYOs with names like Buy Signal, Profit Exit, and STO
Tops. The Study
Alerts on the list begin with the word Alert: and have a name descriptive
of their purpose.
Trade Results:
Click menu Charts | Trade Detail to see a ledger of all of
the trades.

The top portion of the form shows summary
information. Our system is mildly profitable with a gain of $3,537 in 1 month of trading. The Winners and Losers count needs to
be taken with a 'grain of salt' because of the way the ledger logs our
method of putting on 2 contracts, and then possibly taking off one
contract on a profit exit. Lines 95 and 96 show this
effect. Line 95 shows a Long Position of Size 1 with an entry
price of 1.3461. The profit objective was met on a later bar
that closed at 1.3471. The Notes show this trade was on from 09:25
until 09:40. The 2nd contract traded is shown on line 96. It
was put on at the same price of 1.3461 at 09:25, and removed at 10:30 at a
different price of 1.3482.
Line 97 is a Short with 2 contracts, and apparently both
contracts existed on the STO Bottom Exit condition. Line 100 is a Short that
was reversed by a Long position being put on because they share the same
08:55 time stamp in the Notes.
So the system really had fewer than 185 trades, because many
entries are just the ledger's method of keeping track of partial lifting
of a position. The actual Average Trade would be higher than the
$19.12 shown. At $19.12 the system is just break even because
commissions and slippage have not been deducted from the results.
System Tweaking:
One of the unknowns was what scalp objective might be the
most profitable. The system was initially designed with
a 0.0010 pip profit object for the EUR/USD. Lets modify the
Profit Exit DYO, and the Line D Number field. The following Trade
Detail shows the result for a profit exit of 0.0015 instead of 0.0010.

As hoped for (and expected) the trade results are
better. Fewer trades were made (which is good), and the profit
increased by $738. For the sake of an example, a profit
objective of 0.0020 will be tested and its results shown in the next
table.

I see the results are a few hundred dollars lower. I
do not know what the optimum profit exit for the system would be, but that
was not the objective in writing the article. The article's purpose
is to show how a trading system of moderate complexity can be designed.
Another major exit condition was waiting for a 2nd top
or 2nd bottom in the Stochastic %K line. I am curious to see
if waiting until a 3rd top or 3rd bottom improves or worsens the
system. So changes will be made to the DYOs that test the top and
bottom counters. The profit objective will be returned to 0.0015 for
this test, and the results are shown in the next image.

Now this shows a very nice jump in the Account
Balance. The system improved from $4275 to $7012, and the average
trade is high enough to start paying for slippage and
commission. This is exciting and worthy of further research.
Another parameter to test is the Wrong Way Stochastic
trigger level of 40 when Long, and 60 when Short. I will test
the system with parameters of 30 and 70 used instead. The results
are shown in the next table, which are even higher, so this change to the
original design is yet another improvement.

Here is an example chart showing the final design with the
colored stripes marking various trade actions. The trades on the chart are
those in the prior table, lines 176 through 183.

I know many of you will want to play with this Ensign Stochastic System, so the studies, DYOs, and Alerts involved have been saved as
the EnsignStochastic template which can be downloaded from the Ensign web
site using the Internet Services form in Ensign Windows. Enjoy
and keep me informed if you discover parameters or make changes that
result in significant improvement in the system's profit.
No warranty is made that future results will match the
results shown in this article. The trades shown in the article are
hypothetical, and no deduction has been made for commissions or slippage.
Back Testing Tip:Back Testing Signals
by Christian Czirnich
Arrows on your chart. They look so good! And in hindsight you see all these great trades that were marked on the
chart but somehow discount the losing trades.
But why do I have that warning voice in me asking me before I take a trade:
Is that really a valid signal? Yes, there is that arrow, but .... You know not
all of these signals work. Do you really think you're smarter than all these
other geniuses out there designing trade systems for big firms for 6 to
7-figure salaries.
So another signal is not taken.
Enough!
Before I take one more trade I will have a very very long look at my
charts and confirm the validity of all these signals I now place on my charts
by cold hard facts. I need numbers. I need statistics about the arrows on my
charts. And I can't do these by hand as I would never again make a trade, if I
need to rely on handwritten statistics for say 10 symbols in 6
different timeframes for the last 3 months alone.
I need trade system analysis. Yes, I know the Tradestation guys are laughing
as that's one area that program is excelling in. But,
- I don't have Tradestation
- I don't intend to switch and learn it only to come back to Ensign after
my statistic is finished
- I've used Ensign
Software for 6 or more years and
- I'm convinced I can do everything TS can in Ensign as well.
Fortunately Howard, the developer of the Ensign
Windows program is really a great guy and always willing to help, if you have a
question. He even makes adjustments and additions to Ensign, when you have a reasonable
suggestion, which fits into his development plan.
First I wrote an e-Mail to Howard asking about trade system analysis in
Ensign and he answered me with 3 good resource links, which got me
started. Howard wrote back:
You would use ESPL logic to implement your ideas and when you have a trade
signal to either enter or exit a trade you would use the ESPL commands for the trade system. A ledger of
your trades is made and some statistics provided by that ledger. See these examples.
http://www.ensignsoftware.com/tips/tradingtips42.htm
http://www.ensignsoftware.com/espl/espl119.htm
http://www.ensignsoftware.com/tips/tradingtips21.htm
Then I ran into some design problems and he added a new statement to the
ESPL programming language making the task I set for myself a lot easier.
Thank you Howard!
What did I do?
Designing Chart-Templates which paint an arrow once certain conditions are
met is simple in Ensign. The power of the Design Your Own (DYO) study is really
unmatched when it comes to designing your own charts with bells and whistles.
But the trade analysis needs to be done in ESPL. So I adjusted Howard's ESPL
code, found in the resources he sent me, to link with my chart
template, added some trade management I normally do in my own trading and
here is the result:

You have the option to add to trades, to
reverse trades on a signal received or if the trade is stopped out. For
information purposes I also added the option to show individual trade
details. These statistics were generated trading a CL M7 2minute chart.

My Tradesystem is a simple trend following system, which goes long or short on
a retracement with the trend. Nothing sophisticated and actually an example
how trade management can turn a profitable trade system into a losing one and
vice versa.
I have designed the ESPL code in a way, that you can enter the Tradetarget,
the Stop and a trailing Stop in ticks, which makes this code applicable to a
wide array of symbols.
The Charttemplate itself needs to have 3 DYO Studies:
- One named "Buysignal" which goes True in Line J when a Buy is
triggered
- One named "Sellsignal" which goes True in Line J When a Sell
is triggered
- and one named Variables where you can transfer Numbers from the chart to
the ESPL program. Currently it needs to tell the ESPL program only the
minimumticksize of the symbol to be analyzed, which is available in the [$Q]
variable in Ensign.
Here is an example of the BuySignal DYO

Adjust the Slope DYO Line G to adjust the Flat period of
the indicator where no trades are taken.

The Tradesystem analysis is done in ESPL. First you need to place the code in your ESPL directory [\Ensign\ESPL],
then you need to load it in the ESPL script editor and adjust the variables
according to your needs:

(You need to enter the chartname, if you have more than one
chart open when testing. I have made myself a Tradesystem Workspace with one
chart only, so I don't need to change the code, when switching symbols)
Click the [1] button on the ESPL editor form to clear
the chart and the Output window from any markers left from previous tradesystem runs (if any).
Click the [2] button on the editor form to generate the
Trade Statistics.

If you have Ensign and are interested in testing your own system, here are
the links to the Chart-Template and
the ESPL code.
Also see the http://www.globe-trader.de/TS-EMA-Trend.dat
template, as the chart picture shows the TrendCCI.dat Template while the Slope
DYO is part of the new template which trades bounces of the 34ema and
determines trend by looking at the slope of the 34ema. Both templates
have a positive edge, so both might be interesting for playing with.
(Right
click the links and select Save Target.. to download directly in the
correct subfolders).
I wish you a profitable trade system analysis.
|