StockFetcher Forums · General Discussion · ConnorsRSI<< 1 ... 24 25 26 27 28 ... 32 >>Post Follow-up
Marketyoda
11 posts
msg #111417
Ignore Marketyoda
2/15/2013 9:45:34 AM

@Billirider321

Still in KOS. I have a double-up order @10.53 (-5%) should this go against me. I've had no other triggers since then, although one did come close yesterday.

shainadir
25 posts
msg #111418
Ignore shainadir
2/15/2013 10:07:10 AM

You might wanna get rid of this one. Not gonna move up for a while with 30 million shares being diluted/dumped at <11.

shainadir
25 posts
msg #111424
Ignore shainadir
modified
2/15/2013 3:01:59 PM

Question for Kevin,

I am a member at stockbee.biz and I mentioned this system over there. One of the prominent traders there backtested this system and came back with different results. Here is his post:

"A few days ago, someone posted a link to a pullback system highlighted in a stockfetcher forum. This morning I implemented this system in my own backtesting software. While it was profitable, my results were nowhere near as good as the ones mentioned.

Then I re-read the description and saw "On a further 6% pullback the next day, enter long using a limit order." So I went ahead and put "C * 0.94" in my "Limit Price" field, and, lo and behold, I get a result like 70% ROR and 5% MAXDD. My profit graph looked a lot like his. Cool!

Except, I had made the same error as I now am sure the original poster must have done in whatever software he uses (I think he said it was StrataSearch.) If you can know in advance what today's close will be, and enter 6% lower, that will generally work rather well!

Using the correct limit price formula of "C1 * 0.94", the results went back to what I was seeing without the limit order: around 25% ROR and 50% MAXDD (with most of the good results prior to 2008).

Bottom line: don't trust every backtest result you see online. It is remarkably easy to introduce a "forward looking" error. To my knowledge, there are NO daily stock picking systems with statistically valid backtest results that come anywhere near the kind of numbers this guy claims to show."

Can you comment on this? Thanks.

Kevin_in_GA
4,599 posts
msg #111425
Ignore Kevin_in_GA
2/15/2013 3:30:50 PM

Yes, I have had this discussion with the folks at Stratasearch as well. The code I cited in the SS filter is CORRECT, because of the way SS cites data.

Look at the SS code (note - this code is only used for backtesting, since it references the next day's low which you could not know in advance).


(close-low)/(high-low) < 0.2 and
// close was near the low for the day

low < ref(close,-1) * 0.94 and
// today's low was at least 6% below yesterday's close (first pullback)

ref(low,1) < close * 0.94 and
// tomorrow's low must be at least 6% below today's close (second pullback)

adx(5) > 40 and
close > 5 and
mov(volume,21,simple) > 250000


It should be clear - this looks at today's data and if tomorrow's low (the second pullback) is more than 6% below today's close, the limit order (close *0.94) is triggered for trade entry.

After working through this on my own and running it by the SS support staff, I stand by this code and the results. Please pass this along to help your friend better understand - I'm open to an informed discourse on this.

Kevin_in_GA
4,599 posts
msg #111426
Ignore Kevin_in_GA
modified
2/15/2013 3:37:16 PM

Just a little more info - here is the code and some discussions on it:

http://www.stratasearch.com/forum/viewtopic.php?f=8&t=1115

Pete (Overload) is Stratasearch's main coder and key support person - VERY good at his job. I have had a number of discussions with him on how SS uses day references, so I'm pretty sure this is correct.

Billirider321
62 posts
msg #111427
Ignore Billirider321
2/15/2013 4:05:59 PM

Kevin,

I like how you take criticism so positively. This is healthy and mutually benefecial discussion.

Bill

shainadir
25 posts
msg #111429
Ignore shainadir
modified
2/15/2013 4:27:30 PM

Kevin,

Here is his response...and this will be the last one cuz I dont want to keep asking :)

I agree with all the code below, and it matches what I did.

I looked at the stratasearch forum that Kevin referenced, and see the following:

Entry Order: Limit at "close*0.94"
Having never used StrataSearch, I can't be sure, but I have a strong feeling that this should be coded as "ref(close, -1) * 0.94" in order to avoid the same look-ahead bias I had initially.

Kevin_in_GA
4,599 posts
msg #111430
Ignore Kevin_in_GA
2/15/2013 4:38:02 PM

For backtesting, "close*0.94" is the correct reference and syntax because SS uses only EOD data. In using this filter trading forward, what he suggests would be correct.

Believe me, when I inadvertently used forward-looking references in previous filters, the results were so astounding as to be clearly wrong. I've definitely made my mistakes coding systems in SS before, but not here. I wouldn't publish anything that was not thoroughly vetted first.

Kevin_in_GA
4,599 posts
msg #111453
Ignore Kevin_in_GA
2/17/2013 10:49:28 AM

Just following up on the question regarding SS coding - I reran the code I provided and compared it with the trades we have all seen triggered. The entry dates, limit order prices, and exits are all correct with what has been seen since I originally posted the code last year. I also ran code that looked back one extra day and used "ref(close,-1)*0.94" as the trigger. It did not match the trades we have seen triggered so far - it still beat the market, but was making entries at the wrong price points.

Glad to have this challenged - it is always good to make sure you are not missing a critical mistake that could be seen by other eyes. In this case things look solid.

mhp326
2 posts
msg #111455
Ignore mhp326
2/17/2013 11:45:15 AM

Hello All. I'm the person who posted the challenges to these test results that @shainadir kindly shared here.

First, a brief apology. I was obviously over-zealous in the tone that I took in my stockbee posts. I've now taken a few hours to thoroughly review all of the posts in this thread, and many of Kevin's others here. Kevin, you obviously know what you are doing, and have thorough experience and deep knowledge in backtesting trading systems. I should have read more of what's here before spouting off as I did.

Second, a bit about myself: I've traded for a living using mechanical daily stock picking strategies (and therefore backtesting) for 15 years. I was the former trading partner of Gary B. Smith (the guy he called "wesson", for anyone who used to read his theStreet.com columns in the late '90s.) I wrote my own backtesting software, since there was nothing like StrataSearch (or any portfolio-level backtester) available in 1998 when I first got into this stuff. My actual results over 15 years have been 27%/year average annual return with a 21% max drawdown and no losing years, trading a 7-figure account.

On Friday, I put together a quick EOD model of this system using my own software, and the results I cited were from that model. Just now, I also built an intraday model, such that, for each day tested, up to 5 positions are taken at the times and in the order they would have actually occurred. (My software loads in both daily and 1-minute bars, to enable this level of simulation.)

A word about data. I did not see any reference in the thread to which database was used. I build my own database from NxCore (Nanex) "tapes", which contain every trade in the market as it actually occurred for each day since 5/03. As such, the model is quite accurate, in that it includes every symbol that actually traded each day, even if it was since delisted, and uses split-unadjusted prices (the actual prices in effect at the time). In other words, it truly shows the trades that would have been taken. Also, rather than using the officially reported OHLC values for daily bars, I build mine based on the actual prices I would have seen at the time (factoring in any corrections that are later reported by the exchanges). Thus, my "open" is the first official trade after 9:30:00, and my "close" is the last official trade before 16:00:00. This will produce slightly, but not significantly different results from standard OHLC bars from most data vendors.

The internal algorithm in my backtest engine works like this:

for each day in the test
for each stock in the database
if it passes the "candidates" filter
for each minute of the day
if it passes the "picks" filter
enter at market at the close of that minute

The first 5 picks each day are taken. Picks are skipped if (a) there are already 5 positions open (no buying power left -- my model does not use margin), or (b) there is already a position open in the same stock.

Exit is done at EOD (not at the next open -- this is a slight difference, but should have minimal impact on results) for any position where the 2-day wlr > -45, as in your model.

Having explained this, here are my specific formulas. Think of the "candidates" formula as being evaluated every morning before the open, so "L1" is yesterday's low, "C2" is the prior day's close, etc. (my syntax is similar to TC2000 PCFs). The key point is that there is no reference to today's bar here, because today hasn't started yet.

Candidates:

L1 <= C2 * 0.94
AND L1 >= 5
AND (C1-L1)/(H1-L1) <= 0.2
AND AVGV21.1 >= 250000
AND ADX5.1 >= 40


Given the above set of daily candidates, the "picks" formula is then evaluated every minute, based on the daily bar "so far" as of that minute. Entry is assumed to be at market at the closing price of that minute's bar.

Picks:

L <= L1 * 0.94


The only exit rule is the one stated above.

The results are computed without compounding, i.e., the test is run as if buying power is always $100K, and $20K is always the position size. I believe this is consistent with your tests. ROR and Max Drawdown are reported as a percent of $100K, so if the average annual return is $40K, that is a 40% ROR, and if there's a $50K drawdown (on a daily closed-position basis), that's a 50% drawdown, no matter where in the test it occurs.
(Perhaps this is the main source of the difference between the SS numbers and mine.)

My test was run from 5/19/03 - 2/15/13. Here are the stats that I have:

Periods: 2454
Trades: 1993
Avg. Trade Length: 2.76 days
Avg Ivestment: 44.8% of portfolio
Skipped Trades: 82%
Wins: 66.4%
Avg Win: $1471
Avg Loss: $1945
Expectancy: $324
Total Gain: 646% (non-compounded)
Annual ROR: 65.8%
Max Drawdown: 73.4%


Note: the above was run with NO COMMISSIONS and NO SLIPPAGE. Using a $10/side commission and $0.01/share slippage assumption, the last two numbers become ROR 54%, MAXDD 77%.

Also, I tried the variation where $10K is invested in up to 10 picks per day. With no slippage or commissions, the ROR for that test was 51% and the MAXDD was 78%. So, I agree that the 5-pick model is better.

These results are quite a bit better than what I saw using the simulated limit orders with EOD bars.

Here are graphs of the graph of the equity curve and drawdowns:






And, for anyone wishing to review the trade list to verify my results, you can find it here .


I think this system has great potential, and I intend to do further work on it, to see how the drawdown can be reduced. (I personally will not trade anything with more than a 20% max drawdown in backtests, and I prefer to see it closer to 10%, computed as stated above.)

I welcome further discussion on this, and I will also probably go ahead and purchase StrataSearch (or at least take the 1-month free trial) so I can try and better understand how they compute their results stats.




StockFetcher Forums · General Discussion · ConnorsRSI<< 1 ... 24 25 26 27 28 ... 32 >>Post Follow-up

*** Disclaimer *** StockFetcher.com does not endorse or suggest any of the securities which are returned in any of the searches or filters. They are provided purely for informational and research purposes. StockFetcher.com does not recommend particular securities. StockFetcher.com, Vestyl Software, L.L.C. and involved content providers shall not be liable for any errors or delays in the content, or for any actions taken based on the content.


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


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.