StockFetcher Forums · Filter Exchange · Range Contraction/Expansion Filter << 1 ... 4 5 6 7 8 ... 12 >>Post Follow-up
alf44
2,025 posts
msg #52739
Ignore alf44
modified
7/1/2007 11:59:49 PM

conyeuchua,

Just so you understand...the "myROC" code in the filter is there to define MY OWN Rate of Change indicator...a simple 2 period ROC. If you choose to use the Rate of Change (ROC) that SF provides it comes along with a 13 period MA of the ROC. I didn't want to see that "slow line" (ie the 13 period MA) included in the ROC (displayed on the SF Charts)...so as a way to avoid it...I defined "my own" ROC.

The "my roc" code gave me a way to compute the "roc^" column too. More about this column later in the post.

Now...the two ROC related columns do NOT show actual ROC values.

What the rocpiv (ROC pivot) column shows is the closing price (tomorrow) that will either maintain the current direction of the ROC(2) indicator...OR...turn it in the other direction.

That ROC pivot # is derived like this:

----------------------------------

Day 1 = Today's Close
Day 2 = Yesterday's Close
Day 3 = Close 2 days ago

...so the ROC pivot # for tomorrow will be...

Pivot = Day 1 (-) Day 3 (+) Day 2

----------------------------------

After you start watching these ROC pivots for a while, you can begin to get a "feel" for when the stock will really have to "reach" for that Pivot #...and by knowing when the momentum is likely to turn, you can "anticipate" the movement, up or down, for the day. It helps you establish a "trading bias" for which way the stock might move next. No long-term implications.

What the ROC(2) really is...or at least the way I and others use it...is a proxy to gauge the "buy day", "sell day", "sell short day" rhythm that George Douglas Taylor wrote about many years ago. This is just a short-term indicator, used to try and determine 2 or 3 day market swings.

And that brings us to the "roc^" column...

What the roc^ column shows is how many consecutive days the ROC(2) has been moving either...UP (+ numbers)...or...DOWN (- numbers). When the 2 period ROC moves 2 or 3 days in one direction...you can begin to expect it to turn in the other direction.

---------------------------------

..."how do you approach it ?"

I always start by FIRST pulling up a daily chart for the stock. It ALWAYS starts with the chart !

Then...I look at those ROC pivots AND the number of days the ROC(2) has been either UP or DOWN. This helps to give me a "trading bias" for how that stock might move tomorrow.

From there I will take note of the trend column to see how the EMA(10), EMA(30) & EMA(150) stack up.

Then a quick look at the 20hilo column to see if the stock is at a 20 day HIGH or LOW.

Next, the clo^ , lo^ & hi^ columns to see if the stock is making consecutive higher/lower Closes, Lows or Highs.

For each stock I will glance at my momentum columns...

...for overbought/oversold - %k7

...for EXTREME overbought/oversold - rsi2

Then, within the context of all this I will start to look at my 13 different pattern columns, while glancing at the 6/100 volatility ratio column...vrat...to see if recent volatility is contracting compared to past volatility...AND the day position column...dp...to see if the stock closed in the TOP or BOTTOM half of it's daily range.

This intricate combination of chart/indicators/column information & patterns are considered together...and from it all I try to form a composite picture...an educated assessment about how to best play that stock's price movement tomorrow...LONG...SHORT...or, NO PLAY at all !

Regards,

alf44

alf44
2,025 posts
msg #52740
Ignore alf44
7/2/2007 12:08:52 AM

Arooj,

Thanks again for the comments and congrats on the 30" monitor. I'm envious !

In the coming days/weeks I will try to add more to my previous post.

I at least hopefully got a start on trying to offer some clarification as to how I go about deciphering ALL the info being displayed.

Regards,

alf44

 conyeuchua83 postsmsg #52742- Ignore conyeuchua 7/2/2007 1:03:45 AMAlf44, Thank you so much for taking the time to explain your approach. It helps me appreciate your "work of art" more. Conyeuchua
papagatorga
124 posts
msg #52886
Ignore papagatorga
7/8/2007 8:57:40 PM

alf44- I have been trying to find a filter that will reflect what you call Range Contraction. I copied the following portion of one of your notes (Show stocks in which today's daily range (today's high price minus low price) is narrower than the previous 6 days) This produced no results. What I am searching for are stocks whose volatility has significantly decreased and their price is going sideways in a narrow range. I don't care if the period is 5 days or 5 weeks, it's the pattern I'm seeking. One can see it very well with Bollinger Bands where the bands narrow and go parallel. I asked StockFetcher for help and they gave me a filter but it wasn't that close to what I was seeking. I searched Range Contraction and got no hits, not even your filters. Any help would be appreciated. Papagator

alf44
2,025 posts
msg #52894
Ignore alf44
modified
7/8/2007 11:05:38 PM

papagatorga,

My Range Contraction/Expansion Filter is made up of several (13) different scans...designed to identify SPECIFIC 1 or 2 day price contraction/expansion patterns (not counting all the other stuff).

The one you picked out (from the bunch) happens to be an NR7...that is a day (1 day) whose range is the narrowist range of the last 6 days. Often following an NR7...you will see a day (or days) of Range Expansion...that is Trend Days or Wide Range Days.

----------------------------------
Here is a simple NR7 scan applied to the NASDAQ 100...

Fetcher[/* NR7 */

Show all stocks where Day Point Range reached a new 7 day Low
Market is NASDAQ 100
chart-time is 3 months
]

This IS what it is !

The NR7 is JUST 1 day's price action...specifically RANGE...compared to the 6 previous days ! Based on your post...this may NOT be what you're after.
-------------------------------

You might try some sort of Historical Volatility based scan. I have just such an HV scan as part of the criteria in my Range Contraction/Expansion Filter (column "vrat"). What this "vrat" column represents is the RATIO of a 6 day Historical Volatility to a 100 day Historical Volatility. I am looking for the 6 day HV to be LESS THAN 50% of the 100 day HV (a "1" in the "vrat" column represents this).

----------------------------------
Here is a simple Historical Volatility scan applied to the NASDAQ 100...

Fetcher[/* Historical Volatility Ratio Calculation (compare a 6 day to a 100 day Historical Volatility) */

set{HistVol6, Historical Volatility(6,1)}
set{HistVol100, Historical Volatility(100,1)}
set{HistVolRatio, HistVol6 / HistVol100}
set{HVRatio, count(HistVolRatio is less than .51, 1)}

Show all stocks where HVRatio is above 0
Market is NASDAQ 100
chart-time is 3 months
]

This will return stocks whose 6 day HV is less than 50% of the 100 day HV...ie. Range Contraction relative to the last 100 days !
----------------------------------

Regards,

alf44

papagatorga
124 posts
msg #52908
Ignore papagatorga
7/9/2007 2:24:55 PM

alf44 - appreciate the quick response. It doesn't seem to provide exactly what I am looking for. Most of the Bollinger Bands are expanding not running parallel. I'll keep looking. Thanks

chetron
2,817 posts
msg #64590
Ignore chetron
7/1/2008 6:50:29 PM

pop

alf44
2,025 posts
msg #67174
Ignore alf44
modified
9/11/2008 2:39:36 PM

This is the current version of the Range Contraction/Expansion Filter !

A few NEW things since the last version I posted...I've cleaned up some things...added some NEW patterns...refined my displayed Technical Indicators...and even created a NEW Trend Indicator based on MMAs !

This continues to be a work in progress...

...as I trade with it and see things that need to be tweaked / added / eliminated and that would be helpful in my trading...they shall be tweaked / added / eliminated !!!

---------------------------------------------------------

Fetcher[/* BRAND NEW Range Contraction/Expansion Scan Filter V v.2.4 - developing */

/* PRICE PATTERNS */

/* Shark-32 ("shark") --> (2 Consecutive Inside Days) */
set{IDhi_2, count(High 1 day ago is below High 2 days ago, 1)}
set{IDlo_2, count(Low 1 day ago is above Low 2 days ago, 1)}
set{IDhilo_2, IDhi_2 * IDlo_2}

set{IDhi_1, count(High is below High 1 day ago, 1)}
set{IDlo_1, count(Low is above Low 1 day ago, 1)}
set{IDhilo_1, IDhi_1 * IDlo_1}

set{ID21, IDhilo_2 * IDhilo_1}

/* --------------------------------------------- */

/* IDs ("...id") (Inside Days -> H/L Range inside H/L Range 1 day ago) */
set{IDhi, count(High below High 1 day ago, 1)}
set{IDlo, count(Low above Low 1 day ago, 1)}
set{ID, IDhi * IDlo}

/* --------------------------------------------- */

/* NR7s ("nr.7") (Narrowist Range of the last 7 days) */
set{NR7, count(Day Point Range reached a new 7 day Low, 1)}

/* ---------------------------------------------- */

/* NR4s ("nr.4") (Narrowist Range of the last 4 days) */
set{NR4, count(Day Point Range reached a new 4 day Low, 1)}

/* ----------------------------------------------- */

/* Gaps ("gap") (Unfilled Gaps) */
set{Gapup, count(Low is above High 1 day ago, 1)}
set{Gapdwn, count(High is below Low 1 day ago, 1)}
set{GapupORGapdwn, Gapup + Gapdwn}

/* ------------------------------------------------ */

/* Doji ("doji") (H/L Rng above .20 w/Candle Body less than 30% of H/L Rng) */
set{HiLoRng, High - Low}
set{ClOpRng, abs(Close minus Open)}
set{ClOp_HiLo_ratio, ClOpRng / HiLoRng}
set{Range, count(HiLoRng is above .20, 1)}
set{Body, count(ClOp_HiLo_ratio is less than .30, 1)}
set{doji, Range * Body}

/* -------------------------------------------------- */

/* 8020 ("8020") (Open AND Close take place at extremes in the Day Positions ...ie...Open>80%,Close<20% or, vice versa) */

/* Day Position Calculations for 80/20 Days */
set{Range1, High - Low}
set{CloLodiff, Close - Low}
set{OpLodiff, Open - Low}
set{dayposcl, CloLodiff / Range1}
set{dayposop, OpLodiff / Range1}

/* 80/20 Day with an UP Close */
set{dpCloUp, count(dayposcl is above .80, 1)}
set{dpOpUp, count(dayposop is below .20, 1)}
set{Up8020, dpCloUp * dpOpUp}

/* 80/20 Day with a DOWN Close */
set{dpOpDwn, count(dayposop is above .80, 1)}
set{dpCloDwn, count(dayposcl is below .20, 1)}
set{Dwn8020, dpOpDwn * dpCloDwn}
set{8020upORdwn, Up8020 + Dwn8020}

/* --------------------------------------------------- */

/* One Day Reversal ("odr") (5 Day H / L w/Up or Down Close Above/Below 50% Day Position) */

/* "ODR" 50% Day Position Calculation */
set{HLrng, High - Low}
set{HLrng50, HLrng * .50}
set{DP50, Low + HLrng50}

/* "ODR" UP */
set{5daylo, count(Low reached a new 5 day Low, 1)}
set{ODR_UpClo, count(Close is above DP50, 1)}
set{ODR_Up, 5daylo * ODR_UpClo}

/* "ODR" DOWN */
set{5dayhi, count(High reached a new 5 day High, 1 )}
set{ODR_DwnClo, count(Close is below DP50, 1)}
set{ODR_Dwn, 5dayhi * ODR_DwnClo}

/* "ODR" UP or DOWN */
set{ODR_upORdwn, ODR_Up + ODR_Dwn}

/* ---------------------------------------------- */

/* ROC(2) Divergence (".div") (one day ROC2 pos/neg divergence with Close) */

/* ROC(2) Bullish Divergence Calculation */
set{3daylo, count(Low reached a new 3 day Low, 1)}
set{ROCdivpos1, count(ROC(2) above ROC(2) 1 day ago, 1)}
set{ROCdivpos2, count(ROC(2) 1 day ago below ROC(2) 2 days ago, 1)}
set{ROCbulldiv1, 3daylo * ROCdivpos1}
set{ROCbulldiv2, ROCbulldiv1 * ROCdivpos2}

/* ROC(2) Bearish Divergence Calculation*/
set{3dayhi, count(High reached a new 3 day High, 1)}
set{ROCdivneg1, count(ROC(2) below ROC(2) 1 day ago, 1)}
set{ROCdivneg2, count(ROC(2) 1 day ago above ROC(2) 2 days ago, 1)}
set{ROCbeardiv1, 3dayhi * ROCdivneg1}
set{ROCbeardiv2, ROCbeardiv1 * ROCdivneg2}

/* ROC(2) Bullish OR Bearish Divergence */
set{ROCbullORbeardiv, ROCbulldiv2 + ROCbeardiv2}

/* --------------------------------------------------- */

/* WR4s ("wr.4") (Widest Range of the last 4 days) */
set{WR4, count(Day Point Range reached a new 4 day High, 1)}

/* ---------------------------------------------------- */

/* WR7s ("wr.7") (Widest Range of the last 7 days) */
set{WR7, count(Day Point Range reached a new 7 day High, 1)}

/* ---------------------------------------------------- */

/* ODs ("od") (Outside Days -> H/L Range outside H/L Range 1 day ago) */
set{ODhi, count(High above High 1 day ago, 1)}
set{ODlo, count(Low below Low 1 day ago, 1)}
set{OD, ODhi * ODlo}

/* ----------------------------------------------------- */

/* Windups ("wup") (Outside Day followed by an Inside Day) */
set{WUp_ODhi, count(High 1 day ago above High 2 days ago, 1)}
set{WUp_ODlo, count(Low 1 day ago below Low 2 days ago, 1)}
set{WUp_ODhilo, WUp_ODhi * WUp_ODlo}

set{WUp_IDhi, count(High below High 1 day ago, 1)}
set{WUp_IDlo, count(Low above Low 1 day ago, 1)}
set{WUp_IDhilo, WUp_IDhi * WUp_IDlo}
set{WUp, WUp_ODhilo * WUp_IDhilo}

/* ------------------------------------------------------- */

/* Crable Hooks ("hook") */

/* "BULL" Hook --> (Open above prev. High with Close below prev. Close & Range < prev. day's Range) */

set{RangeDWN, High - Low}
set{RangeDWN_1, High 1 day ago - Low 1 day ago}

set{RangeHookDWN, count(RangeDWN < RangeDWN_1, 1)}
set{OpenHookDWN, count(Open above High 1 day ago, 1)}
set{CloseHookDWN, count(Close below Close 1 day ago, 1)}

set{Hook_DWN_A, RangeHookDWN * OpenHookDWN}
set{BullHookDWN, Hook_DWN_A * CloseHookDWN}

/* "BEAR" Hook --> (Open below prev. Low with Close above prev. Close & Range < prev. day's Range) */
set{RangeUP, High - Low}
set{RangeUP_1, High 1 day ago - Low 1 day ago}

set{RangeHookUP, count(RangeUP < RangeUP_1, 1)}
set{OpenHookUP, count(Open below Low 1 day ago, 1)}
set{CloseHookUP, count(Close above Close 1 day ago, 1)}

set{Hook_UP_A, RangeHookUP * OpenHookUP}
set{BearHookUP, Hook_UP_A * CloseHookUP}

/* BearHookUP OR BullHookDOWN */
set{BearHookUPorBullHookDOWN, BearHookUP + BullHookDWN}

/* ------------------------------------------------- */

/* Stowell Naked Close ("naked") */

/* "Bull Naked LONG" --> (Close below prev. Low with 10 day Slope of EMA(13) & 5 day Slope of Lows > 0) */

set{nakedTrendUP, count(10 day Slope of EMA(13) above 0, 1)}
set{nakedLo, count( 5 day Slope of Low above 0, 1)}
set{nakedClLow, count(Close below Low 1 day ago, 1)}

set{naked1, nakedTrendUP * nakedLo}
set{nakedLONG, naked1 * nakedClLow}

/* "Bear Naked SHORT" --> (Close above prev. High with 10 day Slope of EMA(13) & 5 day Slope of Highs < 0) */

set{nakedTrendDWN, count(10 day Slope of EMA(13) below 0, 1)}
set{nakedHi, count( 5 day Slope of High below 0, 1)}
set{nakedClHigh, count(Close above High 1 day ago, 1)}

set{naked2, nakedTrendDWN * nakedHi}
set{nakedSHORT, naked2 * nakedClHigh}

/* Naked Close LONG or SHORT */
set{nakedLoS, nakedLONG + nakedSHORT}

/* ----------------------------------------------------- */

/* Williams Hidden Smash ("smash") */

/* HiLo Range */
set{HLrng1, High - Low}

/* "Bull Hidden Smash LONG" --> (Close above prev. Close but Close < 25% day pos. & Close < Open) */

/* "Smash" 25% Day Position Calculation */
set{HLrng25, HLrng1 * .25}
set{DP25, Low + HLrng25}

/* "Bull Smash" Fetch */
set{SmashCloA1, count(Close above Close 1 day ago,1)}
set{SmashCloB1, count(Close below Open, 1)}
set{SmashDP1, count(Close below DP25, 1)}

set{SmashA1, SmashCloA1 * SmashCloB1}
set{SmashA2, SmashA1 * SmashDP1}

/* "Bear Hidden Smash SHORT" --> (Close below prev. Close but Close > 75% day pos. & Close > Open) */

/* "Smash" 75% Day Position Calculation */
set{HLrng75, HLrng1 * .75}
set{DP75, Low + HLrng75}

/* "Bear Smash" Fetch */
set{SmashCloA11, count(Close below Close 1 day ago,1)}
set{SmashCloB11, count(Close above Open, 1)}
set{SmashDP11, count(Close above DP75, 1)}

set{SmashA11, SmashCloA11 * SmashCloB11}
set{SmashA22, SmashA11 * SmashDP11}

/* LONG or SHORT Hidden Smash */
set{LOS_HidSmash, SmashA2 + SmashA22}

/* --------------------------------------------------- */

/* PRICE ACTION STUFF ... AT A GLANCE */

/* Trend (short/intermediate/long-term) --> ("trend") */
set{T13_34, count(EMA(13) above EMA(34), 1)}
set{T13_90, count(EMA(13) above EMA(90), 1)}
set{T34_90, count(EMA(34) above EMA(90), 1)}
set{T1, T13_34 * 1}
set{T2, T13_90 * 10}
set{T3, T34_90 * 100}
set{Trend12, T1 + T2}
set{Trend123, Trend12 + T3}

/* ---------------- */

/* 20 Day High/Low Breakout Check ("20hilo") */

/* 20 day HIGH */
set{20dayhi, count(High reached a new 20 day High, 1 )}

/* 20 day LOW */
set{20daylo, count(Low reached a new 20 day Low, 1)}

/* 20 day HIGH or LOW */
set{20day_hiORlo, 20dayhi + 20daylo }

/* ------------------ */

/* Consecutive days Close either Up(+) or Down(-) --> ("..clo^") */
set{daysCloseUp, days(Close below Close 1 day ago,100)}
set{daysCloseDown, days(Close above Close 1 day ago,100)}
set{daysClosecurdir, daysCloseUp - daysCloseDown}

/* Consecutive days LOWS either Up(+) or Down(-) --> ("..lo^") */
set{daysLOWSUp, days(Low below Low 1 day ago,100)}
set{daysLOWSDown, days(Low above Low 1 day ago,100)}
set{daysLOWScurdir, daysLOWSUp - daysLOWSDown}

/* Consecutive days HIGHS either Up(+) or Down(-) --> ("..hi^") */
set{daysHIGHSUp, days(High below High 1 day ago,100)}
set{daysHIGHSDown, days(High above High 1 day ago,100)}
set{daysHIGHScurdir, daysHIGHSUp - daysHIGHSDown}

/* ------------------- */

/* Day Position Calculation ("..dp") */
set{Range1a, High - Low}
set{CloLodiffa, Close - Low}
set{dayposcla, CloLodiffa / Range1a}

/* --------------------- */

/* Historical Volatility Ratio ("vrat") (compare a 6 day to a 100 day Historical Volatility) */

/* Historical Volatility Ratio Calculation */
set{HistVol6, Historical Volatility(6,1)}
set{HistVol100, Historical Volatility(100,1)}
set{HistVolRatio, HistVol6 / HistVol100}

set{HVRatio, count(HistVolRatio is less than .51, 1)}

/* ------------------------------------------------------- */

/* 2 PERIOD ROC STUFF */

/* ROC2 Pivot ("rocpiv") */

/* ROC2 Pivot Calculation --> (Closing price (tomorrow) that will either maintain the current direction of the ROC(2) indicator...OR...turn it in the other direction) */

set{ROCpivA, Close - Close 2 days ago}
set{ROCpiv, ROCpivA + Close 1 day ago}

/* ROC2 Momentum ("roc^") */

/* ROC2 Momentum Calculation --> Days ROC2 either Up(+) or Down(-) */
set{daysROCup, days(ROC(2) below ROC(2) 1 day ago,100)}
set{daysROCdwn, days(ROC(2) above ROC(2) 1 day ago,100)}
set{dayscurdir, daysROCup - daysROCdwn}

/* ------------------------------------------------------ */

/* TRADE ENTRY / EXIT STUFF */

/* Crable Opening Range Breakout ("stretch")
(Average of the differences between the Open each day and the closest extreme (ie. H / L) to the Open each day over the previous 10 days...the "stretch" is then add. / subt. to today's Open giving price levels for either a Long / Short entry */

/* ORB "STRETCH" Calculations */
set{diff1, abs(Open minus High)}
set{diff2, abs(Open minus Low)}
set{stretch_diff, min(diff1,diff2)}

set{stretch_sum, sum(stretch_diff,10)}
set{stretch_avg10, stretch_sum / 10}

/* Profit Target ("profit") -> (An amount based on 66% of a 10 day average of the H / L Range that when add. / subt. to entry gives a "theoretical profit target" ) */

/* Profit Target Calculations */
set{HiLo_rng, High minus Low}
set{HiLo_rngsum, sum(HiLo_rng,10)}
set{HiLo_rngavg, HiLo_rngsum / 10}

set{ProfTarget_66, HiLo_rngavg * .66}

/* ----------------------------------------------- */

/* TECHNICAL INDICATORS */

/* Defining "my ROC(2)" Indicator */
set{myROC, ROC(2)}

/* Defining "myOSC(3,8)" Indicator */
set{myOSC, EMA(3) - EMA(8)}

/* Defining "trend(13) of myOSC(3,8)" Indicator */
set{myOSCtrend, CEMA(myOSC,13)}

/* Defining my Multiple Moving Average TREND Indicator */
set{typprice_A, High 3 day High + Low 3 day Low}
set{typprice_sumA, typprice_A + Close}
set{typpriceA, typprice_sumA / 3}

/* (My version of Guppy MMAs...a sorta "moving daily pivot" based on today's Close & the 3 day Highs and Lows...displayed as an array of 2 groups of EMAs with different time frames) */

/* --------------------------------------------------------- */

/* SYMBOL SELECTION */

Apply to symlist(QQQQ,QLD,QID,SPY,SSO,SDS,DIA,DDM,DXD,MDY,MVV,MZZ)

/* Market is NASDAQ 100 */
/* Market is S&P 500 */
/* Market is DOW 30 */

/* ------------------------------------------ */

/* COLUMNS */

/* Columns (Trend Strength) */

/* Columns (Patterns) */

/* Columns (ROC2 Momentum "stuff") */

/* Crabel ORB stuff */

/* ------------------------------------ */

/* INDICATORS */

/* Indicators MAs */
draw EMA(13)
draw EMA(34)
draw EMA(90)

/* Indicators Momentum and Trend */
draw myROC
draw myROC line at 0

draw myOSC
draw myOSC line at 0
draw CEMA(myOSC,13)

draw CCI(34) line at 0
draw CCI(34) line at -100
draw CCI(34) line at +100
draw CEMA(CCI(34),5)

draw CEMA(typpriceA, 2)
draw CEMA(typpriceA, 3)
draw CEMA(typpriceA, 5)
draw CEMA(typpriceA, 8)
draw CEMA(typpriceA, 13)

draw CEMA(typpriceA, 26)
draw CEMA(typpriceA, 30)
draw CEMA(typpriceA, 34)
draw CEMA(typpriceA, 40)
draw CEMA(typpriceA, 50)

do not draw typpriceA

sort column 42 descending
]

-----------------------------------------------------------------------

Regards,

alf44

alf44
2,025 posts
msg #67176
Ignore alf44
modified
9/11/2008 2:42:28 PM

chetron...now that this "filter posting issue" has been resolved...in the interest of keeping this thread "on topic" ...

Regards,

alf44

chetron
2,817 posts
msg #67177
Ignore chetron
modified
9/11/2008 2:54:08 PM

a

 StockFetcher Forums · Filter Exchange · Range Contraction/Expansion Filter << 1 ... 4 5 6 7 8 ... 12 >>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.