[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EquisMetaStock Group] Re: v8 System Tester Issues and how to fix.



PureBytes Links

Trading Reference Links

Tom,

  I really appreciate you posting this e-mail.  I wish I had known 
this before I purchased 8.01.  

  Points only has problems too. Do a Points Only Test on a Security 
and note what the Buy and Sell price is in the Results Detail View 
window.  I had a signal to buy @  $13.30  Sell @ 17.79 and the 
points only gave result of 4.45 (should be 4.49).

   The Result I got When I had 20 trades with Debry.com Msst Points 
only test were much different then Equis Enhanced System Tester.  
This program cost $1695.00 and the System Tester has major problems. 
Equis should release 8.02 ASAP.  


I WANT TO TRADE AND NOT BETA TEST A SOFTWARE THAT I PAID SOMEONE 
$1695.00 FOR.    

Unhappy,

User





--- In equismetastock@xxxxxxxxxxxxxxx, "Tom Sprunger" 
<tlsprunger@xxxx> wrote:
> bigdog, and any one else interested,
> 
> I spent a week or three figuring out how the MS v8 System Tester 
works.  I
> had problems getting the results from 8.01 to match 7.2.    I had 
strange
> signals, missing trades, multiple trades off one signal, etc.   
Had several
> emails, phone conversations, etc with Equis.  Bottom line is that 
they went
> overboard in trying to make it realistic, to the point it is 
unrealistic
> (my opinion).  Especially if you are trying to develop and test 
systems.
> However, there are two workarounds you can use to get valid 
results.
> 
> So I won't forget what I learned I, wrote it up.  Below tells how 
the tester
> currently works and explains why the results give missing trades, 
multiple
> trades, doesn't use your full equity, etc.  and therefore provides 
invalid
> results.
> 
> Read below how 8.01 works, then look at the two methods to get 
valid results
> if you are trying to develop and test systems.
> 
> Equis has told me they are looking into changing it, but no 
commit, and no
> timeframe for making the decision.
> If you agree with me, send or call them and tell them to change 
it.  At the
> bottom, I list what I have recommended they do.
> 
> -------------------------------------------------------------------
---------
> 
> The Metastock v8.x system tester works very differently than 
previous
> versions.  On the up side it can test multiple securities 
simultaneously.
> However, its operation has differences that are very significant 
to a system
> developer, and in reality are not anywhere near what would happen 
in the
> real world.
> 
> It is important to understand these differences because the v8 
tester can
> give very different results from the v7 tester when using the same 
system on
> the same security with the same time periods.  In addition, 
because of the
> v8 "features" you can get different results comparing the several 
systems on
> the same security from the v7 tester.  This also implies 
Optimization
> results could be invalid.
> 
> Later we will see how to get around these issues and limitations.
> 
> Here's the major differences.
> 
> The v8 tester has several new options that are key.  The key 
differences
> result from a "Broker" module which places orders.
> 
> a. "Position Limit"   This is accessible from the "General" screen 
on each
> individual system test description.   You will need to be very 
careful what
> you put in here as you will see later.  In addition, if you are 
comparing
> different systems, you need to be sure that they all have the same 
number of
> positions allowed or you may get unfair comparison results.
> 
> b. Trading size.   In the v7 tester the system traded 100% of your 
equity on
> each trade.  There was no option to do otherwise (except 
for "points only"
> test).  The v8 tester allows you to trade a constant number of 
shares, total
> transaction cost, or a percentage of equity available.  We will 
concentrate
> on the "% of equity available, as it is most relevant for system 
development
> and comparison.
> 
> c. Trade Price -- the v7 tester allowed you to select the price 
field
> (O,H,L,C) for entry and exit and the delay for each.  In other 
words you
> could have different  delays for entry and exit.
> The v8 tester does not allow different delays for entry and exit.  
It uses
> the same delay for all entries and exits.  The v8 tester also 
allows
> different price fields for the long and short entries and exits, 
which the
> v7 did not.  But there is more you should know.... read on.
> 
> The biggest difference in v8 is the addition of a button 
for "Realistic
> Market Prices".  It is important to understand what happens when 
you check
> this button.
> 
> To explain, let's assume you have "Position Limit" =1, "% of equity
> available"=100 and the "Realistic Market Prices" button checked.
> 
> When you get an enter Long signal, the program calculates the 
number of
> shares that can be purchased using the open price on the signal 
bar (day0).
> It tries to purchase that number of shares at the open price on 
the next bar
> (day1).  However, if the open price on the next bar (day1)  is 
higher than
> the price from the signal bar (day0), the tester does not place 
the order
> because you do not have enough money.  Now let's say you did not 
have enough
> money.  If your system is gives one day signals like you would get 
from a
> cross(x,y) signal,  then  this trade will never be entered.
> 
> If your system stays on a buy like you might have with a latch or 
with a
> c>mov(c,20,e) structure, then the tester will still be on a buy 
signal on
> day1.  It will then recalculate the number of shares that can be 
purchase at
> the open on day 1 and attempt to buy them on day2.  If it can't 
buy because
> the price is up at the open on day2 then it will not enter.  The 
process
> will continue until either the price drops at the open and you get 
filled or
> the buy signal goes away.  Thus it is again possible that you 
never enter on
> this trade signal.  The other possibility is that you will not get 
filled at
> 100% of your equity.
> 
> Now for a moment assume that you had your "Position Limit" set at 
10, and
> your buy signal remains in effect.  The tester will continue each 
bar to try
> to
> fill your orders as above, and will add positions until either 
your buy
> signal goes away, or your equity is used up, or your positions are 
equal to
> 10. So if you have a buy signal that lasts for 20 bars, you may 
get 10
> positions filled where the last one may be  filled on the last bar 
before
> the buy signal goes away.
> 
> Note: the reverse happens on enter short signals.
> 
> When the system gets an exit signal (either long or short) it 
exits on the
> open of the next bar if you have "Realistic Market Prices" 
checked.  Note
> that there does not seem to be any issues on the exits.  Since it 
is an
> exit, it just exits regardless of the prices.
> 
> If your system is an always in the market system, and you flip 
from a long
> to a short, it will exit longs on the next bar, and attempt to 
sell short
> the number of shares it calculates based upon the open price of 
the signal
> day. If the price on day1 is higher, it does not enter the short 
sale.
> 
> So, it is key to realize that if you use "Realistic Market Prices",
> Your tests are not at all realistic because you may not get filled 
on the
> day of the signal,  or you may get filled at all, or you may get 
filled
> multiple times.  Implications are:
> 1. Can't compare systems on same security.
> 2. buy sell arrows represent entry/exit dates and not signal dates.
> 3. This problem applies to all securities including mutual funds.
> 4. Very difficult to develop systems and see valid signals.
> 5. Can't compare performance on one security to another with same 
or
> different systems
> 
> Next let's review how the "Trade Price" from the "Trade Execution" 
screen
> works if you do not have the "Realistic Prices" option set.
> 
> The system calculates the number of shares to buy based on the 
price field
> you choose and then tries to buy them on the price field you 
choose.
> 
> If you have "Buy Price" = Open and Delay =1,  the system 
calculates the
> number of shares to buy based upon the Open price on the signal 
bar and
> attempts to buy at the open of the next bar.  If you have "Buy 
Price" =
> Close  and Delay = 1 the system calculates the number of shares 
based upon
> the close of the signal bar  and attempts to buy  on the close of 
the next
> bar.  Same for Sell Price, Sell Short Price, etc.   So if all you 
do is
> uncheck the "Realistic Market Prices" button and use "Buy on open 
with
> delay=1", nothing really changes.
> 
> This is not logical at all!  If you decided to buy on the open 
tomorrow
> based on a signal today, only an idiot  would calculate the number 
of shares
> to buy based on today's open!  There has been a whole day's worth 
of price
> action transpired already and the open from yesterday
> is no longer relevant.  You would logically use today's close 
to "Estimate"
> the number of shares that you "Might purchase" the next day.
> 
> Because of all this it is difficult to develop and compare systems 
using the
> v8 tester that produce valid results.
> 
> Now, it gets even worse.  All this tells me the optimization 
results are not
> valid in v8.  Since
> all this buy, can't buy because price is up, etc etc stuff occurs, 
I assume
> it occurs on each optimization run.  So your optimization results 
are not
> based on reality.  In some trades, you don't get filled because of 
this.  In
> others you get filled late. A $.01 increase on the open would 
potentially
> cause you not to be filled. So it makes the optimization results
> inconsistent and unreliable.  When you optimize you want to find 
the best
> signals that optimize your performance.  The potential non  or 
late fills
> because of a small price change on a given parameter run totally 
distort
> this.
> 
> So what can you do to get around this to develop and compare 
systems,
> compare multiple systems, etc. ?
> 
> Note that the above issues do not seem to effect you if you use 
a "Points
> Only" test.  In this mode apparently the v8 works just like the v7 
tester.
> So you can get valid results that way.
> 
> But if you wish to see an equity curve,  or get a return in % then 
you have
> the above problems.
> 
> There are two ways to get around this and get valid results and 
signals.
> 
> First, don't use "Realistic Market Prices".
> Make sure your "Position Limit" is set to 1.
> Set Equity Default size to 100%.
> Under Margin Requirements to
>     Long Initial = 100%
>     Long Maintenance = 0%
>     Short Initial = 200%  (amazingly, 200% means no margin, but 
that is
> another story)
>     Short Maintenance = 101% (this means essentially no 
maintenance.  for
> some dumb reason they won't let you put in 100%, so you will never 
be able
> to trade your full equity on a short trade, only 99%.)
> 
> Now you have two options.
> 1. Set all your enter and exit positions to "Close" with a Delay 
=0.
> This will enter and exit all of your equity (except for the stupid 
1% limit
> on short sales) at the close.  All your signals will show up on 
the charts
> correctly, your % gains will be correct and it will produce 
results very
> close to the v7 tester.  Of course the drawback is that in the 
real world,
> you probably won't enter and exit on the same bar as the signal. 
However, if
> you are mainly looking to compare systems  or see signal dates, 
then this
> works.
> 
> 2.  Set all of your enter and exit conditions to use format of
> Ref(enter,-1).
> Use "Price Field = Open with Delay =0".  (or Close with delay of 
0, or
> whatever).
> What happens is that the condition that is true on day0 gets 
evaluated as
> true on day1 (the day after the signal and the right day to 
enter).  The
> number of shares are calculated and purchased at the same price.  
The arrows
> show up on the chart on the entry/exit day.
> 
> This is as realistic as the v7 tester and actually pretty good.
> The downside is you have to rewrite all your systems to use the Ref
()
> function in all the enter and exit conditions.  Lots of work and 
pain.
> 
> Using either of these methods should make the system tests valid, 
match 7.2
> results, and make the optimization results valid.
> 
> What should be done is that Equis changes the tester.  Here is 
what I have
> recommended they do:
> 
> If the "Realistic Market Prices" button is checked the system 
should adjust
> the number of shares to buy everything allowed by the equity in 
the account
> at the open the next day.
> 
> When the user selected options for Buy,Sell, etc are checked, the 
system
> should adjust the number of shares to buy the total $ allowed by 
the equity
> at the price field selected, on the bar selected by the delay 
field.
> 
> Of course the other option is to just put it back to the v7 method.
> 
> One other caveat, I have done any testing attempting to use the 
limit
> orders so I have no idea what happens when you try to do that.


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Rent DVDs from home.
Over 14,500 titles. Free Shipping
& No Late Fees. Try Netflix for FREE!
http://us.click.yahoo.com/BVVfoB/hP.FAA/uetFAA/BefplB/TM
---------------------------------------------------------------------~->

To unsubscribe from this group, send an email to:
equismetastock-unsubscribe@xxxxxxxxxxxxxxx

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/