{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Stock Screener · stocknear

Stock Screener

{filteredData?.length} Matches Found
Popular Strategies popularStrategy("dividendGrowth")} class="cursor-pointer hover:bg-[#27272A]" > Dividend Growth popularStrategy("topGainers1Y")} class="cursor-pointer hover:bg-[#27272A]" > Top Gainers 1Y popularStrategy("topShortedStocks")} class="cursor-pointer hover:bg-[#27272A]" > Top Shorted Stocks popularStrategy("momentumTAStocks")} class="cursor-pointer hover:bg-[#27272A]" > Momentum TA Stocks popularStrategy("underValuedStocks")} class="cursor-pointer hover:bg-[#27272A]" > Undervalued Stocks popularStrategy("strongCashFlow")} class="cursor-pointer hover:bg-[#27272A]" > Strong Cash Flow
{#each strategyList as item} switchStrategy(item)} class="{item?.id === selectedStrategy ? 'bg-[#27272A]' : ''} cursor-pointer sm:hover:bg-[#27272A]" > {item?.title} ({item?.rules?.length}) {/each}
{#if showFilters}
{#if data?.user && selectedStrategy?.length !== 0} {/if} {#if ruleOfList?.length !== 0} {/if}
{#each displayRules as row (row?.rule)}
{row?.label?.length > 20 ? row?.label?.slice(0, 20)?.replace("[%]", "") + "..." : row?.label?.replace("[%]", "")}
(ruleName = row?.rule)}> {#if !["sma20", "sma50", "sma100", "sma200", "ema20", "ema50", "ema100", "ema200", "grahamNumber", "analystRating", "halalStocks", "score", "sector", "industry", "country"]?.includes(row?.rule)}
{:else} {/if} {#if !["sma20", "sma50", "sma100", "sma200", "ema20", "ema50", "ema100", "ema200", "grahamNumber", "analystRating", "halalStocks", "score", "sector", "industry", "country"]?.includes(row?.rule)} {#each row?.step as newValue} {/each} {:else if ["sma20", "sma50", "sma100", "sma200", "ema20", "ema50", "ema100", "ema200", "grahamNumber"]?.includes(row?.rule)} {#each row?.step as item}
event.preventDefault()} >
{/each} {:else} {#each testList.length > 0 && searchQuery?.length > 0 ? testList : searchQuery?.length > 0 && testList?.length === 0 ? [] : row?.rule === "country" ? listOfRelevantCountries : row?.rule === "sector" ? sectorList : row?.rule === "industry" ? industryList : ruleName === "analystRating" || ruleName === "score" ? ["Strong Buy", "Buy", "Hold", "Sell", "Strong Sell"] : ["Compliant", "Non-Compliant"] as item}
event.preventDefault()} >
{/each} {/if}
{/each}
{/if}

{filteredData?.length} Stocks

{#if isLoaded} {#if filteredData?.length !== 0} {#if displayTableTab === "general"}
{#each displayResults as item} {/each}
handleSave(false)} class="sm:hover:text-white text-blue-400 text-sm sm:text-[1rem]" >{item?.symbol} {item?.name?.length > charNumber ? item?.name?.slice(0, charNumber) + "..." : item?.name} {item?.marketCap < 100 ? "< 100" : abbreviateNumber(item?.marketCap)} {item?.price < 0.01 ? "< 0.01" : item?.price?.toFixed(2)} {#if item?.changesPercentage >= 0} +{item?.changesPercentage >= 1000 ? abbreviateNumber(item?.changesPercentage) : item?.changesPercentage?.toFixed(2)}% {:else} {item?.changesPercentage <= -1000 ? abbreviateNumber(item?.changesPercentage) : item?.changesPercentage?.toFixed(2)}% {/if} {item?.volume === 0 ? "-" : abbreviateNumber(item?.volume)} {item?.pe}
{:else if displayTableTab === "filters"}
{#each displayResults as item (item?.symbol)} { handleSave(false); }} class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] bg-[#09090B] border-b-[#09090B] odd:bg-[#27272A]" > {#each displayRules as row (row?.rule)} {#if row?.rule !== "marketCap"} {/if} {/each} {/each}
{item?.symbol} {item?.name?.length > charNumber ? item?.name?.slice(0, charNumber) + "..." : item?.name} {abbreviateNumber(item?.marketCap)} {#if ["ema20", "ema50", "ema100", "ema200", "analystRating", "halalStocks", "score", "sector", "industry", "country"]?.includes(row?.rule)} {item[row?.rule]} {:else} {abbreviateNumber(item[row?.rule])} {/if}
{:else if displayTableTab === "performance"}
{#each displayResults as item (item?.symbol)} { handleSave(false); }} class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] bg-[#09090B] border-b-[#09090B] odd:bg-[#27272A]" > {#each tabRuleList as row (row?.rule)} {/each} {/each}
{item?.symbol} {item?.name?.length > charNumber ? item?.name?.slice(0, charNumber) + "..." : item?.name} {#if row?.rule === "marketCap"} {abbreviateNumber(item[row?.rule])} {:else if item[row?.rule] > 0} +{abbreviateNumber( item[row?.rule]?.toFixed(2), )}% {:else if item[row?.rule] < 0} {abbreviateNumber( item[row?.rule]?.toFixed(2), )}% {:else} - {/if}
{/if} {:else}
Looks like your taste is one-of-a-kind! No matches found... yet!
{/if} {:else}
{/if}
{#if LoginPopup} {/if}