This commit is contained in:
MuslemRahimi 2024-12-13 11:54:32 +01:00
parent 2f62b3d934
commit 6ce24a8de3
95 changed files with 1782 additions and 660 deletions

View File

@ -11,12 +11,10 @@
let topHoldingList = [];
let description = "";
let website = "-";
let snippet;
let ipoDate = "n/a";
let assetClass = "-";
let provider = "-";
let showFullText = false;
let totalAssetPercentage = 0;
let dividendHistoryList = [];
@ -56,7 +54,6 @@
info?.description ??
"A detailed description of the company is not yet available.";
website = info?.website;
snippet = description?.slice(0, 450) + "...";
totalAssetPercentage = topHoldingList
?.slice(0, 5)
@ -71,26 +68,8 @@
About {$etfTicker}
</h2>
<p class="text-gray-200">
{#if showFullText}
{description}
{:else}
{snippet}
{/if}
</p>
{#if description.length !== 0}
<div class="inline-block">
<label
on:click={() => (showFullText = !showFullText)}
class="w-full text-md mt-1 cursor-pointer font-medium sm:hover:text-white text-blue-400 sm:hover:underline"
>
{#if showFullText}
[Show less]
{:else}
[Show more]
{/if}
</label>
</div>
{/if}
<div
class="mt-3 grid grid-cols-2 gap-3 w-full border-b border-gray-600 lg:border-none pb-8 lg:pb-0"

View File

@ -23,7 +23,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} About
· stocknear</title
· Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -33,7 +33,7 @@
content="Welcome to Stocknear — a site that aims to be the internet's best source of free stock data and information for small investors."
/>
<!-- Other meta tags -->
<meta property="og:title" content="About · stocknear" />
<meta property="og:title" content="About · Stocknear" />
<meta
property="og:description"
content="Welcome to Stocknear — a site that aims to be the internet's best source of free stock data and information for small investors."
@ -43,7 +43,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="About · stocknear" />
<meta name="twitter:title" content="About · Stocknear" />
<meta
name="twitter:description"
content="Welcome to Stocknear — a site that aims to be the internet's best source of free stock data and information for small investors."

View File

@ -135,7 +135,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Top
Wall Street Stock Analysts · stocknear
Wall Street Stock Analysts · Stocknear
</title>
<meta
name="description"
@ -145,7 +145,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Top Wall Street Stock Analysts · stocknear`}
content={`Top Wall Street Stock Analysts · Stocknear`}
/>
<meta
property="og:description"
@ -158,7 +158,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Top Wall Street Stock Analysts · stocknear`}
content={`Top Wall Street Stock Analysts · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -172,7 +172,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Top
Wall Street Stock Analysts · stocknear
Wall Street Stock Analysts · Stocknear
</title>
<meta
name="description"
@ -182,7 +182,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Top Wall Street Stock Analysts · stocknear`}
content={`Top Wall Street Stock Analysts · Stocknear`}
/>
<meta
property="og:description"
@ -195,7 +195,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Top Wall Street Stock Analysts · stocknear`}
content={`Top Wall Street Stock Analysts · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -30,7 +30,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Top
100 Strong Buy Stocks · stocknear
100 Strong Buy Stocks · Stocknear
</title>
<meta
name="description"
@ -38,7 +38,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Top 100 Strong Buy Stocks · stocknear`} />
<meta property="og:title" content={`Top 100 Strong Buy Stocks · Stocknear`} />
<meta
property="og:description"
content={`The top 100 "Strong Buy" stocks according to the best performing Wall Street analysts, with a rating of 5 stars.`}
@ -50,7 +50,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Top 100 Strong Buy Stocks · stocknear`}
content={`Top 100 Strong Buy Stocks · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -8,19 +8,19 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Changelog
· stocknear</title
· Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<!-- Other meta tags -->
<meta property="og:title" content="Changelog · stocknear" />
<meta property="og:title" content="Changelog · Stocknear" />
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Changelog · stocknear" />
<meta name="twitter:title" content="Changelog · Stocknear" />
<!-- Add more Twitter meta tags as needed -->
</svelte:head>

View File

@ -12,7 +12,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Contact
Us · stocknear
Us · Stocknear
</title>
<meta
name="description"
@ -20,7 +20,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Contact Us · stocknear`} />
<meta property="og:title" content={`Contact Us · Stocknear`} />
<meta
property="og:description"
content={`Need help, found a bug or you have a feature request. Please contact us to resolve any issues.`}
@ -30,7 +30,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Contact Us · stocknear`} />
<meta name="twitter:title" content={`Contact Us · Stocknear`} />
<meta
name="twitter:description"
content={`Need help, found a bug or you have a feature request. Please contact us to resolve any issues.`}

View File

@ -122,7 +122,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Latest
Lobbiyng Disclosure Tracker · stocknear
Lobbiyng Disclosure Tracker · Stocknear
</title>
<meta
name="description"
@ -132,7 +132,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Latest Lobbiyng Disclosure Tracker · stocknear`}
content={`Latest Lobbiyng Disclosure Tracker · Stocknear`}
/>
<meta
property="og:description"
@ -145,7 +145,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Latest Lobbiyng Disclosure Tracker · stocknear`}
content={`Latest Lobbiyng Disclosure Tracker · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -172,7 +172,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Jim
Carmer Tracker · stocknear
Carmer Tracker · Stocknear
</title>
<meta
name="description"
@ -180,7 +180,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Jim Carmer Tracker · stocknear`} />
<meta property="og:title" content={`Jim Carmer Tracker · Stocknear`} />
<meta
property="og:description"
content={`Track the stock recommendations and performance of CNBC's Jim Cramer`}
@ -190,7 +190,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Jim Carmer Tracker · stocknear`} />
<meta name="twitter:title" content={`Jim Carmer Tracker · Stocknear`} />
<meta
name="twitter:description"
content={`Track the stock recommendations and performance of CNBC's Jim Cramer`}

View File

@ -18,7 +18,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} List
of All Crypto Ticker Symbols · stocknear
of All Crypto Ticker Symbols · Stocknear
</title>
<meta
name="description"
@ -28,7 +28,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`List of All Crypto Ticker Symbols · stocknear`}
content={`List of All Crypto Ticker Symbols · Stocknear`}
/>
<meta
property="og:description"
@ -41,7 +41,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`List of All Crypto Ticker Symbols · stocknear`}
content={`List of All Crypto Ticker Symbols · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -626,7 +626,7 @@ afterUpdate(async () => {
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$cryptoTicker}) Stock Price, Quote & News · stocknear`}
content={`${$displayCompanyName} (${$cryptoTicker}) Stock Price, Quote & News · Stocknear`}
/>
<meta
property="og:description"
@ -639,7 +639,7 @@ afterUpdate(async () => {
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$cryptoTicker}) Stock Price, Quote & News · stocknear`}
content={`${$displayCompanyName} (${$cryptoTicker}) Stock Price, Quote & News · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -132,7 +132,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$cryptoTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$cryptoTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
property="og:description"
@ -145,7 +145,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$cryptoTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$cryptoTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -1,5 +1,11 @@
<script lang="ts">
import { numberOfUnreadNotification, displayCompanyName, stockTicker, sentimentComponent, priceAnalysisComponent } from "$lib/store";
import {
numberOfUnreadNotification,
displayCompanyName,
stockTicker,
sentimentComponent,
priceAnalysisComponent,
} from "$lib/store";
import PriceAnalysis from "$lib/components/PriceAnalysis.svelte";
import SentimentAnalysis from "$lib/components/SentimentAnalysis.svelte";
import AnalystInsight from "$lib/components/AnalystInsight.svelte";
@ -14,47 +20,78 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Forecast AI · stocknear
{$displayCompanyName} ({$stockTicker}) Forecast AI · Stocknear
</title>
<meta name="description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
name="description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · stocknear`} />
<meta property="og:description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · Stocknear`}
/>
<meta
property="og:description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · stocknear`} />
<meta name="twitter:description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · Stocknear`}
/>
<meta
name="twitter:description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="bg-[#09090B] overflow-hidden text-white h-full mb-40 sm:mb-0 w-full">
<section
class="bg-[#09090B] overflow-hidden text-white h-full mb-40 sm:mb-0 w-full"
>
<div class="flex justify-center m-auto h-full overflow-hidden w-full">
<div class="relative flex justify-center items-center overflow-hidden w-full">
<div
class="relative flex justify-center items-center overflow-hidden w-full"
>
<div class="sm:p-7 w-full m-auto mt-2 sm:mt-0">
<Lazy>
<div class="w-full mt-10 sm:mt-0 m-auto sm:pt-6 {Object?.keys(data?.getAnalystInsight)?.length === 0 ? 'hidden' : ''}">
<AnalystInsight data={data} />
<div
class="w-full mt-10 sm:mt-0 m-auto sm:pt-6 {Object?.keys(
data?.getAnalystInsight,
)?.length === 0
? 'hidden'
: ''}"
>
<AnalystInsight {data} />
</div>
</Lazy>
<Lazy>
<div class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {Object?.keys(data?.getPriceAnalysis)?.length === 0 ? 'hidden' : ''}">
<PriceAnalysis data={data} />
<div
class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {Object?.keys(
data?.getPriceAnalysis,
)?.length === 0
? 'hidden'
: ''}"
>
<PriceAnalysis {data} />
</div>
</Lazy>
<Lazy>
<div class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {data?.getSentimentAnalysis?.length === 0 ? 'hidden' : ''}">
<SentimentAnalysis data={data} />
<div
class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {data
?.getSentimentAnalysis?.length === 0
? 'hidden'
: ''}"
>
<SentimentAnalysis {data} />
</div>
</Lazy>
</div>

View File

@ -67,7 +67,7 @@
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$cryptoTicker}) latest Stock Market News and
Breaking Stories · stocknear
Breaking Stories · Stocknear
</title>
<meta
name="description"
@ -77,7 +77,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$cryptoTicker}) latest Stock Market News and Breaking Stories · stocknear`}
content={`${$displayCompanyName} (${$cryptoTicker}) latest Stock Market News and Breaking Stories · Stocknear`}
/>
<meta
property="og:description"
@ -90,7 +90,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$cryptoTicker}) latest Stock Market News and Breaking Stories · stocknear`}
content={`${$displayCompanyName} (${$cryptoTicker}) latest Stock Market News and Breaking Stories · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -93,7 +93,7 @@ updateYearRange()
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$cryptoTicker}) Statistics & Valuation Metrics · stocknear`}
content={`${$displayCompanyName} (${$cryptoTicker}) Statistics & Valuation Metrics · Stocknear`}
/>
<meta
property="og:description"
@ -106,7 +106,7 @@ updateYearRange()
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$cryptoTicker}) Statistics & Valuation Metrics · stocknear`}
content={`${$displayCompanyName} (${$cryptoTicker}) Statistics & Valuation Metrics · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -307,7 +307,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Dividends
Calendar · stocknear
Calendar · Stocknear
</title>
<meta
name="description"
@ -315,7 +315,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Dividends Calendar · stocknear`} />
<meta property="og:title" content={`Dividends Calendar · Stocknear`} />
<meta
property="og:description"
content={`A list of upcoming dividends on the US stock market, with dates, times and estimated revenue and dividends growth.`}
@ -325,7 +325,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Dividends Calendar · stocknear`} />
<meta name="twitter:title" content={`Dividends Calendar · Stocknear`} />
<meta
name="twitter:description"
content={`A list of upcoming dividends on the US stock market, with dates, times and estimated revenue and dividends growth.`}

View File

@ -18,7 +18,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`sponsor · stocknear`} />
<meta property="og:title" content={`sponsor · Stocknear`} />
<meta
property="og:description"
content={`Your sponsor helps us to become the number 1 stock analysis platform in the world with the best price plans.`}
@ -28,7 +28,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`sponsor · stocknear`} />
<meta name="twitter:title" content={`sponsor · Stocknear`} />
<meta
name="twitter:description"
content={`Your sponsor helps us to become the number 1 stock analysis platform in the world with the best price plans.`}

View File

@ -308,7 +308,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Earnings
Calendar · stocknear
Calendar · Stocknear
</title>
<meta
name="description"
@ -316,7 +316,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Earnings Calendar · stocknear`} />
<meta property="og:title" content={`Earnings Calendar · Stocknear`} />
<meta
property="og:description"
content={`A list of upcoming earnings on the US stock market, with dates, times and estimated revenue and earnings growth.`}
@ -326,7 +326,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Earnings Calendar · stocknear`} />
<meta name="twitter:title" content={`Earnings Calendar · Stocknear`} />
<meta
name="twitter:description"
content={`A list of upcoming earnings on the US stock market, with dates, times and estimated revenue and earnings growth.`}

View File

@ -309,7 +309,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Worldwide
Economic Calendar · stocknear
Economic Calendar · Stocknear
</title>
<meta
name="description"
@ -319,7 +319,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Worldwide Economic Calendar · stocknear`}
content={`Worldwide Economic Calendar · Stocknear`}
/>
<meta
property="og:description"
@ -332,7 +332,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Worldwide Economic Calendar · stocknear`}
content={`Worldwide Economic Calendar · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -623,7 +623,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} US
Economic Indicator · stocknear
Economic Indicator · Stocknear
</title>
<meta
name="description"
@ -631,7 +631,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`US Economic Indicator · stocknear`} />
<meta property="og:title" content={`US Economic Indicator · Stocknear`} />
<meta
property="og:description"
content={`Economic indicators measure economic performance and identify growth trends.`}
@ -641,7 +641,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`US Economic Indicator · stocknear`} />
<meta name="twitter:title" content={`US Economic Indicator · Stocknear`} />
<meta
name="twitter:description"
content={`Economic indicators measure economic performance and identify growth trends.`}

View File

@ -36,7 +36,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} List
of All ETF Ticker Symbols · stocknear
of All ETF Ticker Symbols · Stocknear
</title>
<meta
name="description"
@ -46,7 +46,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`List of All ETF Ticker Symbols · stocknear`}
content={`List of All ETF Ticker Symbols · Stocknear`}
/>
<meta
property="og:description"
@ -59,7 +59,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`List of All ETF Ticker Symbols · stocknear`}
content={`List of All ETF Ticker Symbols · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -370,16 +370,20 @@
>
<svg
class="w-6 h-6 inline-block"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512"
><path
viewBox="0 0 24 24"
fill="none"
stroke="white"
xmlns="http://www.w3.org/2000/svg"
stroke="#fff"
><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g
id="SVGRepo_tracerCarrier"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="32"
d="M336 192h40a40 40 0 0 1 40 40v192a40 40 0 0 1-40 40H136a40 40 0 0 1-40-40V232a40 40 0 0 1 40-40h40m160-64l-80-80l-80 80m80 193V48"
/></svg
></g><g id="SVGRepo_iconCarrier">
<path
d="M20.3359 3.22136L3.87333 8.70889C3.56801 8.81066 3.55033 9.23586 3.84614 9.36263L9.89655 11.9557C9.96078 11.9832 10.0347 11.9752 10.0916 11.9346L16.0235 7.69749C16.2073 7.56618 16.4338 7.79266 16.3025 7.97648L12.0654 13.9084C12.0248 13.9653 12.0168 14.0392 12.0443 14.1034L14.6374 20.1539C14.7641 20.4497 15.1893 20.432 15.2911 20.1267L20.7786 3.66408C20.8698 3.39046 20.6095 3.13015 20.3359 3.22136Z"
fill="#fff"
></path>
</g></svg
>
</label>
<!--End Share Button-->

View File

@ -763,7 +763,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$etfTicker}) Stock Price, Quote & News · stocknear
{$displayCompanyName} ({$etfTicker}) Stock Price, Quote & News · Stocknear
</title>
<meta
@ -773,7 +773,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$etfTicker}) Stock Price, Quote & News · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Stock Price, Quote & News · Stocknear`}
/>
<meta
property="og:description"
@ -787,7 +787,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$etfTicker}) Stock Price, Quote & News · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Stock Price, Quote & News · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -130,7 +130,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$etfTicker}) Dividend History, Dates & Yield · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Dividend History, Dates & Yield · Stocknear`}
/>
<meta
property="og:description"
@ -143,7 +143,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$etfTicker}) Dividend History, Dates & Yield · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Dividend History, Dates & Yield · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -1,5 +1,11 @@
<script lang="ts">
import { numberOfUnreadNotification, displayCompanyName, stockTicker, sentimentComponent, priceAnalysisComponent } from "$lib/store";
import {
numberOfUnreadNotification,
displayCompanyName,
stockTicker,
sentimentComponent,
priceAnalysisComponent,
} from "$lib/store";
import PriceAnalysis from "$lib/components/PriceAnalysis.svelte";
import SentimentAnalysis from "$lib/components/SentimentAnalysis.svelte";
import AnalystInsight from "$lib/components/AnalystInsight.svelte";
@ -14,47 +20,78 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Forecast AI · stocknear
{$displayCompanyName} ({$stockTicker}) Forecast AI · Stocknear
</title>
<meta name="description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
name="description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · stocknear`} />
<meta property="og:description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · Stocknear`}
/>
<meta
property="og:description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · stocknear`} />
<meta name="twitter:description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · Stocknear`}
/>
<meta
name="twitter:description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="bg-[#09090B] overflow-hidden text-white h-full mb-40 sm:mb-0 w-full">
<section
class="bg-[#09090B] overflow-hidden text-white h-full mb-40 sm:mb-0 w-full"
>
<div class="flex justify-center m-auto h-full overflow-hidden w-full">
<div class="relative flex justify-center items-center overflow-hidden w-full">
<div
class="relative flex justify-center items-center overflow-hidden w-full"
>
<div class="sm:p-7 w-full m-auto mt-2 sm:mt-0">
<Lazy>
<div class="w-full mt-10 sm:mt-0 m-auto sm:pt-6 {Object?.keys(data?.getAnalystInsight)?.length === 0 ? 'hidden' : ''}">
<AnalystInsight data={data} />
<div
class="w-full mt-10 sm:mt-0 m-auto sm:pt-6 {Object?.keys(
data?.getAnalystInsight,
)?.length === 0
? 'hidden'
: ''}"
>
<AnalystInsight {data} />
</div>
</Lazy>
<Lazy>
<div class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {Object?.keys(data?.getPriceAnalysis)?.length === 0 ? 'hidden' : ''}">
<PriceAnalysis data={data} />
<div
class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {Object?.keys(
data?.getPriceAnalysis,
)?.length === 0
? 'hidden'
: ''}"
>
<PriceAnalysis {data} />
</div>
</Lazy>
<Lazy>
<div class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {data?.getSentimentAnalysis?.length === 0 ? 'hidden' : ''}">
<SentimentAnalysis data={data} />
<div
class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {data
?.getSentimentAnalysis?.length === 0
? 'hidden'
: ''}"
>
<SentimentAnalysis {data} />
</div>
</Lazy>
</div>

View File

@ -39,7 +39,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$etfTicker}) Holdings List · stocknear
{$displayCompanyName} ({$etfTicker}) Holdings List · Stocknear
</title>
<meta
name="description"
@ -49,7 +49,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$etfTicker}) Holdings List · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Holdings List · Stocknear`}
/>
<meta
property="og:description"
@ -62,7 +62,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$etfTicker}) Holdings List · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Holdings List · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -121,7 +121,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$etfTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
property="og:description"
@ -134,7 +134,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$etfTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -67,7 +67,7 @@
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$etfTicker}) latest Stock Market News and Breaking
Stories · stocknear
Stories · Stocknear
</title>
<meta
name="description"
@ -77,7 +77,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$etfTicker}) latest Stock Market News and Breaking Stories · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) latest Stock Market News and Breaking Stories · Stocknear`}
/>
<meta
property="og:description"
@ -90,7 +90,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$etfTicker}) latest Stock Market News and Breaking Stories · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) latest Stock Market News and Breaking Stories · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -538,7 +538,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$etfTicker}) Options Activity · stocknear
{$displayCompanyName} ({$etfTicker}) Options Activity · Stocknear
</title>
<meta
name="description"
@ -548,7 +548,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$etfTicker}) Options Activity · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Options Activity · Stocknear`}
/>
<meta
property="og:description"
@ -561,7 +561,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$etfTicker}) Options Activity · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Options Activity · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -93,7 +93,7 @@ updateYearRange()
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$etfTicker}) Statistics & Valuation Metrics · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Statistics & Valuation Metrics · Stocknear`}
/>
<meta
property="og:description"
@ -106,7 +106,7 @@ updateYearRange()
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$etfTicker}) Statistics & Valuation Metrics · stocknear`}
content={`${$displayCompanyName} (${$etfTicker}) Statistics & Valuation Metrics · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -24,7 +24,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Largest
ETF Providers by Assets Under Management · stocknear</title
ETF Providers by Assets Under Management · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -36,7 +36,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content="Largest ETF Providers by Assets Under Management · stocknear"
content="Largest ETF Providers by Assets Under Management · Stocknear"
/>
<meta
property="og:description"
@ -49,7 +49,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="Largest ETF Providers by Assets Under Management · stocknear"
content="Largest ETF Providers by Assets Under Management · Stocknear"
/>
<meta
name="twitter:description"

View File

@ -86,7 +86,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Largest
ETF Providers by Assets Under Management · stocknear
ETF Providers by Assets Under Management · Stocknear
</title>
<meta
@ -96,7 +96,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Largest ETF Providers by Assets Under Management · stocknear`}
content={`Largest ETF Providers by Assets Under Management · Stocknear`}
/>
<meta
property="og:description"
@ -109,7 +109,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Largest ETF Providers by Assets Under Management · stocknear`}
content={`Largest ETF Providers by Assets Under Management · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -124,7 +124,7 @@
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{etfProviderData?.length}
{etfProviderName} ETFs - A Complete List · stocknear
{etfProviderName} ETFs - A Complete List · Stocknear
</title>
<meta name="description" content={``} />

View File

@ -90,7 +90,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} 100
Newest ETFs · stocknear
Newest ETFs · Stocknear
</title>
<meta
name="description"
@ -98,7 +98,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`100 Newest ETFs · stocknear`} />
<meta property="og:title" content={`100 Newest ETFs · Stocknear`} />
<meta
property="og:description"
content={`A list of the 100 most recently launched ETFs on the US stock market, sorted by the inception date.`}
@ -108,7 +108,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`100 Newest ETFs · stocknear`} />
<meta name="twitter:title" content={`100 Newest ETFs · Stocknear`} />
<meta
name="twitter:description"
content={`A list of the 100 most recently launched ETFs on the US stock market, sorted by the inception date.`}

View File

@ -29,7 +29,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} FDA
Calendar · stocknear
Calendar · Stocknear
</title>
<meta
name="description"
@ -37,7 +37,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`FDA Calendar · stocknear`} />
<meta property="og:title" content={`FDA Calendar · Stocknear`} />
<meta
property="og:description"
content={`FDA Approval to track success rates of Biotech companies in the stock market.`}
@ -47,7 +47,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`FDA Tracker · stocknear`} />
<meta name="twitter:title" content={`FDA Tracker · Stocknear`} />
<meta
name="twitter:description"
content={`FDA Approval to track success rates of Biotech companies in the stock market.`}

View File

@ -275,7 +275,7 @@ async function exportTreemap() {
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Market
Heatmaps · stocknear</title
Heatmaps · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -285,7 +285,7 @@ async function exportTreemap() {
content="Stock Heatmaps of S&P500, Nasdaq and Dow Jones to see percentage changes of the return for different time periods"
/>
<!-- Other meta tags -->
<meta property="og:title" content="Market Heatmaps · stocknear" />
<meta property="og:title" content="Market Heatmaps · Stocknear" />
<meta
property="og:description"
content="Stock Heatmaps of S&P500, Nasdaq and Dow Jones to see percentage changes of the return for different time periods"
@ -295,7 +295,7 @@ async function exportTreemap() {
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Market Heatmaps · stocknear" />
<meta name="twitter:title" content="Market Heatmaps · Stocknear" />
<meta
name="twitter:description"
content="Stock Heatmaps of S&P500, Nasdaq and Dow Jones to see percentage changes of the return for different time periods"

View File

@ -81,7 +81,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} All
listed Hedge Funds · stocknear</title
listed Hedge Funds · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0" />
@ -91,7 +91,7 @@
content="Find all listed Hedge Funds based on the US Market."
/>
<!-- Other meta tags -->
<meta property="og:title" content="All listed Hedge Funds · stocknear" />
<meta property="og:title" content="All listed Hedge Funds · Stocknear" />
<meta
property="og:description"
content="Find all listed Hedge Funds based on the US Market."
@ -101,7 +101,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="All listed Hedge Funds · stocknear" />
<meta name="twitter:title" content="All listed Hedge Funds · Stocknear" />
<meta
name="twitter:description"
content="Find all listed Hedge Funds based on the US Market."

View File

@ -47,7 +47,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Top
Wall Street Hedge Funds · stocknear
Wall Street Hedge Funds · Stocknear
</title>
<meta
name="description"
@ -57,7 +57,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Top Wall Street hedge funds · stocknear`}
content={`Top Wall Street hedge funds · Stocknear`}
/>
<meta
property="og:description"
@ -70,7 +70,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Top Wall Street hedge funds · stocknear`}
content={`Top Wall Street hedge funds · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -8,7 +8,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Imprint
· stocknear</title
· Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -18,7 +18,7 @@
content="Imprint of Stocknear. Contact Information if you need help."
/>
<!-- Other meta tags -->
<meta property="og:title" content="Imprint · stocknear" />
<meta property="og:title" content="Imprint · Stocknear" />
<meta
property="og:description"
content="Imprint of Stocknear. Contact Information if you need help."
@ -28,7 +28,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Imprint · stocknear" />
<meta name="twitter:title" content="Imprint · Stocknear" />
<meta
name="twitter:description"
content="Imprint of Stocknear. Contact Information if you need help."

View File

@ -35,14 +35,14 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Industry
· stocknear</title
· Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<meta name="description" content="Lists of stocks industry and sectors." />
<!-- Other meta tags -->
<meta property="og:title" content="Industry · stocknear" />
<meta property="og:title" content="Industry · Stocknear" />
<meta
property="og:description"
content="Lists of stocks industry and sectors."
@ -52,7 +52,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Industry · stocknear" />
<meta name="twitter:title" content="Industry · Stocknear" />
<meta
name="twitter:description"
content="Lists of stocks industry and sectors."

View File

@ -136,7 +136,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Insider
Tracker · stocknear
Tracker · Stocknear
</title>
<meta
name="description"
@ -144,7 +144,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Insider Tracker · stocknear`} />
<meta property="og:title" content={`Insider Tracker · Stocknear`} />
<meta
property="og:description"
content={`Stay ahead of the market with our real-time insider tracking page.`}
@ -154,7 +154,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Insider Tracker · stocknear`} />
<meta name="twitter:title" content={`Insider Tracker · Stocknear`} />
<meta
name="twitter:description"
content={`Stay ahead of the market with our real-time insider tracking page.`}

View File

@ -49,7 +49,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} IPOs
Calendar · stocknear</title
Calendar · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -59,7 +59,7 @@
content="A list of upcoming ipos on the US stock market."
/>
<!-- Other meta tags -->
<meta property="og:title" content="IPOs Calendar · stocknear" />
<meta property="og:title" content="IPOs Calendar · Stocknear" />
<meta
property="og:description"
content="A list of upcoming ipos on the US stock market."
@ -73,7 +73,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="IPOs Calendar · stocknear" />
<meta name="twitter:title" content="IPOs Calendar · Stocknear" />
<meta
name="twitter:description"
content="A list of upcoming ipos on the US stock market."

View File

@ -1,88 +1,46 @@
<script lang ='ts'>
import { numberOfUnreadNotification} from '$lib/store';
import UpgradeToPro from "$lib/components/UpgradeToPro.svelte";
import Katex from "$lib/components/Katex.svelte";
//import Chart from '$lib/components/Chart.svelte';
//import greeks from "greeks";
export let data;
// Sample option contract parameters
/*
const strikePrice = 100; // Strike price of the option
const timeToExpiration = 30 / 365; // Time to expiration in years (30 days)
const volatility = 0.25; // Volatility of the underlying asset
const riskFreeRate = 0.001; // Risk-free interest rate
// Generate sample underlying stock prices
const underlyingPrices = Array.from({ length: 50 }, (_, i) => 80 + i); // Sample prices from 80 to 129
let testList = [];
for(const price of underlyingPrices) {
testList.push(greeks.getTheta(price, strikePrice, timeToExpiration, volatility, riskFreeRate, "call"))
}
const options = {
silent: true,
animation: false,
grid: {
left:'2%',
right: '2%',
bottom:'5%',
containLabel: true
},
xAxis: {
show: false, // Hide the xAxis
type: 'category',
data: underlyingPrices
},
yAxis: {
type: 'value',
splitLine: {
show: false,
},
},
series: [
{
data: testList,
showSymbol: false,
type: 'line'
}
]
};
*/
</script>
<script lang 'ts'></script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title> {$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} Long Call Options · stocknear</title>
<meta name="description" content="Latest articles on stocks, finance and investing">
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Long
Call Options · Stocknear</title
>
<meta
name="description"
content="Latest articles on stocks, finance and investing"
/>
<!-- Other meta tags -->
<meta property="og:title" content="Long Call Options" />
<meta property="og:description" content="Understand what call options are and when they become profitable in your trading strategy."/>
<meta property="og:image" content="https://stocknear-pocketbase.s3.amazonaws.com/logo/meta_logo.jpg"/>
<meta
property="og:description"
content="Understand what call options are and when they become profitable in your trading strategy."
/>
<meta
property="og:image"
content="https://stocknear-pocketbase.s3.amazonaws.com/logo/meta_logo.jpg"
/>
<meta property="og:type" content="article" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Long Call Options" />
<meta name="twitter:description" content="Understand what call options are and when they become profitable in your trading strategy."/>
<meta name="twitter:image" content="https://stocknear-pocketbase.s3.amazonaws.com/logo/meta_logo.jpg"/>
<meta
name="twitter:description"
content="Understand what call options are and when they become profitable in your trading strategy."
/>
<meta
name="twitter:image"
content="https://stocknear-pocketbase.s3.amazonaws.com/logo/meta_logo.jpg"
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-6xl m-auto pt-5 pb-60 min-h-screen overflow-hidden supports-[overflow:clip]:overflow-clip">
<section
class="w-full max-w-6xl m-auto pt-5 pb-60 min-h-screen overflow-hidden supports-[overflow:clip]:overflow-clip"
>
<div class="text-sm breadcrumbs ml-4 sm:ml-0">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -90,16 +48,18 @@ grid: {
</ul>
</div>
<main class="grow m-auto">
<div class="w-full max-w-4xl">
<div class="sm:flex sm:justify-start">
<!-- Main content -->
<div class="md:grow pt-6 pb-12 w-full sm:mr-4 rounded-2xl sm:rounded-none">
<div
class="md:grow pt-6 pb-12 w-full sm:mr-4 rounded-2xl sm:rounded-none"
>
<div class="sm:pr-5">
<!--Start Title-->
<h1 class="flex justify-center sm:justify-start mt-5 text-white font-bold text-4xl p-3 mb-6 sm:mb-3">
<h1
class="flex justify-center sm:justify-start mt-5 text-white font-bold text-4xl p-3 mb-6 sm:mb-3"
>
Long Call Options
</h1>
<!--End Title-->
@ -112,23 +72,41 @@ grid: {
<!--Start Paragraph-->
<div class="text-white text-lg pl-3 pr-3">
A call option is one of the two fundamental types of options. The holder of a call option has the option, but not the obligation, to purchase 100 shares of the underlying stock at the strike price in the future.
<br>
<br>
It is useful to understand some basic terminology regarding the strike of a call option:
A call option is one of the two fundamental types of options. The
holder of a call option has the option, but not the obligation, to
purchase 100 shares of the underlying stock at the strike price in
the future.
<br />
<br />
It is useful to understand some basic terminology regarding the strike
of a call option:
<ol class="text-white list-disc ml-5 sm:ml-3 p-3 text-[1rem]">
<li class="p-1">
<span class="font-semibold">In-The-Money (ITM):</span> The stock price is <span class="italic">greater</span> than the strike price.
<span class="font-semibold">In-The-Money (ITM):</span> The
stock price is <span class="italic">greater</span> than the strike
price.
</li>
<li class="p-1">
<span class="font-semibold">At-The-Money (ATM):</span> The stock price is <span class="italic">equal</span> to the strike price.
<span class="font-semibold">At-The-Money (ATM):</span> The
stock price is <span class="italic">equal</span> to the strike
price.
</li>
<li class="p-1">
<span class="font-semibold">Out-of-the-money (OTM):</span> The stock price is <span class="italic">less</span> than the strike price.
<span class="font-semibold">Out-of-the-money (OTM):</span> The
stock price is <span class="italic">less</span> than the strike
price.
</li>
</ol>
<div class="flex justify-center items-center w-full sm:w-11/12 pb-10 pt-7 sm:p-10">
<svg class="w-full h-full rounded-2xl" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1120.3311378717422 595.9446960210801" filter="invert(93%) hue-rotate(180deg)">
<div
class="flex justify-center items-center w-full sm:w-11/12 pb-10 pt-7 sm:p-10"
>
<svg
class="w-full h-full rounded-2xl"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 1120.3311378717422 595.9446960210801"
filter="invert(93%) hue-rotate(180deg)"
>
<!-- svg-source:excalidraw -->
<defs>
<style class="style-fonts">
@ -145,15 +123,210 @@ grid: {
src: url("https://excalidraw.com/Assistant-Regular.woff2");
}
</style>
</defs>
<g stroke-linecap="round"><g transform="translate(127 423.94469602108) rotate(0 479.5 -1.5)"><path d="M-0.5 -0.74 C159.26 -1.58, 799.13 -3.81, 958.85 -4.01 M1.44 1.49 C161 1.28, 798.05 -2.14, 957.82 -3" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(148 513.9446960210801) rotate(0 265 -2.5)"><path d="M-0.42 -0.45 C87.93 -1.38, 442.49 -4.97, 530.7 -5.72 M1.56 -1.73 C89.76 -2.5, 441.85 -4.25, 530.12 -4.56" stroke="#ff0000" stroke-width="4" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1026 141.94469602108) rotate(0 -173.5 183)"><path d="M0.7 0.28 C-57.08 61.32, -288 304.29, -345.84 365.13 M-0.4 -0.62 C-58.31 60.65, -288.45 305.06, -346.18 366.2" stroke="#2f9e44" stroke-width="4" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(679 506.94469602108) rotate(0 0 -249)"><path d="M-0.66 -0.34 C-0.4 -83.29, 0.31 -413.86, 0.52 -496.94" stroke="#1e1e1e" stroke-width="1.5" fill="none" stroke-dasharray="8 9"></path></g></g><mask></mask><g transform="translate(10 90.94469602108) rotate(0 52.474998474121094 22.5)"><text x="0" y="31.536" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Profit</text></g><g transform="translate(23 479.94469602108) rotate(0 40.3125 22.5)"><text x="0" y="31.536" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Loss</text></g><g transform="translate(575 540.9446960210801) rotate(0 100.36250305175781 22.5)"><text x="0" y="31.536" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Stock Price</text></g><g stroke-linecap="round"><g transform="translate(959 413.94469602108) rotate(0 -48.5 -43.5)"><path d="M0.84 -0.95 C-15.36 -15.56, -81.71 -72.88, -97.96 -87.04" stroke="#2f9e44" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(915 267.94469602108) rotate(0 82 77)"><path d="M-0.95 0.02 C26.52 25.87, 136.81 128.6, 164.2 154.09" stroke="#2f9e44" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(813 374.94469602108) rotate(0 29.5 22.5)"><path d="M0.31 -0.42 C10.13 7, 48.83 36.42, 58.48 44.13" stroke="#2f9e44" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(977 201.94469602108) rotate(0 66.5 59)"><path d="M-0.85 -0.02 C21.37 19.8, 110.88 98.76, 133.33 118.36" stroke="#2f9e44" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(156 508.94469602108) rotate(0 49 -41)"><path d="M0.7 -0.18 C16.79 -13.9, 80.94 -68.33, 97.24 -81.8" stroke="#ff0000" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(216.03025395870213 508.933536529541) rotate(0 49 -41)"><path d="M0.91 0.03 C17.17 -13.64, 81.88 -67.94, 98.22 -81.7" stroke="#ee5365" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(290.03025395870213 506.933536529541) rotate(0 49 -41)"><path d="M-0.19 0.1 C16.41 -13.67, 82.78 -69.24, 99.08 -83.02" stroke="#ff0000" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(363.03025395870213 506.933536529541) rotate(0 49 -41)"><path d="M-0.92 -0.68 C15.55 -14.42, 82.54 -69.14, 99.14 -82.56" stroke="#ff0000" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(447.03025395870213 507.933536529541) rotate(0 49 -41)"><path d="M0.31 0.3 C16.93 -13.51, 82.32 -68.65, 98.61 -82.27" stroke="#ff0000" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(533.0302539587021 508.933536529541) rotate(0 49 -41)"><path d="M-0.2 -0.54 C16.08 -14.31, 82.48 -68.77, 98.86 -82.44" stroke="#ff0000" stroke-width="2.5" fill="none" stroke-dasharray="8 10"></path></g></g><mask></mask></svg>
<g stroke-linecap="round"
><g
transform="translate(127 423.94469602108) rotate(0 479.5 -1.5)"
><path
d="M-0.5 -0.74 C159.26 -1.58, 799.13 -3.81, 958.85 -4.01 M1.44 1.49 C161 1.28, 798.05 -2.14, 957.82 -3"
stroke="#1e1e1e"
stroke-width="2"
fill="none"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(148 513.9446960210801) rotate(0 265 -2.5)"
><path
d="M-0.42 -0.45 C87.93 -1.38, 442.49 -4.97, 530.7 -5.72 M1.56 -1.73 C89.76 -2.5, 441.85 -4.25, 530.12 -4.56"
stroke="#ff0000"
stroke-width="4"
fill="none"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(1026 141.94469602108) rotate(0 -173.5 183)"
><path
d="M0.7 0.28 C-57.08 61.32, -288 304.29, -345.84 365.13 M-0.4 -0.62 C-58.31 60.65, -288.45 305.06, -346.18 366.2"
stroke="#2f9e44"
stroke-width="4"
fill="none"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(679 506.94469602108) rotate(0 0 -249)"
><path
d="M-0.66 -0.34 C-0.4 -83.29, 0.31 -413.86, 0.52 -496.94"
stroke="#1e1e1e"
stroke-width="1.5"
fill="none"
stroke-dasharray="8 9"
></path></g
></g
><mask></mask><g
transform="translate(10 90.94469602108) rotate(0 52.474998474121094 22.5)"
><text
x="0"
y="31.536"
font-family="Virgil, Segoe UI Emoji"
font-size="36px"
fill="#1e1e1e"
text-anchor="start"
style="white-space: pre;"
direction="ltr"
dominant-baseline="alphabetic">Profit</text
></g
><g
transform="translate(23 479.94469602108) rotate(0 40.3125 22.5)"
><text
x="0"
y="31.536"
font-family="Virgil, Segoe UI Emoji"
font-size="36px"
fill="#1e1e1e"
text-anchor="start"
style="white-space: pre;"
direction="ltr"
dominant-baseline="alphabetic">Loss</text
></g
><g
transform="translate(575 540.9446960210801) rotate(0 100.36250305175781 22.5)"
><text
x="0"
y="31.536"
font-family="Virgil, Segoe UI Emoji"
font-size="36px"
fill="#1e1e1e"
text-anchor="start"
style="white-space: pre;"
direction="ltr"
dominant-baseline="alphabetic">Stock Price</text
></g
><g stroke-linecap="round"
><g
transform="translate(959 413.94469602108) rotate(0 -48.5 -43.5)"
><path
d="M0.84 -0.95 C-15.36 -15.56, -81.71 -72.88, -97.96 -87.04"
stroke="#2f9e44"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(915 267.94469602108) rotate(0 82 77)"
><path
d="M-0.95 0.02 C26.52 25.87, 136.81 128.6, 164.2 154.09"
stroke="#2f9e44"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(813 374.94469602108) rotate(0 29.5 22.5)"
><path
d="M0.31 -0.42 C10.13 7, 48.83 36.42, 58.48 44.13"
stroke="#2f9e44"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(977 201.94469602108) rotate(0 66.5 59)"
><path
d="M-0.85 -0.02 C21.37 19.8, 110.88 98.76, 133.33 118.36"
stroke="#2f9e44"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(156 508.94469602108) rotate(0 49 -41)"
><path
d="M0.7 -0.18 C16.79 -13.9, 80.94 -68.33, 97.24 -81.8"
stroke="#ff0000"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(216.03025395870213 508.933536529541) rotate(0 49 -41)"
><path
d="M0.91 0.03 C17.17 -13.64, 81.88 -67.94, 98.22 -81.7"
stroke="#ee5365"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(290.03025395870213 506.933536529541) rotate(0 49 -41)"
><path
d="M-0.19 0.1 C16.41 -13.67, 82.78 -69.24, 99.08 -83.02"
stroke="#ff0000"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(363.03025395870213 506.933536529541) rotate(0 49 -41)"
><path
d="M-0.92 -0.68 C15.55 -14.42, 82.54 -69.14, 99.14 -82.56"
stroke="#ff0000"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(447.03025395870213 507.933536529541) rotate(0 49 -41)"
><path
d="M0.31 0.3 C16.93 -13.51, 82.32 -68.65, 98.61 -82.27"
stroke="#ff0000"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask><g stroke-linecap="round"
><g
transform="translate(533.0302539587021 508.933536529541) rotate(0 49 -41)"
><path
d="M-0.2 -0.54 C16.08 -14.31, 82.48 -68.77, 98.86 -82.44"
stroke="#ff0000"
stroke-width="2.5"
fill="none"
stroke-dasharray="8 10"
></path></g
></g
><mask></mask></svg
>
</div>
OTM options expire worthless, whereas ITM options hold value at expiration. However, simply being ITM doesn't guarantee profit. You need to consider the price you paid for the option. For instance, if you paid $5 per contract and the option is in the money by $2, you'd incur a $3 loss.
<br>
<br>
Profiting from the option at expiration requires it to be ITM by more than the amount you paid for it; simple as that.
OTM options expire worthless, whereas ITM options hold value at
expiration. However, simply being ITM doesn't guarantee profit.
You need to consider the price you paid for the option. For
instance, if you paid $5 per contract and the option is in the
money by $2, you'd incur a $3 loss.
<br />
<br />
Profiting from the option at expiration requires it to be ITM by more
than the amount you paid for it; simple as that.
</div>
<!--End Paragraph-->
@ -163,143 +336,218 @@ grid: {
<!--Start Paragraph-->
<div class="text-white text-lg pl-3 pr-3">
To break even at expiration, the underlying stock price must be higher than the strike price plus the premium you paid for the option.
<br>
<br>
For example, if you paid $5.00 for a 100 call and the stock is now worth $103, you will still lose money ($2 x 100 = $200) because you must cover the cost of the option.
<br>
<br>
Because of this, you really want the stock to go well above your strike price (depending on how much you paid for the option). Otherwise you will constantly be worrying if the stock is going to make it, which often leads to panic selling.
<br>
<br>
As a result, you want the stock to rise significantly above your strike price (depending on the amount you paid for the option). Otherwise, you'll be constantly worried about whether the stock will make it, which can lead to panic selling.
To break even at expiration, the underlying stock price must be
higher than the strike price plus the premium you paid for the
option.
<br />
<br />
For example, if you paid $5.00 for a 100 call and the stock is now
worth $103, you will still lose money ($2 x 100 = $200) because you
must cover the cost of the option.
<br />
<br />
Because of this, you really want the stock to go well above your strike
price (depending on how much you paid for the option). Otherwise you
will constantly be worrying if the stock is going to make it, which
often leads to panic selling.
<br />
<br />
As a result, you want the stock to rise significantly above your strike
price (depending on the amount you paid for the option). Otherwise,
you'll be constantly worried about whether the stock will make it,
which can lead to panic selling.
</div>
<!--End Paragraph-->
<h2 class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 mb-3 bg-opacity-[0.9]">
<h2
class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 mb-3 bg-opacity-[0.9]"
>
Effect of Time
</h2>
<!--Start Paragraph-->
<div class="text-white text-lg pl-3 pr-3">
A call option will lose value as time passes due to theta decay. The rate of this accelerates as expiration approaches, with the majority of the decay happening in the final days or weeks of the option's lifetime.
<br>
<br>
Time decay occurs because as time passes, the chance of the stock making a large move decreases. An OTM contract can have plenty of value months before expiration, but as the final days approach, it will rapidly lose value if it is still out of the money. Simply put, when there is less time remaining, there is less of a chance that the stock will be able to move in time, making the price that others are willing to pay for the option less.
<br>
<br>
Time decay can be "fought" by other factors. The most obvious of course, is the price of the underlying stock. If the stock moves upwards enough, it can increase the value of the call more than the time decay is taking away from the call. Another factor is implied volatility, which can offset the decay if it increases enough.
<br>
<br>
Absent of these factors, a call will lose value as expiration approaches. The final price of a call will depend on how far ITM it is. All OTM calls, which previously were worth something due to the time value, will be worthless at expiration.
A call option will lose value as time passes due to theta decay.
The rate of this accelerates as expiration approaches, with the
majority of the decay happening in the final days or weeks of the
option's lifetime.
<br />
<br />
Time decay occurs because as time passes, the chance of the stock making
a large move decreases. An OTM contract can have plenty of value months
before expiration, but as the final days approach, it will rapidly
lose value if it is still out of the money. Simply put, when there
is less time remaining, there is less of a chance that the stock will
be able to move in time, making the price that others are willing to
pay for the option less.
<br />
<br />
Time decay can be "fought" by other factors. The most obvious of course,
is the price of the underlying stock. If the stock moves upwards enough,
it can increase the value of the call more than the time decay is taking
away from the call. Another factor is implied volatility, which can
offset the decay if it increases enough.
<br />
<br />
Absent of these factors, a call will lose value as expiration approaches.
The final price of a call will depend on how far ITM it is. All OTM
calls, which previously were worth something due to the time value,
will be worthless at expiration.
</div>
<!--End Paragraph-->
<h2 class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 mb-3 bg-opacity-[0.9]">
<h2
class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 mb-3 bg-opacity-[0.9]"
>
Effect of Volatility
</h2>
<!--Start Paragraph-->
<div class="text-white text-lg pl-3 pr-3">
Volatility is a large unknown when trading options. Like the price of the stock itself, it is one thing that we cannot easily predict. Options will increase in value as implied volatility increases, and decrease when IV decreases. In fact, implied volatility is actually calculated from the price of the option itself compared to the "fair value" price of the option. When other traders are willing to pay more for an option, it increases that gap, which IV represents.
<br>
<br>
Why would an investor pay more for an option than the theoretical fair value? There are many reasons, all of which involve real world events that factor into their decision. The most common reason is that an earnings announcement is upcoming.
<br>
<br>
Typically, a stock moves either up or down a fair bit when earnings are announced, as the company either beats or doesn't meet earning expectations. You might think this would be the perfect time to buy a call, as there is a chance the stock makes a big move in the coming days. Of course, everyone else in the market also thinks this and wants to get in on the action. Demand from lots of buyers of an option will cause the price of the option to go up. (Just like how lots of demand from home buyers or concert-goers allows for sellers to charge more) It goes the other way too, as option sellers know their worth and aren't going to sell an option that could double in the coming days for cheap.
<br>
<br>
Since there's expectation of a price raise, and therefore higher implied volatility, options are going for more than they usually would. However, after the announcement, implied volatility (and the price of the option) rapidly collapse to typical levels. So even if the price raises a lot as a result of the earnings, the call option might be worth less just because the IV is now lower (no more expectations that the price could raise further).
Volatility is a large unknown when trading options. Like the price
of the stock itself, it is one thing that we cannot easily
predict. Options will increase in value as implied volatility
increases, and decrease when IV decreases. In fact, implied
volatility is actually calculated from the price of the option
itself compared to the "fair value" price of the option. When
other traders are willing to pay more for an option, it increases
that gap, which IV represents.
<br />
<br />
Why would an investor pay more for an option than the theoretical fair
value? There are many reasons, all of which involve real world events
that factor into their decision. The most common reason is that an
earnings announcement is upcoming.
<br />
<br />
Typically, a stock moves either up or down a fair bit when earnings
are announced, as the company either beats or doesn't meet earning
expectations. You might think this would be the perfect time to buy
a call, as there is a chance the stock makes a big move in the coming
days. Of course, everyone else in the market also thinks this and wants
to get in on the action. Demand from lots of buyers of an option will
cause the price of the option to go up. (Just like how lots of demand
from home buyers or concert-goers allows for sellers to charge more)
It goes the other way too, as option sellers know their worth and aren't
going to sell an option that could double in the coming days for cheap.
<br />
<br />
Since there's expectation of a price raise, and therefore higher implied
volatility, options are going for more than they usually would. However,
after the announcement, implied volatility (and the price of the option)
rapidly collapse to typical levels. So even if the price raises a lot
as a result of the earnings, the call option might be worth less just
because the IV is now lower (no more expectations that the price could
raise further).
</div>
<!--End Paragraph-->
<h2 class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 bg-opacity-[0.9]">
<h2
class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 bg-opacity-[0.9]"
>
Pros of Long Call Options
</h2>
<!--Start Paragraph-->
<div class="text-white text-lg pl-3 pr-3">
<ol class="text-white list-disc ml-5 sm:ml-3 p-3 text-[1rem]">
<li class="p-1">
Buying a call is much cheaper than buying 100 shares of the underlying stock, giving you lots of leverage for relatively little capital.
Buying a call is much cheaper than buying 100 shares of the
underlying stock, giving you lots of leverage for relatively
little capital.
</li>
<li class="p-1">
Like owning shares, a long call has no profit cap.
</li>
<li class="p-1">
You can never lose more than 100% of your investment. (This may sound like a con, but it is a benefit over other option strategies that have uncapped loss potential).
You can never lose more than 100% of your investment. (This
may sound like a con, but it is a benefit over other option
strategies that have uncapped loss potential).
</li>
</ol>
</div>
<!--End Paragraph-->
<h2 class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 bg-opacity-[0.9]">
<h2
class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 bg-opacity-[0.9]"
>
Cons of Long Call Options
</h2>
<!--Start Paragraph-->
<div class="text-white text-lg pl-3 pr-3">
<ol class="text-white list-disc ml-5 sm:ml-3 p-3 text-[1rem]">
<li class="p-1">
If the stock doesn't reach your breakeven point, you will lose your entire investment. If you owned shares instead, you may only be down a small amount, as the chance of a stock going to zero is slim. (But don't forget about Lehman Brothers)
If the stock doesn't reach your breakeven point, you will lose
your entire investment. If you owned shares instead, you may
only be down a small amount, as the chance of a stock going to
zero is slim. (But don't forget about Lehman Brothers)
</li>
<li class="p-1">
Being highly leveraged means that even a small downwards move can send the call plummeting, leaving you with a tough decision to cut your losses or hold out for longer.
Being highly leveraged means that even a small downwards move
can send the call plummeting, leaving you with a tough
decision to cut your losses or hold out for longer.
</li>
</ol>
</div>
<!--End Paragraph-->
<h2 class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 bg-opacity-[0.9]">
<h2
class="mt-10 text-white font-bold text-3xl bg-[#111011] sm:bg-[#09090B] p-3 bg-opacity-[0.9]"
>
Simple Example
</h2>
<!--Start Paragraph-->
<div class="text-white text-lg pl-3 pr-3">
When dealing with long call options, it's crucial to understand their value and how they work. At expiration, the value of a call option can be determined using a simple formula, also known as the intrinsic value:
When dealing with long call options, it's crucial to understand
their value and how they work. At expiration, the value of a call
option can be determined using a simple formula, also known as the
intrinsic value:
<span class="flex justify-center items-center pt-10">
<Katex math={"\\text{option price} = \\max(\\text{stock price} - \\text{strike price}, 0)"} />
<Katex
math={"\\text{option price} = \\max(\\text{stock price} - \\text{strike price}, 0)"}
/>
</span>
<br>
<br>
This formula reflects that if the stock price exceeds the strike price, the option is profitable and worth exercising. For instance, if the strike price is $100 and the stock is trading at $105, the option can be exercised to buy shares at $100, resulting in a profit of $5 per share when sold at the market price.
<br>
<br>
The value of a call option prior to expiry consists of both intrinsic value and extrinsic value, commonly referred to as time value. Calculating the extrinsic value manually can be complex, often necessitating the use of option pricing models.
<br />
<br />
This formula reflects that if the stock price exceeds the strike price,
the option is profitable and worth exercising. For instance, if the
strike price is $100 and the stock is trading at $105, the option can
be exercised to buy shares at $100, resulting in a profit of $5 per
share when sold at the market price.
<br />
<br />
The value of a call option prior to expiry consists of both intrinsic
value and extrinsic value, commonly referred to as time value. Calculating
the extrinsic value manually can be complex, often necessitating the
use of option pricing models.
<br>
<br>
To find the breakeven, simply add the price you paid for the contract(s) to the strike price:
<br />
<br />
To find the breakeven, simply add the price you paid for the contract(s)
to the strike price:
<span class="flex justify-center items-center pt-10">
<Katex math={"\\text{break-even} = \\text{strike price} + \\text{cost basis}"} />
<Katex
math={"\\text{break-even} = \\text{strike price} + \\text{cost basis}"}
/>
</span>
</div>
<!--End Paragraph-->
{#if data?.user?.tier !== 'Pro'}
{#if data?.user?.tier !== "Pro"}
<div class="mt-20">
<UpgradeToPro data={data} title="Start investing smarter than everyone else with our platform" />
<UpgradeToPro
{data}
title="Start investing smarter than everyone else with our platform"
/>
</div>
{/if}
</div>
</div>
</div>
</div>
</main>
</section>
<style>
.app {
height: 500px;

View File

@ -222,7 +222,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Stock
Lists · stocknear</title
Lists · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -232,7 +232,7 @@
content="Lists of stocks that share common characteristics. See companies ranked by market cap, employee count, sales or others."
/>
<!-- Other meta tags -->
<meta property="og:title" content="Stock Lists · stocknear" />
<meta property="og:title" content="Stock Lists · Stocknear" />
<meta
property="og:description"
content="Lists of stocks that share common characteristics. See companies ranked by market cap, employee count, sales or others."
@ -242,7 +242,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Stock Lists · stocknear" />
<meta name="twitter:title" content="Stock Lists · Stocknear" />
<meta
name="twitter:description"
content="Lists of stocks that share common characteristics. See companies ranked by market cap, employee count, sales or others."

View File

@ -74,7 +74,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Sign
In · stocknear</title
In · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -84,7 +84,7 @@
content="Sign In to to improve your stock analysis for free"
/>
<!-- Other meta tags -->
<meta property="og:title" content="Sign In · stocknear" />
<meta property="og:title" content="Sign In · Stocknear" />
<meta
property="og:description"
content="Sign In to to improve your stock analysis for free"
@ -94,7 +94,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Sign In · stocknear" />
<meta name="twitter:title" content="Sign In · Stocknear" />
<meta
name="twitter:description"
content="Sign In to to improve your stock analysis for free"

View File

@ -5,7 +5,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Markdown
Guide · stocknear</title
Guide · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -15,7 +15,7 @@
content="Markdown Guide to Post on Stocknear Community Page"
/>
<!-- Other meta tags -->
<meta property="og:title" content="Markdown Guide · stocknear" />
<meta property="og:title" content="Markdown Guide · Stocknear" />
<meta
property="og:description"
content="Markdown Guide to Post on Stocknear Community Page"
@ -25,7 +25,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Markdown Guide · stocknear" />
<meta name="twitter:title" content="Markdown Guide · Stocknear" />
<meta
name="twitter:description"
content="Markdown Guide to Post on Stocknear Community Page"

View File

@ -38,7 +38,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Today's
Top Stock {title} · stocknear
Top Stock {title} · Stocknear
</title>
<meta
name="description"
@ -48,7 +48,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Today's Top Stock ${title} · stocknear`}
content={`Today's Top Stock ${title} · Stocknear`}
/>
<meta
property="og:description"
@ -61,7 +61,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Today's Top Stock ${title} · stocknear`}
content={`Today's Top Stock ${title} · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -22,7 +22,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
Afterhours Top Stocks · stocknear
Afterhours Top Stocks · Stocknear
</title>
<meta
name="description"
@ -32,7 +32,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Today's Afterhours Top Stocks · stocknear`}
content={`Today's Afterhours Top Stocks · Stocknear`}
/>
<meta
property="og:description"
@ -45,7 +45,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Today's Afterhours Top Stocks · stocknear`}
content={`Today's Afterhours Top Stocks · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -38,7 +38,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Today's
Top Stock {title} · stocknear
Top Stock {title} · Stocknear
</title>
<meta
name="description"
@ -48,7 +48,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Today's Top Stock ${title} · stocknear`}
content={`Today's Top Stock ${title} · Stocknear`}
/>
<meta
property="og:description"
@ -61,7 +61,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Today's Top Stock ${title} · stocknear`}
content={`Today's Top Stock ${title} · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -38,7 +38,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Today's
Top Stock {title} · stocknear
Top Stock {title} · Stocknear
</title>
<meta
name="description"
@ -48,7 +48,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Today's Top Stock ${title} · stocknear`}
content={`Today's Top Stock ${title} · Stocknear`}
/>
<meta
property="og:description"
@ -61,7 +61,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Today's Top Stock ${title} · stocknear`}
content={`Today's Top Stock ${title} · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -22,7 +22,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
Premarket Top Stocks · stocknear
Premarket Top Stocks · Stocknear
</title>
<meta
name="description"
@ -32,7 +32,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Today's Premarket Top Stocks · stocknear`}
content={`Today's Premarket Top Stocks · Stocknear`}
/>
<meta
property="og:description"
@ -45,7 +45,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Today's Premarket Top Stocks · stocknear`}
content={`Today's Premarket Top Stocks · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -74,7 +74,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Today's
Stock Market News and Breaking Stories · stocknear
Stock Market News and Breaking Stories · Stocknear
</title>
<meta
name="description"
@ -84,7 +84,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Today's Stock Market News and Breaking Stories · stocknear`}
content={`Today's Stock Market News and Breaking Stories · Stocknear`}
/>
<meta
property="og:description"
@ -97,7 +97,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Today's Stock Market News and Breaking Stories · stocknear`}
content={`Today's Stock Market News and Breaking Stories · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -74,7 +74,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Today's
General News and Breaking Stories · stocknear
General News and Breaking Stories · Stocknear
</title>
<meta
name="description"
@ -84,7 +84,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Today's General News and Breaking Stories · stocknear`}
content={`Today's General News and Breaking Stories · Stocknear`}
/>
<meta
property="og:description"
@ -97,7 +97,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Today's General News and Breaking Stories · stocknear`}
content={`Today's General News and Breaking Stories · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -11,7 +11,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Free
Market Newsletter: Stay Informed in Just 2 Minutes Per Day · stocknear
Market Newsletter: Stay Informed in Just 2 Minutes Per Day · Stocknear
</title>
<meta
name="description"
@ -21,7 +21,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Free Market Newsletter: Stay Informed in Just 2 Minutes Per Day · stocknear`}
content={`Free Market Newsletter: Stay Informed in Just 2 Minutes Per Day · Stocknear`}
/>
<meta
property="og:description"
@ -38,7 +38,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Free Market Newsletter: Stay Informed in Just 2 Minutes Per Day · stocknear`}
content={`Free Market Newsletter: Stay Informed in Just 2 Minutes Per Day · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -60,14 +60,14 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Notifications
· stocknear</title
· Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<meta name="description" content="Free Stock Analysis" />
<!-- Other meta tags -->
<meta property="og:title" content="Notifications · stocknear" />
<meta property="og:title" content="Notifications · Stocknear" />
<meta property="og:description" content="Free Stock Analysis" />
<meta
property="og:image"
@ -78,7 +78,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Notifications · stocknear" />
<meta name="twitter:title" content="Notifications · Stocknear" />
<meta name="twitter:description" content="Free Stock Analysis" />
<meta
name="twitter:image"

View File

@ -795,7 +795,7 @@ function sendMessage(message) {
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Options
Flow Feed · stocknear
Flow Feed · Stocknear
</title>
<meta
name="description"
@ -803,7 +803,7 @@ function sendMessage(message) {
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Options Flow Feed · stocknear`} />
<meta property="og:title" content={`Options Flow Feed · Stocknear`} />
<meta
property="og:description"
content={`Explore unusual options from big institutional traders and hedge funds.`}
@ -813,7 +813,7 @@ function sendMessage(message) {
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Options Flow Feed · stocknear`} />
<meta name="twitter:title" content={`Options Flow Feed · Stocknear`} />
<meta
name="twitter:description"
content={`Explore unusual options from big institutional traders and hedge funds.`}

View File

@ -145,7 +145,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} US
Politician Stock Trade Tracker · stocknear</title
Politician Stock Trade Tracker · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -157,7 +157,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content="US Politician Stock Trade Tracker · stocknear"
content="US Politician Stock Trade Tracker · Stocknear"
/>
<meta
property="og:description"
@ -170,7 +170,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="US Politician Stock Trade Tracker · stocknear"
content="US Politician Stock Trade Tracker · Stocknear"
/>
<meta
name="twitter:description"

View File

@ -108,7 +108,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Which
stocks is {name} trading? · stocknear
stocks is {name} trading? · Stocknear
</title>
<meta
name="description"
@ -118,7 +118,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`Which stocks is ${name} trading? · stocknear`}
content={`Which stocks is ${name} trading? · Stocknear`}
/>
<meta
property="og:description"
@ -131,7 +131,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`Which stocks is ${name} trading? · stocknear`}
content={`Which stocks is ${name} trading? · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -63,7 +63,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Latest
Congressional Trading · stocknear</title
Congressional Trading · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -75,7 +75,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content="Latest Congressional Trading · stocknear"
content="Latest Congressional Trading · Stocknear"
/>
<meta
property="og:description"
@ -88,7 +88,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="Latest Congressional Trading · stocknear"
content="Latest Congressional Trading · Stocknear"
/>
<meta
name="twitter:description"

View File

@ -263,7 +263,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Price
Alert · stocknear</title
Alert · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -273,7 +273,7 @@
content="Set a price alert and get instant notification."
/>
<!-- Other meta tags -->
<meta property="og:title" content="Price Alert · stocknear" />
<meta property="og:title" content="Price Alert · Stocknear" />
<meta
property="og:description"
content="Set a price alert and get instant notification."
@ -283,7 +283,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Price Alert · stocknear" />
<meta name="twitter:title" content="Price Alert · Stocknear" />
<meta
name="twitter:description"
content="Set a price alert and get instant notification."

View File

@ -79,7 +79,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Pricing
· stocknear
· Stocknear
</title>
<meta
name="description"
@ -87,7 +87,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Pricing · stocknear`} />
<meta property="og:title" content={`Pricing · Stocknear`} />
<meta
property="og:description"
content={`Get unlimited access to all of our data and tools, including full financial history, full ETF holdings, and more.`}
@ -97,7 +97,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Pricing · stocknear`} />
<meta name="twitter:title" content={`Pricing · Stocknear`} />
<meta
name="twitter:description"
content={`Get unlimited access to all of our data and tools, including full financial history, full ETF holdings, and more.`}

View File

@ -7,19 +7,19 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Privacy
Policy · stocknear</title
Policy · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<!-- Other meta tags -->
<meta property="og:title" content="Privacy Policy · stocknear" />
<meta property="og:title" content="Privacy Policy · Stocknear" />
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Privacy Policy · stocknear" />
<meta name="twitter:title" content="Privacy Policy · Stocknear" />
<!-- Add more Twitter meta tags as needed -->
</svelte:head>

View File

@ -141,20 +141,20 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
My Account · stocknear</title
My Account · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<!-- Other meta tags -->
<meta property="og:title" content="My Account · stocknear" />
<meta property="og:title" content="My Account · Stocknear" />
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="My Account · stocknear" />
<meta name="twitter:title" content="My Account · Stocknear" />
<!-- Add more Twitter meta tags as needed -->
</svelte:head>

View File

@ -261,7 +261,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Wallstreetbets
Tracker · stocknear
Tracker · Stocknear
</title>
<meta
name="description"
@ -269,7 +269,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Wallstreetbets Tracker · stocknear`} />
<meta property="og:title" content={`Wallstreetbets Tracker · Stocknear`} />
<meta
property="og:description"
content={`Track the stocks and discussion of Wallstreetbets in realtime.`}
@ -279,7 +279,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Wallstreetbets Tracker · stocknear`} />
<meta name="twitter:title" content={`Wallstreetbets Tracker · Stocknear`} />
<meta
name="twitter:description"
content={`Track the stocks and discussion of Wallstreetbets in realtime.`}

View File

@ -69,7 +69,7 @@
<!-- HEADER FOR BETTER SEO -->
<svelte:head>
<meta charset="utf-8" />
<title>Sign Up · stocknear</title>
<title>Sign Up · Stocknear</title>
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta
name="description"

View File

@ -1,10 +1,8 @@
<script lang='ts'>
import toast from 'svelte-french-toast';
import Input from '$lib/components/Input.svelte';
import { pb } from '$lib/pocketbase';
import { goto } from '$app/navigation';
<script lang="ts">
import toast from "svelte-french-toast";
import Input from "$lib/components/Input.svelte";
import { pb } from "$lib/pocketbase";
import { goto } from "$app/navigation";
let loading = false;
let email: String;
@ -12,34 +10,46 @@ let email:String;
async function resetPassword(event) {
event.preventDefault();
try {
await pb.collection('users').requestPasswordReset(email);
toast.success('Password resetted. Check your emails!', {
style: 'border-radius: 200px; background: #333; color: #fff;',
await pb.collection("users").requestPasswordReset(email);
toast.success("Password resetted. Check your emails!", {
style: "border-radius: 200px; background: #333; color: #fff;",
});
goto('/login')
goto("/login");
} catch (err) {
toast.error({err}, {
style: 'border-radius: 200px; background: #333; color: #fff;',
});
};
toast.error(
{ err },
{
style: "border-radius: 200px; background: #333; color: #fff;",
},
);
}
}
</script>
<!-- HEADER FOR BETTER SEO -->
<svelte:head>
<meta charset="utf-8">
<title> Reset Password · stocknear</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Reset your password to sign in to your stocknear account.">
<meta charset="utf-8" />
<title>Reset Password · Stocknear</title>
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta
name="description"
content="Reset your password to sign in to your stocknear account."
/>
</svelte:head>
<div class="flex flex-col items-center min-h-screen w-full max-w-3xl m-auto mt-40">
<div
class="flex flex-col items-center min-h-screen w-full max-w-3xl m-auto mt-40"
>
<h2 class="text-center text-3xl font-bold tracking-tight text-white">
Reset Your Password
</h2>
<p class="text-center mt-1 text-white">We'll send you an email with a link to reset your password.</p>
<form on:submit={resetPassword} class="flex flex-col items-center space-y-2 w-5/6 sm:w-full pt-4" >
<p class="text-center mt-1 text-white">
We'll send you an email with a link to reset your password.
</p>
<form
on:submit={resetPassword}
class="flex flex-col items-center space-y-2 w-5/6 sm:w-full pt-4"
>
<input
class="input input-bordered w-full max-w-lg bg-[#242527] placeholder-gray-400 text-white whitespace-normal ring-2"
type="email"
@ -48,12 +58,12 @@ async function resetPassword(event) {
autocomplete="off"
/>
<div class="w-full max-w-lg pt-2">
<button type="submit" class="btn bg-blue-600 hover:bg-blue-500 text-white w-full">
<button
type="submit"
class="btn bg-blue-600 hover:bg-blue-500 text-white w-full"
>
Request Password Reset
</button>
</div>
</form>
</div>

View File

@ -36,7 +36,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Sentiment
Tracker · stocknear
Tracker · Stocknear
</title>
<meta
name="description"
@ -44,7 +44,7 @@
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Sentiment Tracker · stocknear`} />
<meta property="og:title" content={`Sentiment Tracker · Stocknear`} />
<meta
property="og:description"
content={`Stay ahead of the market with our real-time filtering of the most discussed and bullish stocks on social media. Discover trending stocks and make informed investment decisions today!`}
@ -54,7 +54,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Sentiment Tracker · stocknear`} />
<meta name="twitter:title" content={`Sentiment Tracker · Stocknear`} />
<meta
name="twitter:description"
content={`Stay ahead of the market with our real-time filtering of the most discussed and bullish stocks on social media. Discover trending stocks and make informed investment decisions today!`}

View File

@ -2332,7 +2332,7 @@ const handleKeyDown = (event) => {
/>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Stock
Screener · stocknear
Screener · Stocknear
</title>
<meta
@ -2340,7 +2340,7 @@ const handleKeyDown = (event) => {
content={`Build your Stock Screener to find profitable stocks.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Stock Screener · stocknear`} />
<meta property="og:title" content={`Stock Screener · Stocknear`} />
<meta
property="og:description"
content={`Build your Stock Screener to find profitable stocks.`}
@ -2350,7 +2350,7 @@ const handleKeyDown = (event) => {
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Stock Screener · stocknear`} />
<meta name="twitter:title" content={`Stock Screener · Stocknear`} />
<meta
name="twitter:description"
content={`Build your Stock Screener to find profitable stocks.`}

View File

@ -14,7 +14,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} List
of All Stock Ticker Symbols · stocknear
of All Stock Ticker Symbols · Stocknear
</title>
<meta
name="description"
@ -24,7 +24,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`List of All Stock Ticker Symbols · stocknear`}
content={`List of All Stock Ticker Symbols · Stocknear`}
/>
<meta
property="og:description"
@ -41,7 +41,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`List of All Stock Ticker Symbols · stocknear`}
content={`List of All Stock Ticker Symbols · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -53,12 +53,12 @@
function shareContent(url) {
if (navigator.share) {
navigator
.share({
?.share({
title: document.title,
url,
})
.then(() => console.log("Content shared successfully."))
.catch((error) => console.log("Error sharing content:", error));
?.then(() => console.log("Content shared successfully."))
?.catch((error) => console.log("Error sharing content:", error));
} else {
toast.error("Sharing is not supported by your device", {
style: "background: #333; color: #fff;",
@ -75,7 +75,7 @@
metrics: "metrics",
forecast: "/forecast",
financials: "/financials",
news: "/news",
profile: "/profile",
};
if (state !== "overview" && sectionMap[state]) {
@ -353,7 +353,7 @@
insider: "insider",
dividends: "dividends",
forecast: "forecast",
news: "news",
profile: "profile",
};
displaySection =
sectionMap[
@ -446,16 +446,20 @@
>
<svg
class="w-6 h-6 inline-block"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512"
><path
viewBox="0 0 24 24"
fill="none"
stroke="white"
xmlns="http://www.w3.org/2000/svg"
stroke="#fff"
><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g
id="SVGRepo_tracerCarrier"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="32"
d="M336 192h40a40 40 0 0 1 40 40v192a40 40 0 0 1-40 40H136a40 40 0 0 1-40-40V232a40 40 0 0 1 40-40h40m160-64l-80-80l-80 80m80 193V48"
/></svg
></g><g id="SVGRepo_iconCarrier">
<path
d="M20.3359 3.22136L3.87333 8.70889C3.56801 8.81066 3.55033 9.23586 3.84614 9.36263L9.89655 11.9557C9.96078 11.9832 10.0347 11.9752 10.0916 11.9346L16.0235 7.69749C16.2073 7.56618 16.4338 7.79266 16.3025 7.97648L12.0654 13.9084C12.0248 13.9653 12.0168 14.0392 12.0443 14.1034L14.6374 20.1539C14.7641 20.4497 15.1893 20.432 15.2911 20.1267L20.7786 3.66408C20.8698 3.39046 20.6095 3.13015 20.3359 3.22136Z"
fill="#fff"
></path>
</g></svg
>
</label>
<!--End Share Button-->
@ -949,6 +953,16 @@
>
Dividends
</a>
<a
href={`/stocks/${$stockTicker}/profile`}
on:click={() => changeSection("profile")}
class="p-2 px-5 cursor-pointer {displaySection ===
'profile'
? 'text-white bg-primary sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-primary sm:hover:bg-opacity-[0.95]'}"
>
Profile
</a>
</ul>
</nav>

View File

@ -727,7 +727,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{data?.companyName} ({$stockTicker}) Stock Price, Quote & News · stocknear
{data?.companyName} ({$stockTicker}) Stock Price, Quote & News · Stocknear
</title>
<meta
@ -737,7 +737,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${data?.companyName} (${$stockTicker}) Stock Price, Quote & News · stocknear`}
content={`${data?.companyName} (${$stockTicker}) Stock Price, Quote & News · Stocknear`}
/>
<meta
property="og:description"
@ -751,7 +751,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${data?.companyName} (${$stockTicker}) Stock Price, Quote & News · stocknear`}
content={`${data?.companyName} (${$stockTicker}) Stock Price, Quote & News · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -130,7 +130,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Dividend History, Dates & Yield · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Dividend History, Dates & Yield · Stocknear`}
/>
<meta
property="og:description"
@ -143,7 +143,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Dividend History, Dates & Yield · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Dividend History, Dates & Yield · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -404,7 +404,7 @@
/>
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Financials - Income Statement · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Financials - Income Statement · Stocknear`}
/>
<meta
property="og:description"
@ -414,7 +414,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Financials - Income Statement · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Financials - Income Statement · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -397,7 +397,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Cash Flow Statement · stocknear
{$displayCompanyName} ({$stockTicker}) Cash Flow Statement · Stocknear
</title>
<meta
name="description"
@ -407,7 +407,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Cash Flow Statement · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Cash Flow Statement · Stocknear`}
/>
<meta
property="og:description"
@ -420,7 +420,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Cash Flow Statement · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Cash Flow Statement · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -365,7 +365,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Financial Ratios and Metrics · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Financial Ratios and Metrics · Stocknear`}
/>
<meta
property="og:description"
@ -378,7 +378,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Financial Ratios and Metrics · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Financial Ratios and Metrics · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -457,7 +457,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Forecast Overview · stocknear
{$displayCompanyName} ({$stockTicker}) Forecast Overview · Stocknear
</title>
<meta
name="description"
@ -467,7 +467,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Forecast Overview · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Forecast Overview · Stocknear`}
/>
<meta
property="og:description"
@ -480,7 +480,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Forecast Overview · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Forecast Overview · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -1,5 +1,11 @@
<script lang="ts">
import { numberOfUnreadNotification, displayCompanyName, stockTicker, sentimentComponent, priceAnalysisComponent } from "$lib/store";
import {
numberOfUnreadNotification,
displayCompanyName,
stockTicker,
sentimentComponent,
priceAnalysisComponent,
} from "$lib/store";
import PriceAnalysis from "$lib/components/PriceAnalysis.svelte";
import SentimentAnalysis from "$lib/components/SentimentAnalysis.svelte";
import AnalystInsight from "$lib/components/AnalystInsight.svelte";
@ -14,47 +20,78 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Forecast AI · stocknear
{$displayCompanyName} ({$stockTicker}) Forecast AI · Stocknear
</title>
<meta name="description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
name="description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · stocknear`} />
<meta property="og:description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · Stocknear`}
/>
<meta
property="og:description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · stocknear`} />
<meta name="twitter:description" content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`} />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Forecast AI · Stocknear`}
/>
<meta
name="twitter:description"
content={`A list of analyst ratings for Advanced Micro Devices (AMD) stock. See upgrades, downgrades, price targets and more from top Wall Street stock analysts.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="bg-[#09090B] overflow-hidden text-white h-full mb-40 sm:mb-0 w-full">
<section
class="bg-[#09090B] overflow-hidden text-white h-full mb-40 sm:mb-0 w-full"
>
<div class="flex justify-center m-auto h-full overflow-hidden w-full">
<div class="relative flex justify-center items-center overflow-hidden w-full">
<div
class="relative flex justify-center items-center overflow-hidden w-full"
>
<div class="sm:p-7 w-full m-auto mt-2 sm:mt-0">
<Lazy>
<div class="w-full mt-10 sm:mt-0 m-auto sm:pt-6 {Object?.keys(data?.getAnalystInsight)?.length === 0 ? 'hidden' : ''}">
<AnalystInsight data={data} />
<div
class="w-full mt-10 sm:mt-0 m-auto sm:pt-6 {Object?.keys(
data?.getAnalystInsight,
)?.length === 0
? 'hidden'
: ''}"
>
<AnalystInsight {data} />
</div>
</Lazy>
<Lazy>
<div class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {Object?.keys(data?.getPriceAnalysis)?.length === 0 ? 'hidden' : ''}">
<PriceAnalysis data={data} />
<div
class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {Object?.keys(
data?.getPriceAnalysis,
)?.length === 0
? 'hidden'
: ''}"
>
<PriceAnalysis {data} />
</div>
</Lazy>
<Lazy>
<div class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {data?.getSentimentAnalysis?.length === 0 ? 'hidden' : ''}">
<SentimentAnalysis data={data} />
<div
class="w-full mt-10 sm:mt-5 m-auto sm:pb-6 sm:pt-6 {data
?.getSentimentAnalysis?.length === 0
? 'hidden'
: ''}"
>
<SentimentAnalysis {data} />
</div>
</Lazy>
</div>

View File

@ -197,7 +197,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Analyst Ratings · stocknear
{$displayCompanyName} ({$stockTicker}) Analyst Ratings · Stocknear
</title>
<meta
name="description"
@ -207,7 +207,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Analyst Ratings · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Analyst Ratings · Stocknear`}
/>
<meta
property="og:description"
@ -220,7 +220,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Analyst Ratings · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Analyst Ratings · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -238,7 +238,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
property="og:description"
@ -251,7 +251,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -121,7 +121,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
property="og:description"
@ -134,7 +134,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -26,7 +26,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
property="og:description"
@ -39,7 +39,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) US Congress & Senate Trading · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -81,7 +81,7 @@
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) · Q{quarter}
{year} · Earnings Call Transcript · stocknear
{year} · Earnings Call Transcript · Stocknear
</title>
<meta
name="description"
@ -91,7 +91,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) · Q${quarter} ${year} · Earnings Call Transcript · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) · Q${quarter} ${year} · Earnings Call Transcript · Stocknear`}
/>
<meta
property="og:description"
@ -104,7 +104,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) · Q${quarter} ${year} · Earnings Call Transcript · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) · Q${quarter} ${year} · Earnings Call Transcript · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -62,7 +62,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Business Metric Overview · stocknear
{$displayCompanyName} ({$stockTicker}) Business Metric Overview · Stocknear
</title>
<meta
name="description"
@ -70,7 +70,7 @@
/>
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Business Metric Overview · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Business Metric Overview · Stocknear`}
/>
<meta
property="og:description"
@ -80,7 +80,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Business Metric Overview · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Business Metric Overview · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -154,19 +154,19 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Revenue Breakdown · stocknear
{$displayCompanyName} ({$stockTicker}) Revenue Breakdown · Stocknear
</title>
<meta name="description" content={`Revenue & Geographic Breakdown`} />
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Revenue Breakdown · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Revenue Breakdown · Stocknear`}
/>
<meta property="og:description" content={`Revenue & Geographic Breakdown`} />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Revenue Breakdown · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Revenue Breakdown · Stocknear`}
/>
<meta name="twitter:description" content={`Revenue & Geographic Breakdown`} />
</svelte:head>

View File

@ -538,7 +538,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Options Activity · stocknear
{$displayCompanyName} ({$stockTicker}) Options Activity · Stocknear
</title>
<meta
name="description"
@ -548,7 +548,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Options Activity · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Options Activity · Stocknear`}
/>
<meta
property="og:description"
@ -561,7 +561,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Options Activity · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Options Activity · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -0,0 +1,28 @@
export const load = async ({ locals, params }) => {
const getSimilarStocks = async () => {
const { apiKey, apiURL } = locals;
const postData = {
ticker: params.tickerID,
};
// make the POST request to the endpoint
const response = await fetch(apiURL + "/similar-stocks", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData),
});
const output = await response.json();
return output;
};
// Make sure to return a promise
return {
getSimilarStocks: await getSimilarStocks(),
};
};

View File

@ -0,0 +1,87 @@
<script lang="ts">
import ArrowLogo from "lucide-svelte/icons/move-up-right";
export let data;
const similarStocks = data?.getSimilarStocks?.sort(
(a, b) => b?.dividendYield - a?.dividendYield,
);
</script>
<section class="w-auto overflow-hidden min-h-screen">
<div class="w-full overflow-hidden m-auto">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4">
<slot />
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full border border-gray-600 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>
<span class="text-white p-3 ml-3 mr-3">
Upgrade now for unlimited access to all data and tools.
</span>
</a>
</div>
{/if}
{#if similarStocks?.length > 0}
<div
class="w-full p-2 text-white border border-gray-600 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<h3 class="p-2 pt-4 text-xl font-semibold">Related Stocks</h3>
<table class="table table-sm table-compact w-full text-white">
<thead class="text-white"
><tr
><th
class="whitespace-nowrap border-b font-semibold text-sm text-left"
>Company</th
>
<th
class="whitespace-nowrap border-b font-semibold text-sm text-right"
>Dividend Yield</th
></tr
></thead
>
<tbody>
{#each similarStocks?.slice(0, 8) as item}
<tr class="border-gray-600 border-b"
><td class="text-left"
><a
href={`/stocks/${item?.symbol}`}
class="sm:hover:text-white text-blue-400"
>{item?.symbol}</a
></td
>
<td class="text-right cursor-normal"
>{item?.dividendYield !== null &&
item?.dividendYield !== undefined
? item?.dividendYield + "%"
: "n/a"}</td
>
</tr>
{/each}
</tbody>
</table>
</div>
{/if}
</aside>
</div>
</div>
</div>
</section>

View File

@ -0,0 +1,187 @@
import { error, fail, redirect } from "@sveltejs/kit";
import { validateData } from "$lib/utils";
import { loginUserSchema, registerUserSchema } from "$lib/schemas";
export const load = async ({ params, locals }) => {
const getStockDividend = async () => {
let newsList;
const { apiURL, apiKey } = locals;
const postData = {
ticker: params.tickerID,
};
// make the POST request to the endpoint
const response = await fetch(apiURL + "/stock-dividend", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData),
});
newsList = await response.json();
return newsList;
};
// Make sure to return a promise
return {
getStockDividend: await getStockDividend(),
};
};
export const actions = {
login: async ({ url, request, locals }) => {
const path = url?.href?.replace("/oauth2","")
const { formData, errors } = await validateData(
await request.formData(),
loginUserSchema,
);
if (errors) {
return fail(400, {
data: formData,
errors: errors.fieldErrors,
});
}
try {
await locals.pb
.collection("users")
.authWithPassword(formData.email, formData.password);
/*
if (!locals.pb?.authStore?.model?.verified) {
locals.pb.authStore.clear();
return {
notVerified: true,
};
}
*/
} catch (err) {
console.log("Error: ", err);
error(err.status, err.message);
}
redirect(302, path);
},
register: async ({ url, locals, request }) => {
const path = url?.href?.replace("/oauth2","")
const { formData, errors } = await validateData(
await request.formData(),
registerUserSchema,
);
if (errors) {
return fail(400, {
data: formData,
errors: errors.fieldErrors,
});
}
try {
let newUser = await locals.pb.collection("users").create(formData);
/*
await locals.pb?.collection('users').update(
newUser?.id, {
'freeTrial' : true,
'tier': 'Pro', //Give new users a free trial for the Pro Subscription
});
*/
await locals.pb.collection("users")?.requestVerification(formData.email);
} catch (err) {
console.log("Error: ", err);
error(err.status, err.message);
}
try {
await locals.pb
.collection("users")
.authWithPassword(formData.email, formData.password);
} catch (err) {
console.log("Error: ", err);
error(err.status, err.message);
}
redirect(303, path);
},
oauth2: async ({ url, locals, request, cookies }) => {
const path = url?.href?.replace("/oauth2","")
const authMethods = (await locals?.pb
?.collection("users")
?.listAuthMethods())?.oauth2;
const data = await request?.formData();
const providerSelected = data?.get("provider");
if (!authMethods) {
return {
authProviderRedirect: "",
authProviderState: "",
};
}
const redirectURL = `${url.origin}/oauth`;
const targetItem = authMethods?.providers?.findIndex(
(item) => item?.name === providerSelected,
);
//console.log("==================")
//console.log(authMethods.authProviders)
//console.log('target item is: ', targetItem)
const provider = authMethods.providers[targetItem];
const authProviderRedirect = `${provider.authUrl}${redirectURL}`;
const state = provider.state;
const verifier = provider.codeVerifier;
cookies.set("state", state, {
httpOnly: true,
sameSite: "lax",
secure: true,
path: "/",
maxAge: 60 * 60,
});
cookies.set("verifier", verifier, {
httpOnly: true,
sameSite: "lax",
secure: true,
path: "/",
maxAge: 60 * 60,
});
cookies.set("provider", providerSelected, {
httpOnly: true,
sameSite: "lax",
secure: true,
path: "/",
maxAge: 60 * 60,
});
cookies.set("path", path, {
httpOnly: true,
sameSite: "lax",
secure: true,
path: "/",
maxAge: 60,
});
redirect(302, authProviderRedirect);
},
};

View File

@ -0,0 +1,454 @@
<script lang="ts">
import {
numberOfUnreadNotification,
displayCompanyName,
stockTicker,
} from "$lib/store";
import { onMount } from "svelte";
import { monthNames } from "$lib/utils";
import { Chart } from "svelte-echarts";
import { init, use } from "echarts/core";
import { LineChart, BarChart } from "echarts/charts";
import { GridComponent, TooltipComponent } from "echarts/components";
import { CanvasRenderer } from "echarts/renderers";
use([LineChart, BarChart, TooltipComponent, GridComponent, CanvasRenderer]);
export let data;
let isLoaded = false;
let dateDistance;
let rawData = data?.getStockDividend;
let optionsDividend;
let exDividendDate = rawData?.history?.at(0)?.date;
let dividendYield = rawData?.dividendYield;
let annualDividend = rawData?.annualDividend;
let payoutFrequency = rawData?.payoutFrequency;
let payoutRatio = rawData?.payoutRatio;
let dividendGrowth = rawData?.dividendGrowth;
async function plotDividend() {
// Combine the data into an array of objects to keep them linked
const combinedData = rawData?.history?.map((item) => ({
date: item?.paymentDate,
dividend: item?.adjDividend?.toFixed(3),
}));
// Sort the combined data array based on the date
combinedData.sort((a, b) => new Date(a?.date) - new Date(b?.date));
// Separate the sorted data back into individual arrays
const dates = combinedData.map((item) => item.date);
const dividendList = combinedData?.map((item) => item.dividend);
const options = {
animation: false,
grid: {
left: "3%",
right: "3%",
bottom: "10%",
top: "10%",
containLabel: true,
},
xAxis: {
data: dates,
type: "category",
axisLabel: {
color: "#fff",
},
splitLine: {
show: false, // Disable x-axis grid lines
},
},
yAxis: [
{
type: "value",
splitLine: {
show: false, // Disable x-axis grid lines
},
axisLabel: {
show: false, // Hide y-axis labels
},
},
],
series: [
{
name: "Dividend per Share",
data: dividendList,
type: "bar",
smooth: true,
itemStyle: {
color: "#fff",
},
},
],
tooltip: {
trigger: "axis",
hideDelay: 100,
borderColor: "#969696", // Black border color
borderWidth: 1, // Border width of 1px
backgroundColor: "#313131", // Optional: Set background color for contrast
textStyle: {
color: "#fff", // Optional: Text color for better visibility
},
formatter: function (params) {
const date = params[0].name; // Get the date from the x-axis value
const dateParts = date.split("-");
const year = dateParts[0];
const monthIndex = parseInt(dateParts[1]) - 1;
const day = dateParts[2];
const formattedDate = `${monthNames[monthIndex]} ${day}, ${year}`;
// Return the tooltip content
return `${formattedDate}<br/> Dividend Per Share: ${params[0].value}`;
},
},
};
return options;
}
onMount(async () => {
optionsDividend = await plotDividend();
isLoaded = true;
});
</script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Company Profile & Overview -
Stocknear
</title>
<meta
name="description"
content={`Company profile for ${$displayCompanyName} (${$stockTicker}) with a description, list of executives, contact details and other key facts.`}
/>
<!-- Other meta tags -->
<meta
property="og:title"
content={`{$displayCompanyName} ({$stockTicker}) Company Profile & Overview · Stocknear`}
/>
<meta
property="og:description"
content={`Get the latest dividend data for ${$displayCompanyName} (${$stockTicker}), including dividend history, yield, key dates, growth and other metrics.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`{$displayCompanyName} ({$stockTicker}) Company Profile & Overview · Stocknear`}
/>
<meta
name="twitter:description"
content={`Company profile for ${$displayCompanyName} (${$stockTicker}) with a description, list of executives, contact details and other key facts.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full bg-[#09090B] overflow-hidden text-white h-full">
<div class="w-full flex h-full overflow-hidden">
<div
class="w-full relative flex justify-center items-center overflow-hidden"
>
<div class="sm:p-7 w-full m-auto mt-2 sm:mt-0">
<div class="w-full mb-6">
<h1 class="text-xl sm:text-2xl text-gray-200 font-bold mb-4 w-full">
Dividends
</h1>
<div
class="w-full text-white text-start p-3 sm:p-5 mb-10 rounded-md sm:flex sm:flex-row sm:items-center border border-gray-600 text-sm sm:text-[1rem]"
>
<svg
class="w-6 h-6 flex-shrink-0 inline-block sm:mr-2"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 256 256"
><path
fill="#fff"
d="M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m-4 48a12 12 0 1 1-12 12a12 12 0 0 1 12-12m12 112a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 0 16"
/></svg
>
{#if rawData?.history?.length !== 0}
{#if !dateDistance}
{$displayCompanyName} has an annual dividend of ${annualDividend}
per share, with a forward yield of
{dividendYield}%. The dividend is paid every
{payoutFrequency === 4
? "3 months"
: payoutFrequency === 2
? "6 months"
: payoutFrequency === 1
? "12 months"
: "n/a"}
and the last ex-dividend date was
{new Date(exDividendDate)?.toLocaleString("en-US", {
month: "short",
day: "numeric",
year: "numeric",
daySuffix: "2-digit",
})}
{:else}
{$displayCompanyName} issued its most recent dividend on
{new Date(rawData?.history?.at(0)?.date)?.toLocaleString(
"en-US",
{
month: "short",
day: "numeric",
year: "numeric",
daySuffix: "2-digit",
},
)}. Since then, the company has not distributed any further
dividends for over 12 months.
{/if}
{:else}
No dividend history available for {$displayCompanyName}.
{/if}
</div>
</div>
{#if rawData?.history?.length !== 0}
<div
class="mb-4 grid grid-cols-2 grid-rows-1 divide-gray-600 rounded-md border border-gray-600 md:grid-cols-3 md:grid-rows-1 divide-x"
>
<div class="p-4 bp:p-5 sm:p-6">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
Dividend Yield
</label>
<div
class="mt-1 break-words font-semibold leading-8 text-light text-xl"
>
{dividendYield !== "0.00" ? dividendYield : "0"}%
</div>
</div>
<div class="p-4 bp:p-5 sm:p-6 border-l border-b border-contrast">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
Annual Dividend
</label>
<div
class="mt-1 break-words font-semibold leading-8 text-light text-xl"
>
{annualDividend !== "0.00" ? annualDividend : "0"}
</div>
</div>
<div
class="p-4 bp:p-5 sm:p-6 border-t border-r border-contrast border-contrast"
>
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
Ex-Dividend Date
</label>
<div
class="mt-1 break-words font-semibold leading-8 text-light text-xl"
>
{new Date(exDividendDate)?.toLocaleString("en-US", {
month: "short",
day: "numeric",
year: "numeric",
daySuffix: "2-digit",
})}
</div>
</div>
<div class="p-4 bp:p-5 sm:p-6 border-t border-r border-contrast">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
Payout Frequency
</label>
<div
class="mt-1 break-words font-semibold leading-8 text-light text-xl"
>
{payoutFrequency === 4
? "Quartely"
: payoutFrequency === 2
? "Half-Yearly"
: payoutFrequency === 1
? "Annually"
: "n/a"}
</div>
</div>
<div class="p-4 bp:p-5 sm:p-6 border-t border-r border-contrast">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
Payout Ratio
</label>
<div
class="mt-1 break-words font-semibold leading-8 text-light text-xl"
>
{payoutRatio !== "0.00" ? payoutRatio : "0"}%
</div>
</div>
<div class="p-4 bp:p-5 sm:p-6 border-t border-r border-contrast">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
Dividend Growth
</label>
<div
class="mt-1 break-words font-semibold leading-8 text-light text-xl"
>
{dividendGrowth !== "NaN" ? dividendGrowth + "%" : "-"}
</div>
</div>
</div>
<div
class="flex flex-col sm:flex-row items-start sm:items-center w-full mt-14 mb-8"
>
<h3 class="text-xl text-white font-semibold">Dividends History</h3>
</div>
{#if isLoaded}
{#if rawData?.history?.length !== 0 && optionsDividend}
<div class="app w-full">
<Chart {init} options={optionsDividend} class="chart" />
</div>
<div
class="overflow-x-scroll no-scrollbar flex justify-start items-center w-full m-auto shadow-md rounded-none sm:rounded-md mb-4"
>
<table
class="table table-sm table-compact flex justify-start items-center w-full m-auto"
>
<thead>
<tr class="bg-[#09090B] border-b-slate-600 shadow-md">
<th
class="text-start bg-[#09090B] border-b border-[#09090B] text-white text-sm font-semibold"
>
Ex-Divid. Date
</th>
<th
class="text-end bg-[#09090B] border-b border-[#09090B] text-white text-sm font-semibold"
>
Cash Amount
</th>
<th
class="text-end bg-[#09090B] border-b border-[#09090B] text-white text-sm font-semibold"
>
Record Date
</th>
<th
class="text-end bg-[#09090B] border-b border-[#09090B] text-white text-sm font-semibold"
>
Pay Date
</th>
</tr>
</thead>
<tbody class="shadow-md">
{#each rawData?.history as item}
<tr class="text-gray-200 odd:bg-secondary">
<td
class="text-start text-sm sm:text-[1rem] whitespace-nowrap text-white font-medium border-b border-[#09090B]"
>
{new Date(item?.date)?.toLocaleString("en-US", {
month: "short",
day: "numeric",
year: "numeric",
daySuffix: "2-digit",
})}
</td>
<td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white border-b border-[#09090B]"
>
{item?.adjDividend?.toFixed(3)}
</td>
<td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white border-b border-[#09090B]"
>
{item?.recordDate?.length !== 0
? new Date(item?.recordDate)?.toLocaleString(
"en-US",
{
month: "short",
day: "numeric",
year: "numeric",
daySuffix: "2-digit",
},
)
: "n/a"}
</td>
<td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white border-b border-[#09090B]"
>
{item?.paymentDate?.length !== 0
? new Date(item?.paymentDate)?.toLocaleString(
"en-US",
{
month: "short",
day: "numeric",
year: "numeric",
daySuffix: "2-digit",
},
)
: "n/a"}
</td>
</tr>
{/each}
</tbody>
</table>
</div>
<span class="text-gray-200 text-sm italic">
* Dividend amounts are adjusted for stock splits when
applicable.
</span>
{:else}
<h1
class="text-xl m-auto flex justify-center text-gray-200 mb-4 mt-10"
>
No history found
</h1>
{/if}
{:else}
<div class="flex justify-center items-center h-80">
<div class="relative">
<label
class="bg-[#09090B] rounded-xl h-14 w-14 flex justify-center items-center absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"
>
<span class="loading loading-spinner loading-md text-gray-400"
></span>
</label>
</div>
</div>
{/if}
{/if}
</div>
</div>
</div>
</section>
<style>
.app {
height: 400px;
width: 100%;
}
@media (max-width: 560px) {
.app {
width: 100%;
height: 300px;
}
}
.chart {
width: 100%;
}
</style>

View File

@ -46,7 +46,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Statistics & Valuation Metrics · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Statistics & Valuation Metrics · Stocknear`}
/>
<meta
property="og:description"
@ -59,7 +59,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Statistics & Valuation Metrics · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Statistics & Valuation Metrics · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -349,7 +349,7 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Number of Employees · stocknear
{$displayCompanyName} ({$stockTicker}) Number of Employees · Stocknear
</title>
<meta
name="description"
@ -359,7 +359,7 @@
<!-- Other meta tags -->
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Number of Employees · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Number of Employees · Stocknear`}
/>
<meta
property="og:description"
@ -372,7 +372,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Number of Employees · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Number of Employees · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -374,12 +374,12 @@
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""}
{$displayCompanyName} ({$stockTicker}) Market Cap & Net Worth · stocknear
{$displayCompanyName} ({$stockTicker}) Market Cap & Net Worth · Stocknear
</title>
<meta name="description" content={`Historical Market Cap of the company.`} />
<meta
property="og:title"
content={`${$displayCompanyName} (${$stockTicker}) Market Cap & Net Worth · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Market Cap & Net Worth · Stocknear`}
/>
<meta
property="og:description"
@ -389,7 +389,7 @@
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content={`${$displayCompanyName} (${$stockTicker}) Market Cap & Net Worth · stocknear`}
content={`${$displayCompanyName} (${$stockTicker}) Market Cap & Net Worth · Stocknear`}
/>
<meta
name="twitter:description"

View File

@ -7,19 +7,19 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Terms
of Use · stocknear</title
of Use · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<!-- Other meta tags -->
<meta property="og:title" content="Terms of Use · stocknear" />
<meta property="og:title" content="Terms of Use · Stocknear" />
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Terms of Use · stocknear" />
<meta name="twitter:title" content="Terms of Use · Stocknear" />
<!-- Add more Twitter meta tags as needed -->
</svelte:head>

View File

@ -138,7 +138,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Options
Watchlist · stocknear</title
Watchlist · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -148,7 +148,7 @@
content="A option watchlist tracker tool. Add stocks and ETFs to keep track of their performance."
/>
<!-- Other meta tags -->
<meta property="og:title" content="Options Watchlist · stocknear" />
<meta property="og:title" content="Options Watchlist · Stocknear" />
<meta
property="og:description"
content="A option watchlist tracker tool. Add stocks and ETFs to keep track of their performance."
@ -158,7 +158,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Options Watchlist · stocknear" />
<meta name="twitter:title" content="Options Watchlist · Stocknear" />
<meta
name="twitter:description"
content="A option watchlist tracker tool. Add stocks and ETFs to keep track of their performance."

View File

@ -1000,7 +1000,7 @@
<svelte:head>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Stock
Watchlist · stocknear</title
Watchlist · Stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -1010,7 +1010,7 @@
content="A stock watchlist tracker tool. Add stocks and ETFs to keep track of their performance."
/>
<!-- Other meta tags -->
<meta property="og:title" content="Stock Watchlist · stocknear" />
<meta property="og:title" content="Stock Watchlist · Stocknear" />
<meta
property="og:description"
content="A stock watchlist tracker tool. Add stocks and ETFs to keep track of their performance."
@ -1020,7 +1020,7 @@
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Stock Watchlist · stocknear" />
<meta name="twitter:title" content="Stock Watchlist · Stocknear" />
<meta
name="twitter:description"
content="A stock watchlist tracker tool. Add stocks and ETFs to keep track of their performance."