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

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



PureBytes Links

Trading Reference Links

Bob, I also got v8.0 last Oct, but after I found out the "P" variable did
not work, and they committed to me to put in the "Security" function, I
never loaded 8.0.  Just waited until 8.01 in April.  Otherwise I would have
figured this out a long time ago.  But I can now do lots of neat stuff with
the "Security" function.  Sure makes plotting things like Mclellan
Oscillators a whole lot easier, not to mention being able to reliably do
system testing referencing data from another security.


----- Original Message -----
From: "rtstrade" <rtstrade@xxxxxxxxxxx>
To: <equismetastock@xxxxxxxxxxxxxxx>
Sent: Saturday, May 10, 2003 6:32 PM
Subject: [EquisMetaStock Group] Re: v8 System Tester Issues and how to fix.


> Tom,
> Excellent.  All I can say is I am very glad I use points only for ALL
> my testing and comparisons.
> We got ver 8.0 last Oct?  And the fixed ver in April...what have they
> been doing?
> Thanks for making the suggestions....suppose they will listen and if
> they do, when we will get ver. 8.02? Don't hold your breath waiting
>   :-)
>
> Bob
>
>
>
>
>
>
>
>
> --- 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.
>
>
>
> 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/
>
>


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Rent DVDs Online - Over 14,500 titles.
No Late Fees & Free Shipping.
Try Netflix for FREE!
http://us.click.yahoo.com/YoVfrB/XP.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/