diff --git a/src/lib/utils.ts b/src/lib/utils.ts index ae9c1984..db58ea2c 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -108,7 +108,7 @@ export const computeGrowthSingleList = (data, actualList) => { export const groupScreenerRules = (allRows) => { const categoryOrder = [ - "Most Popular", "Company Info","Price & Volume", "Valuation & Ratios", "Valuation & Price Targets", "Margins", + "Most Popular", "Company Info","Price & Volume", "Options Activity","Valuation & Ratios", "Valuation & Price Targets", "Margins", "Performance","Technical Analysis","Forecasts, Analysts & Price Targets", "Dividends", "Revenue / Sales", "Net Income", "Other Profits","Cash Flow", "Debt", "Shares Statistics", "Short Selling Statistics", "Others" ]; diff --git a/src/routes/stock-screener/+page.svelte b/src/routes/stock-screener/+page.svelte index cb3ff673..068abe9d 100644 --- a/src/routes/stock-screener/+page.svelte +++ b/src/routes/stock-screener/+page.svelte @@ -1371,6 +1371,76 @@ defaultValue: "any", category: "Company Info", }, + gexRatio: { + label: "Gex Ratio", + step: [20, 10, 5, 3, 1, 0.5, 0], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + ivRank: { + label: "IV Rank", + step: [50, 30, 20, 10, 5, 1, 0], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + iv30d: { + label: "IV 30d", + step: [1, 0.5, 0.3, 0.1, 0], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + totalOI: { + label: "Total OI", + step: ["500K", "300K", "200K", "100K", "50K", "10K", "1K"], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + changeOI: { + label: "Change OI", + step: ["5K", "3K", "1K", "500", "300", "100"], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + netCallPrem: { + label: "Net Call Prem", + step: ["1M", "500K", "100K", "50K", "-50K", "-100K", "-500K", "-1M"], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + netPutPrem: { + label: "Net Put Prem", + step: ["1M", "500K", "100K", "50K", "-50K", "-100K", "-500K", "-1M"], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + callVolume: { + label: "Call Volume", + step: ["100K", "50K", "20K", "10K", "5K", "1K"], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + putVolume: { + label: "Put Volume", + step: ["100K", "50K", "20K", "10K", "5K", "1K"], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, + pcRatio: { + label: "P/C Ratio", + step: [10, 5, 3, 2, 1, 0.5], + defaultCondition: "over", + defaultValue: "any", + category: "Options Activity", + }, }; let filteredData = []; @@ -1602,6 +1672,16 @@ if ( data?.user?.tier !== "Pro" && [ + "gexRatio", + "ivRank", + "iv30d", + "totalOI", + "changeOI", + "netCallPrem", + "netPutPrem", + "callVolume", + "putVolume", + "pcRatio", "topAnalystRating", "topAnalystCounter", "topAnalystPriceTarget", @@ -3602,7 +3682,7 @@ const handleKeyDown = (event) => {
- {#if ["topAnalystRating", "topAnalystCounter", "topAnalystPriceTarget", "topAnalystUpside", "score"]?.includes(row?.rule) && data?.user?.tier !== "Pro"} + {#if ["gexRatio", "ivRank", "iv30d", "totalOI", "changeOI", "netCallPrem", "netPutPrem", "callVolume", "putVolume", "pcRatio", "topAnalystRating", "topAnalystCounter", "topAnalystPriceTarget", "topAnalystUpside", "score"]?.includes(row?.rule) && data?.user?.tier !== "Pro"}