StockFetcher Forums · General Discussion · BackTesting | << >>Post Follow-up |
Uppercut 5 posts msg #33854 - Ignore Uppercut |
11/9/2004 5:02:09 PM I am trying to backtest a screen using a method posted by Cegis. My idea was to offset this every day for a year, download the results and see how my screen did day-by-day for fifteen days. I am getting a lot of erroneous information for stock prices. It looks like just a lot of randam errors (stock split calculations, older historical information for stocks that just began trading, etc.). I thought I might post my formula just in case something else was wrong; although the only thing I can foresee is too many set statements. Cheers set{zero, close 30 days ago} set{one, close 29 days ago} set{two, close 28 days ago} set{three, close 27 days ago} set{four, close 26 days ago} set{five, close 25 days ago} set{six, close 24 days ago} set{seven, close 23 days ago} set{eight, close 22 days ago} set{nine, close 21 days ago} set{ten, close 20 days ago} set{eleven, close 19 days ago} set{twelve, close 18 days ago} set{thirteen, close 17 days ago} set{fourteen, close 16 days ago} set{fifteen, close 15 days ago} Show stocks where parabolic sar 31 days ago was above close 31 days ago and close 30 days ago is above parabolic sar 30 days ago and +DI(45) 30 days ago is above 30 and close 30 days ago is above 5 and average volume(10) is above 75000 add column zero add column one add column two add column three add column four add column five add column six add column seven add column eight add column nine add column ten add column eleven add column twelve add column thirteen add column fourteen add column fifteen date offset 1 |
jpistell 123 posts msg #33855 - Ignore jpistell |
11/9/2004 8:12:15 PM How can you back test the script performance without an exit? Without an exit you'll only get limited feedback out your scripts abilities. What about draw down? What about "time in the market" (i.e. I'll prefer many small gains from very short term holds that have small draw downs vs. multi-month gains that have significant draw downs). |
cegis 235 posts msg #33856 - Ignore cegis |
11/9/2004 8:26:11 PM Uppercut, Well, since it IS my technique that you're trying to implement, please let me comment: - First, it all looks ok EXCEPT the average volume phrase should also have the "30 days ago" phrase. This is something that I've overlooked frequently, and it's easy to do :-). - Secondly, although there's nothing wrong with going back the full 30 days, you only really need to go back 16, so you can get the following 15 day's worth of data. The only thing about using 30 is that you'll be missing the most recent 15 days worth of data. - Lastly, again there's nothing wrong with it, but you don't really need the set{} statements. You can just "add column 30 days ago {zero}". I only mention this because SF puts limits on the use of set{}s, so it may be an issue if you are using set{}s for other purposes in a filter. The 15 set{} you have should not be a problem in this filter, though. (I've used more than 15 in some of my filters with success...) - One other thought came to mind: SF may use "zero", "one", ... etc. as "reserved words". In other words, SF may recognize these words and do something unexpected (to you) with them. You may want to try "day0", "day1", ... or "d0", "d1", ... (This is a wild guess, but possible...) If these suggestions don't help, it may need a look-see by TomB... HTH, C P.S., I've been using this technique quite a bit over the past few weeks and have not noticed anything obviously wrong... |
jpistell 123 posts msg #33857 - Ignore jpistell |
11/9/2004 8:34:19 PM Given SF's limitations there still is a mountain of excellent data that it produces. Here's my $0.02. How well does your script do when the market is trending positive vs negative? Create your script and "date offset" it into a friendly market, and then into a hostile market. I use symbol MDY (S&P mid caps) as an overall reference. As of today, Nov. 9th., Take a look at a date offset of 85 vs. date offset of 55. You'll see your script work thru favorable markets and downright hostile times. IMO, its how well your script "keeps your powder dry" that makes for a super cash multiplier. Here's how I interpet your scripts performance: Monday July 12, 2004 = 85 days back: date offset is 85 ==1st week.== 11 picks all parallel the market with midly negative overall perofmance. Poor win/loss ratio ==1st Month.== All 11 picks are neg. and parrrell the markets performance. ==3rd Month== 2 winners, 9 losers. Market's all the way back to flat, your down 9% Tuesday August 24, 2004 = 55 days back: date offset is 55 Rougly 30 Trading Days later, the market been thru hell and its looking a lot better (read:oversold) ==1st week.== 10 picks that are slightly ahead of the market. win/loss ratio is far better (but so is the market). ==1st Month.== Picks are net neg. and is just behinds the markets performance. ==3rd Month== 7 winners, 3 losers. Market's + 11.25%, your scripts at 14%. Set a goal to out perform the market 2:1 and be sure to write it to work in the bad times as well as the good. |
Uppercut 5 posts msg #33858 - Ignore Uppercut |
11/9/2004 11:40:27 PM Cegis, Thank you for the insight about overlooking the average volume phrase. I realized your second point some where in the middle of playing with the backtesting script you provided but forgot to change it. I knew there was a limit on the set statements, but when I saw that it returned data I thought maybe since I was not defining a variable that I used directly in my equation StockFetcher would let me get away with it. I will try changing the named variables and see if that makes a difference. jp, I agree with everything you said. When I saw Cegis backtesting script, it occured to me that you could test a screen based only on Entry Point, and then take the rest of the data and create a rule for an exit strategy. So while I appreciate your feedback, I think you overlooked the purpose of my screen. At any rate, thanks for the help guys. |
jpistell 123 posts msg #33865 - Ignore jpistell |
11/10/2004 1:19:16 PM Uppercut, Sorry, I couldn't see any meaningful data coming from the string of closes. No OHLC, no deep historical data to plot indicators. Maybe a raw sell stop at X% and take profits at X%. IMO, SF has an interesting Filter Performance Window that allows a decent foundational review, albeit non descript. |
Uppercut 5 posts msg #33868 - Ignore Uppercut |
11/10/2004 3:44:10 PM Please elaborate on the "Filter Performance Window"; I am not familiar with this. |
jpistell 123 posts msg #33874 - Ignore jpistell |
11/10/2004 7:00:56 PM Uppercut, Create your script page, example: Then click column: "results 3 months ago" This leads you to a window with a column marked "Performance"<---Click it. This launches a new window that has all kinds of historical performance data. You'll find: The filters Quantity of hits The quantity of winners vs losers (aka advance/decline ratio) It'll break down the Filters NET performance over: day1 day2 day2 etc.. Week1 Month1 Month3 and to today This Performance is also broke out in gains vs. losses (over time) and Filter Performance v.s Index Performance. (over time) Its really robust considering the low cost of SF. |
Uppercut 5 posts msg #33875 - Ignore Uppercut |
11/10/2004 7:35:05 PM Oh yes, I am familiar with this. That mirrors the purpose behind my script. The only expception being, I wanted this information for every stock that had triggered my entry point for the past 250 days, as opposed to looking at it one stock at a time. That was the key benefit I saw in Cegis's backtesting method. Regards |
StockFetcher Forums · General Discussion · BackTesting | << >>Post Follow-up |
Copyright 2022 - Vestyl Software L.L.C.•Terms of Service | License | Questions or comments? Contact Us
EOD Data sources: DDFPlus & CSI Data
Quotes delayed during active market hours. Delay times are at least 15 mins for NASDAQ, 20 mins for NYSE and Amex. Delayed intraday data provided by DDFPlus