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

Re: [EquisMetaStock Group] Explorations on multiple days



PureBytes Links

Trading Reference Links

Hi Scott

> My issue(s):
> 1:  I am backtesting some ideas with the Explorer, EOD daily data.
> In order to backtest the same exploration against, say, one month's
> worth of data, I've been making multiple copies of the same
> exploration with the only change being the exploration date and a
> modification of the title to reflect the date. So, I have "System X
> 0205" to explore Feb 5, "System X 0206" to explore Feb 6, etc. To
> explore one month of data, I have 20-22 seperate exploration copies
> and then I run them all. This is labor intensive, slow and tedious,
> as I usually scan about 7000 equities. I feel like I'm missing
> something. Is there a way to streamline this?

If you're looking for the number of times a signal occurs over a particular time period, and don't 
need to relate events to dates, using the Cum() function is a better way to go. Including a date 
filter inside the Cum() function allows you to sum signals occurring in you test window.

Cum(Fml("signal") {spike} AND Month()=2 AND Year()=2002);


> 2:  When creating an exploration, are there certain functions which
> bog things down in Metastock? Sometimes I write an exploration that
> takes about 2 minutes to scan 7000 stocks (local data), and
> sometimes as much as ten minutes. I suspect it may be something to
> do with the Security fxn (calling an outside security) and/or Fml
> fxn for a custom indicator, or something with the Ref fxn combined
> with these two but I'm not sure. Do specifying variables slow things
> down (ie, 'ST5:= Stoch(5,4)')?

Looks like you've already found the functions that bog things down a little - Security(), Fml() and 
FmlVar(). Worse still is PREV.
Ref() is not going to slow things down. The more complex your code the slower it will get too. 
Nesting 10 If() functions might do what you want, but it will slow things down.

You can alleviate the problem a little by assigning a variable name to any of the above and calling 
the variable instead if required more than once in a column. Also make sure you specify the least 
number of records you can get away with for the scan. Using the "Minimum" records setting is not a 
good idea though, because any EMA or any function using Wilders Smoothing internally will calculate 
incorrectly. So use at least 5 times the minimum "periods" value of your code PLUS the number of 
bars of interest.

Example

If you want to sum the signals for 22 bars and you code includes a 30 period EMA, use 150+22 periods 
as a minimum (rounf to 175, say).

Dont scan 1000 bars when only 250 is needed to give accurate results.


Kind regards

Roy Larsen
www.metastocktips.co.nz
Free formulas and MS links




------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/BefplB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/equismetastock/

<*> 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/