StockFetcher Forums · Filter Exchange · *** TESTING *** WORK IN PROGRESS ***<< 1 ... 5 6 7 8 9 >>Post Follow-up
nibor100
1,081 posts
msg #161764
Ignore nibor100
4/4/2025 11:43:13 AM

Here's some fun facts from exporting a CSV file to excel from my 1 year backtest filter posted previously.

260 stocks qualified one or more times for Tro's criteria shown in his video.2,044 trades in the year.

87.7% of the trades were winners, avg winning trade +5.32%.

10 symbols had no winners, one of those lost twice.

Looks like Tro could avg 8 of those trades per day, and buying his standard 1,000 shares , he'd recoup at a minimum seven $50 dollar bills, provided he exited at the Highs of the day.

Though not an intent of his system, if held on, 4.2% of the stocks turned into multibaggers based on a $5 entry price, (only way to get specific individual trade entry prices, using SF, is to go thru charts one by one)

Ed S.

By the way, if one changes the offset date to a year earlier, stats for the prior year can be seen and so on for 2 to 3 times.






TheRumpledOne
6,525 posts
msg #161765
Ignore TheRumpledOne
4/5/2025 12:02:56 PM

Fetcher[

set{H20Lb,days(close above high 20 day low,100)}
set{H20La,days(close below high 20 day low,100)}
set{CxH20L, H20La - H20Lb}


set{Vb,days(volume above 1000000,30)}
set{Va,days(volume below 1000000,30)}
set{Vx1M, Va - Vb}

and add column CxH20L
and add column Vx1M



market is not otcbb
and add column separator
add column exchange
add column industry
add column sector
and add column separator

close above .90

SORT COLUMN 2 ASCENDING
]



TheRumpledOne
6,525 posts
msg #161778
Ignore TheRumpledOne
modified
4/13/2025 2:36:34 PM

Fetcher[

set{T5, count(5 day slope of the close above 0,1)}
set{T13, count(13 day slope of the close above 0,1)}
set{T34, count(34 day slope of the close above 0,1)}

Set{a1, T34 * 1}
Set{a2, T13 * 10}
Set{a3, T5 * 100}

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

set{H20Lb,days(close above high 20 day low,100)}
set{H20La,days(close below high 20 day low,100)}
set{CxH20L, H20La - H20Lb}


set{Vb,days(volume above 1000000,30)}
set{Va,days(volume below 1000000,30)}
set{Vx1M, Va - Vb}

and add column CxH20L
and add column Vx1M
and add column TREND


market is not otcbb
and add column separator
add column exchange
add column industry
add column sector
and add column separator

close BETWEEN .90 AND 5.00
CxH20L BELOW 2
volume above 1000000
TREND above 0

SORT COLUMN 2 ASCENDING

]



TheRumpledOne
6,525 posts
msg #161780
Ignore TheRumpledOne
modified
4/13/2025 3:16:37 PM

Fetcher[
set{T5, count(5 day slope of the close above 0,1)}
set{T13, count(13 day slope of the close above 0,1)}
set{T34, count(34 day slope of the close above 0,1)}

Set{a1, T34 * 1}
Set{a2, T13 * 10}
Set{a3, T5 * 100}

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

/* enter your Upper Limit criteria */
set{UpperLim, High 20 day High}

/* enter your Lower Limit criteria */
set{LowerLim, Low 20 day Low}

set{LimDiff, UpperLim minus LowerLim}
set{PPDiff, CLOSE minus LowerLim}
set{PPDiv, PPDiff / LimDiff}
set{BallOnx, PPDiv * 100}
set{BallOn, round(BallOnx,0)}

/* Turn trades starting below High 20 day Low */

set{ sw1, count( close 1 day ago below open 1 days ago ,1) }
set{ sw2, count( close above open ,1) }
set{ sw3, count( close 1 day ago below high 20 day low,1) }

set{ x1, sw1 * sw2 }
set{ TT, x1 * sw3 }

/* days close above/below the high 20 day low */

set{H20Lb,days(close above high 20 day low,100)}
set{H20La,days(close below high 20 day low,100)}
set{CxH20L, H20La - H20Lb}

/* days volume above below 1 million shares */

set{Vb,days(volume above 1000000,30)}
set{Va,days(volume below 1000000,30)}
set{Vx1M, Va - Vb}

/* PRICE ACTION TRADE LOW BELOW PREVIOUS LOW and CLOSE ABOVE PREVIOUS CLOSE */

set{ sw4, count( low below low 1 days ago ,1) }
set{ sw5, count( close above close 1 days ago ,1) }
set{ LLHC, sw4 * sw5 }


and add column BallOn

and add column CxH20L
and add column TT
and add column TREND

/*
and add column Vx1M

and add column LLHC
*/

market is not otcbb
and add column separator
add column exchange
add column industry
add column sector
and add column separator


close between .90 and 5.00
volume above 1000000
CxH20L below 0
Vx1M below 0

LLHC above 0

/* TT above 0 */


draw TT

draw CxH20L
plottype{CxH20L,zerobar}

draw Vx1M
plottype{Vx1M,zerobar}

draw TREND
plottype{TREND,zerobar}

SORT COLUMN 2 ASCENDING
Chart-time is 8 weeks



]








TheRumpledOne
6,525 posts
msg #161786
Ignore TheRumpledOne
modified
4/15/2025 10:13:26 AM

Fetcher[

set{ pw1, count(close above open 1 day ago,1) }
set{ pw2, count(close above high 1 day ago,1) }
set{ pw3a, high 1 day ago - low 1 day ago }
set{ pw3b, pw3a * 0.5}
set{ pw3, count(close above pw3b, 1 )}
set{ pw4, count(close above low 1 day ago, 1 )}
set{ pw5, count(close above close 1 day ago,1 )}

set{ pw6, pw1 + pw2 }
set{ pw7, pw6 + pw3 }
set{ pw8, pw7 + pw4 }
set{ PASC, pw8 + pw5 }

add column PASC

set{T5, count(5 day slope of the close above 0,1)}
set{T13, count(13 day slope of the close above 0,1)}
set{T34, count(34 day slope of the close above 0,1)}

Set{a1, T34 * 1}
Set{a2, T13 * 10}
Set{a3, T5 * 100}

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

/* enter your Upper Limit criteria */
set{UpperLim, High 20 day High}

/* enter your Lower Limit criteria */
set{LowerLim, Low 20 day Low}

set{LimDiff, UpperLim minus LowerLim}
set{PPDiff, CLOSE minus LowerLim}
set{PPDiv, PPDiff / LimDiff}
set{BallOnx, PPDiv * 100}
set{BallOn, round(BallOnx,0)}

/* Turn trades starting below High 20 day Low */

set{ sw1, count( close 1 day ago below open 1 days ago ,1) }
set{ sw2, count( close above open ,1) }
set{ sw3, count( close 1 day ago below high 20 day low,1) }

set{ x1, sw1 * sw2 }
set{ TT, x1 * sw3 }

/* days close above/below the high 20 day low */

set{H20Lb,days(close above high 20 day low,100)}
set{H20La,days(close below high 20 day low,100)}
set{CxH20L, H20La - H20Lb}

/* days volume above below 1 million shares */

set{Vb,days(volume above 1000000,30)}
set{Va,days(volume below 1000000,30)}
set{Vx1M, Va - Vb}

/* PRICE ACTION TRADE LOW BELOW PREVIOUS LOW and CLOSE ABOVE PREVIOUS CLOSE */

set{ sw4, count( low below low 1 days ago ,1) }
set{ sw5, count( close above close 1 days ago ,1) }
set{ LLHC, sw4 * sw5 }


and add column BallOn

and add column CxH20L
and add column TT
and add column TREND

/*
and add column Vx1M

and add column LLHC
*/

market is not otcbb
and add column separator
add column exchange
add column industry
add column sector
and add column separator


close between .90 and 5.00
volume above 1000000
CxH20L below 0
Vx1M below 0

LLHC above 0

/* TT above 0 */


draw PASC
plottype{PASC,zerobar}

draw TT


draw CxH20L
plottype{CxH20L,zerobar}

draw Vx1M
plottype{Vx1M,zerobar}

draw TREND
plottype{TREND,zerobar}

SORT COLUMN 2 ASCENDING
Chart-time is 8 weeks


]



TheRumpledOne
6,525 posts
msg #161787
Ignore TheRumpledOne
modified
4/15/2025 10:38:25 AM

PASC - PRICE ACTION SCORE

Price Action

1) Price will either breakout of the high, low or both of the previous bar
2) Price will not breakout of the previous bar.
3) Price will either close above a level (line) or not.

There are 4 STATES the current bar can be in when compared to the previous bar:

1) HH - Higher High, Higher Low
2) LL - Lower High, Lower LL
3) HL - Higher High, Lower Low (Outside bar)
4) LH -Lower High, Higher Low (Inside bar)

Compare the current price to the previous bar's open, high, midpoint, low and close. Add 1 if close is above.

The highest possible PASC is 5.

Fetcher[

set{ pw1, count(close above open 1 day ago,1) }
set{ pw2, count(close above high 1 day ago,1) }
set{ pw3a, high 1 day ago - low 1 day ago }
set{ pw3b, pw3a * 0.5}
set{ pw3, count(close above pw3b, 1 )}
set{ pw4, count(close above low 1 day ago, 1 )}
set{ pw5, count(close above close 1 day ago,1 )}

set{ pw6, pw1 + pw2 }
set{ pw7, pw6 + pw3 }
set{ pw8, pw7 + pw4 }
set{ PASC, pw8 + pw5 }

add column PASC



/* STATE CALCULATIONS */

set{xHH,count(high is above high 1 day ago,1)}
set{xLL,count(low is below low 1 day ago,1)}
set{xLH,count(high is below high 1 day ago,1)}
set{xHL,count(low is above low 1 day ago,1)}

set{HH, xHH * xHL }
set{LL, xLL * xLH }
set{IB, xLH * xHL }
set{OB, xHH * xLL }

Set{p1, OB * 1}
Set{p2, IB * 10}
Set{p3, LL * 100}
Set{p4, HH * 1000}

Set{pa, p1 + p2}
Set{pb, p3 + p4}
Set{STATE, pa + pb}

add column STATE

close between .90 and 5.00
volume above 1000000


PASC above 0
PASC 1 day ago below 5


]



TheRumpledOne
6,525 posts
msg #161802
Ignore TheRumpledOne
4/18/2025 8:20:11 PM

Fetcher[


/* Larry Williams Range Type Display */

set{xHH,count(high is above high 1 day ago,1)}
set{xLL,count(low is below low 1 day ago,1)}
set{xLH,count(high is below high 1 day ago,1)}
set{xHL,count(low is above low 1 day ago,1)}

set{HH, xHH * xHL }
set{LL, xLL * xLH }
set{IB, xLH * xHL }
set{OB, xHH * xLL }


Set{Bull, count(close above open,1)}
Set{Bear, count(close below open,1)}

/*
Set{URUC, Bull * HH }
Set{URDC, Bear * HH }

Set{DRUC, Bull * LL}
Set{DRDC, Bear * LL}

Set{IBUC, Bull * IB}
Set{IBDC, Bear* IB}

Set{OBUC, Bull * OB}
*/
Set{OBDC, Bear * OB}



set{xHPC,count(high above close 1 day ago,1)}
add column xHPC
add column OBDC 1 day ago


set{ZZZ, xHPC * OBDC 1 day ago }
add column ZZZ

/*
set{OPP, count(OBDC 1 day ago above 0, 90)}
add column OPP
*/

/*
set{WINS, count(WIN above 0, 90) }
add column WINS
*/

close above .90
volume above 1000000

]



Trying to figure out why the ZZZ blows up the filter!!




nibor100
1,081 posts
msg #161803
Ignore nibor100
4/18/2025 10:03:50 PM

Try using “multiply by” instead of *.
Ed S

jimvin
179 posts
msg #161804
Ignore jimvin
modified
4/18/2025 11:24:13 PM

Yep, that substitution works.

(If you get the "exceeds" message" click on [Fetch Stocks] a second time...)

Fetcher[
/* Larry Williams Range Type Display */

set{xHH,count(high is above high 1 day ago,1)}
set{xLL,count(low is below low 1 day ago,1)}
set{xLH,count(high is below high 1 day ago,1)}
set{xHL,count(low is above low 1 day ago,1)}

set{HH, xHH multiply by xHL }
set{LL, xLL multiply by xLH }
set{IB, xLH multiply by xHL }
set{OB, xHH multiply by xLL }

Set{Bull, count(close above open,1)}
Set{Bear, count(close below open,1)}

/*Set{URUC, Bull multiply by HH }
Set{URDC, Bear multiply by HH }

Set{DRUC, Bull multiply by LL}
Set{DRDC, Bear multiply by LL}

Set{IBUC, Bull multiply by IB}
Set{IBDC, Bear multiply by IB}

Set{OBUC, Bull multiply by OB}*/

Set{OBDC, Bear multiply by OB}

set{xHPC,count(high above close 1 day ago,1)}
add column xHPC
add column OBDC 1 day ago

set{ZZZ, xHPC multiply by OBDC 1 day ago }
add column ZZZ

/*set{OPP, count(OBDC 1 day ago above 0, 90)}
add column OPP*/

/*set{WINS, count(WIN above 0, 90) }
add column WINS*/

close above .90
volume above 1000000
]



StockFetcher Forums · Filter Exchange · *** TESTING *** WORK IN PROGRESS ***<< 1 ... 5 6 7 8 9 >>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.