StockFetcher Forums · Filter Exchange · Basic Filter for newbies and old pros...<< 1 2 3 4 5 ... 14 >>Post Follow-up
glider
59 posts
msg #36587
Ignore glider
6/30/2005 5:48:05 PM

I agree with some of the sentiments expressed here. RumpledOne, I think you do a GREAT job sharing your knowledge and expertise, but a filter like this probably goes over the heads of most members here including my own. Maybe, when posting an advanced filter like this, you could also post a basic version of the same one. It's a shame not to be able to use, change and generally 'play around' with it.


TheRumpledOne
6,362 posts
msg #36592
Ignore TheRumpledOne
6/30/2005 8:54:14 PM

Guys, this IS a basic filter.

It gives you all of the most common displays people use for selecting and trading stocks like the ma(50), ma(200).

The beauty of this filter is you can use it as is and sort the columns to find stocks meeting your criteria or you can add a statement or 2 and filter out just the stocks you want and still have all the display columns. You don't have to figure out all the coding because it is already done!!

The problem is you HAVE TO CLICK ON THE MAGNIFYING GLASS ICON or the filter may "blow up".

MAY ALL YOUR FILLS BE COMPLETE.


TheRumpledOne
6,362 posts
msg #36593
Ignore TheRumpledOne
6/30/2005 9:05:44 PM

CLICK ON THE MAGNIFYING GLASS ICON:

Fetcher[
/* Basic Filter for newbies and old pros */

set{E36b,days(ema(3) is above ema(6),100)}
set{E36a,days(ema(3) is below ema(6),100)}
set{E3xE6, E36a - E36b}

set{E50200b,days(ma(50) is above ma(200),100)}
set{E50200a,days(ma(50) is below ma(200),100)}
set{M50xM200, E50200a - E50200b}

set{E1326b,days(ema(13) is above ema(26),100)}
set{E1326a,days(ema(13) is below ema(26),100)}
set{E13xE26, E1326a - E1326b}

set{CCb,days(close is above close 1 day ago,100)}
set{CCa,days(close is below close 1 day ago,100)}
set{CxC, CCa - CCb}

set{E5b,days(close is above ema(5),100)}
set{E5a,days(close is below ema(5),100)}
set{CxE5, E5a - E5b}


set{E50b,days(close is above ma(50),100)}
set{E50a,days(close is below ma(50),100)}
set{CxM50, E50a - E50b}

set{E200b,days(close is above ma(200),100)}
set{E200a,days(close is below ma(200),100)}
set{CxM200, E200a - E200b}


set{T10, count(10 day slope of the close above 0,1)}
set{T60, count(60 day slope of the close above 0,1)}
set{T200, count(200 day slope of the close above 0,1)}

Set{a1, T200 * 1}
Set{a2, T60 * 10}
Set{a3, T10 * 100}

Set{aa, a1 + a2}
Set{TREND, aa + a3}

set{v, volume 1 day ago}
set{volinc, volume - v}
set{volpc, volinc / v}
set{volpct, volpc * 100}

set{VolZ, days(volume < 1,100)}
set{VolUp, days(volume is below volume 1 day ago,100)}
set{VolDn, days(volume is above volume 1 day ago,100)}
set{VolCnt, VolUp - VolDn}

set{vck1, volume 1 day ago }
set{vck, volume / vck1 }
set{vdbl, days(vck < 2, 100)}


set{PARBuy, count(close crossed above Parabolic SAR, 5) }
set{DMIBuy, count( di(14) Difference crossed above 0 , 5) }
set{DMIBuyX, count( di(14) Difference above 0 , 1) }

set{PARSell, count(close crossed below Parabolic SAR, 5) }
set{DMISell, count( di(14) Difference crossed below 0, 5) }
set{DMISellX, count( di(14) Difference below 0, 1) }

set{PARSBuy1, PARBuy * DMIBuy}
set{PARSBuy, PARSBuy1 * DMIBuyX}

set{PARSSell1, PARSell * DMISell}
set{PARSSell, PARSSell1 * DMISellX}

set{PARSTrade, PARSBuy + PARSSell}

set{HiOp, high - open}

and add column VolCnt
and add column Vdbl
and add column volpct

and add column HiOp
and add column Trend

and add column CxC {CxC_}
and add column CxE5 {CxE5}

and add column E3xE6 {E3xE6}
and add column E13xE26 {E13xE26}


and add column CxM50
and add column CxM200
and add column M50xM200

add column rsi(2)
add column weekly rsi(2)

add column PARSBuy
add column PARSSell

close above 1
volume above 1000000

sort column 7 descending

and draw Parabolic SAR
and draw +di(14)
and draw -di(14)
and draw adx(14)
and draw di(14) difference
]



Now take the basic filter above and add a line to only show stocks where the close is crossing above the ma(50)... a very popular bullish signal


Fetcher[
/* Basic Filter for newbies and old pros */

set{E36b,days(ema(3) is above ema(6),100)}
set{E36a,days(ema(3) is below ema(6),100)}
set{E3xE6, E36a - E36b}

set{E50200b,days(ma(50) is above ma(200),100)}
set{E50200a,days(ma(50) is below ma(200),100)}
set{M50xM200, E50200a - E50200b}

set{E1326b,days(ema(13) is above ema(26),100)}
set{E1326a,days(ema(13) is below ema(26),100)}
set{E13xE26, E1326a - E1326b}

set{CCb,days(close is above close 1 day ago,100)}
set{CCa,days(close is below close 1 day ago,100)}
set{CxC, CCa - CCb}

set{E5b,days(close is above ema(5),100)}
set{E5a,days(close is below ema(5),100)}
set{CxE5, E5a - E5b}


set{E50b,days(close is above ma(50),100)}
set{E50a,days(close is below ma(50),100)}
set{CxM50, E50a - E50b}

set{E200b,days(close is above ma(200),100)}
set{E200a,days(close is below ma(200),100)}
set{CxM200, E200a - E200b}


set{T10, count(10 day slope of the close above 0,1)}
set{T60, count(60 day slope of the close above 0,1)}
set{T200, count(200 day slope of the close above 0,1)}

Set{a1, T200 * 1}
Set{a2, T60 * 10}
Set{a3, T10 * 100}

Set{aa, a1 + a2}
Set{TREND, aa + a3}

set{v, volume 1 day ago}
set{volinc, volume - v}
set{volpc, volinc / v}
set{volpct, volpc * 100}

set{VolZ, days(volume < 1,100)}
set{VolUp, days(volume is below volume 1 day ago,100)}
set{VolDn, days(volume is above volume 1 day ago,100)}
set{VolCnt, VolUp - VolDn}

set{vck1, volume 1 day ago }
set{vck, volume / vck1 }
set{vdbl, days(vck < 2, 100)}


set{PARBuy, count(close crossed above Parabolic SAR, 5) }
set{DMIBuy, count( di(14) Difference crossed above 0 , 5) }
set{DMIBuyX, count( di(14) Difference above 0 , 1) }

set{PARSell, count(close crossed below Parabolic SAR, 5) }
set{DMISell, count( di(14) Difference crossed below 0, 5) }
set{DMISellX, count( di(14) Difference below 0, 1) }

set{PARSBuy1, PARBuy * DMIBuy}
set{PARSBuy, PARSBuy1 * DMIBuyX}

set{PARSSell1, PARSell * DMISell}
set{PARSSell, PARSSell1 * DMISellX}

set{PARSTrade, PARSBuy + PARSSell}

set{HiOp, high - open}

and add column VolCnt
and add column Vdbl
and add column volpct

and add column HiOp
and add column Trend

and add column CxC {CxC_}
and add column CxE5 {CxE5}

and add column E3xE6 {E3xE6}
and add column E13xE26 {E13xE26}


and add column CxM50
and add column CxM200
and add column M50xM200

add column rsi(2)
add column weekly rsi(2)

add column PARSBuy
add column PARSSell

close above 1
volume above 1000000

sort column 7 descending

and draw Parabolic SAR
and draw +di(14)
and draw -di(14)
and draw adx(14)
and draw di(14) difference

/* JUST ADD YOUR SELECTION CRITERIA BELOW */

show stocks where the close is crossing above the ma(50)

]



Now you just get the stocks meeting your selection criteria but you still have all the columns with the information you'll need to make your selection/trading decision. And all I did was add 1 line of SF code. See how simple it is!!

I hope this helps.

MAY ALL YOUR FILLS BE COMPLETE.




corsino
259 posts
msg #36600
Ignore corsino
7/1/2005 9:58:40 AM

Rumpled One
I realize you must spend considerable time creating filters, so it's not my intent to criticize you. I have tried to backtest several of your lengthy filters, usually without success. It seems that your filters overwhelm the SF software.In this particular filter, I did get a list of stocks by clicking on the hourglass, but absolutely nothing happens when I tried the SF backtest feature.


TheRumpledOne
6,362 posts
msg #36602
Ignore TheRumpledOne
7/1/2005 10:55:14 AM

Well, I can't get the backtest to work either.. but I don't really care about the backtest.

You can backtest all you want but backtesting is NOT going to help you once you enter a trade.

That's when trading skill and money management take over.

MAY ALL YOUR FILLS BE COMPLETE.


snowfamily1
2 posts
msg #36606
Ignore snowfamily1
7/1/2005 11:54:59 AM

I was able to run the backtest. Here are the results

There were 1692 total stocks entered. Of those, 1442 or 85.22% were complete and 250 or 14.78% were open.
Of the 1442 completed trades, 736 trades or 51.04%resulted in a net gain.
Your average net change for completed trades was: 0.60%.
The average draw down of your approach was: -6.37%.
The average max profit of your approach was: 7.20%
The Reward/Risk ratio for this approach is: 1.16
Annualized Return on Investment (ROI): 8.54%, the ROI of ^SPX was: 0.00%.



alf44
2,025 posts
msg #36611
Ignore alf44
7/1/2005 2:08:29 PM

Run it ?

Backtest it ?

I'd be satisfied to just understand it !

It's like using a Sledge Hammer to crack a Peanut...it might do the job...but is it really neccesary ?


alf44





corsino
259 posts
msg #36620
Ignore corsino
7/1/2005 8:24:26 PM

Actually, a skilled daytrader probably doesn't need a filter. Before computers, filters, etc.., now-famous stock traders just "read the tape" , and basically the same thing can be done today with real-time quotes. But to a swing trader, who is not glued to a computer all day, a filter can be of help in reducing the number of stocks to watch. However, relying on a filter too much can be harmful to your pocketbook too.
In "playing around" backtesting filters, I've come to the conclusion that some results are misleading, particularly the ROI. In tweeking filters to obtain higher and higher ROI's the number of stocks decreases to the point where ONE stock that does abnormally well, completely distorts the ROI. My thinking is that the win/loss ratio is better than the ROI in judging a filter.




MrBid
16 posts
msg #36629
Ignore MrBid
7/2/2005 6:36:18 AM

Corsino, you said :
"the win/loss ratio is better than the ROI in judging a filter".

I agree with that BUT another very important factor to fully validate
your win/loss ratio is the number of stocks covered by your backtest !

It's stupid to announce that Mister X has a win/loss ratio of 80%
or a ROI of 2000% if only few stocks (< 30) have been covered !!!!!

I think a good backtest should, at least covers more than 50 stocks
for a 1 year timeframe.



corsino
259 posts
msg #36630
Ignore corsino
7/2/2005 10:37:39 AM

MrBid
Of course you are absolutely right. You have to have enough stocks to pick from. Since we can only keep 15 in the backtesting list, that's one of the factors I look at in deciding whether or not to delete the filter. Actually, I try to keep filters whose results are based on at least 100 trades, not lower than a 55/45 w/l, a positive ROI, and backtests consistent for the last two years. I decide which stock to buy by looking at the chart and reading the recent news on the stock.


StockFetcher Forums · Filter Exchange · Basic Filter for newbies and old pros...<< 1 2 3 4 5 ... 14 >>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 2016 - 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