diff --git a/frontend/src/pages/HistoricalCalendarPrices.tsx b/frontend/src/pages/HistoricalCalendarPrices.tsx index 32cb684..57121ef 100644 --- a/frontend/src/pages/HistoricalCalendarPrices.tsx +++ b/frontend/src/pages/HistoricalCalendarPrices.tsx @@ -25,175 +25,171 @@ import { ChartJS.register(LinearScale, CategoryScale, PointElement, Tooltip, Title); const availableUnderlyings = signal([]); -const chosenUnderlying = signal(null); +const underlying = signal(null); -const chosenDaysToFrontExpiration = signal(14); +const daysToFrontExpiration = signal(14); -const chosenDaysBetweenFrontAndBackExpiration = signal(14); +const daysBetweenFrontAndBackExpiration = signal(14); -const chosenStrikePercentageFromUnderlyingPrice = signal(1.4); -const chosenStrikePercentageFromUnderlyingPriceRadius = signal(0.05); +const strikePercentageFromUnderlyingPrice = signal(1.4); +const strikePercentageFromUnderlyingPriceRadius = signal(0.05); -const chosenExitToFrontExpiration = signal(2); +const exitToFrontExpiration = signal(2); -const historicalStockQuoteChartData = signal([]); +const stockPriceChartData = signal([]); -const historicalCalendarQuoteChartData = signal([]); +const similarCalendarPriceChartData = signal([]); -const historicalCalendarExitQuoteChartData = signal([]); +const calendarExitPriceChartData = signal([]); -const chosenLookbackPeriodStart = signal("2022-01-01"); -const chosenLookbackPeriodEnd = signal("2024-01-01"); +const lookbackPeriodStart = signal("2022-01-01"); +const lookbackPeriodEnd = signal("2024-01-01"); const maxChartPrice = computed(() => Math.max( Math.max.apply( null, - historicalCalendarQuoteChartData.value.map((d) => d.y), + similarCalendarPriceChartData.value.map((d) => d.y) ), Math.max.apply( null, - historicalCalendarExitQuoteChartData.value.map((d) => d.y), - ), - ), + calendarExitPriceChartData.value.map((d) => d.y) + ) + ) ); const maxN = computed(() => Math.max.apply( null, - historicalCalendarExitQuoteChartData.value.map((d) => d.n), - ), + calendarExitPriceChartData.value.map((d) => d.n) + ) ); -const refreshHistoricalStockQuoteChartData = () => { - historicalStockQuoteChartData.value = []; - trpc.getHistoricalStockQuoteChartData +const refreshStockPriceChartData = () => { + stockPriceChartData.value = []; + trpc.StockPriceChart.getChartData .query({ - underlying: chosenUnderlying.value, - lookbackPeriodStart: chosenLookbackPeriodStart.value, - lookbackPeriodEnd: chosenLookbackPeriodEnd.value, + underlying: underlying.value, + lookbackPeriodStart: lookbackPeriodStart.value, + lookbackPeriodEnd: lookbackPeriodEnd.value, }) - .then((getHistoricalStockQuoteChartDataResponse) => { - historicalStockQuoteChartData.value = - getHistoricalStockQuoteChartDataResponse; + .then((getChartDataResponse) => { + stockPriceChartData.value = getChartDataResponse; }); }; -const refreshHistoricalCalendarQuoteChartData = () => { - historicalCalendarQuoteChartData.value = []; - trpc.getHistoricalCalendarQuoteChartData +const refreshSimilarCalendarPriceChartData = () => { + similarCalendarPriceChartData.value = []; + trpc.SimilarCalendarPriceChart.getChartData .query({ - underlying: chosenUnderlying.value, - daysToFrontExpiration: chosenDaysToFrontExpiration.value, + underlying: underlying.value, + daysToFrontExpiration: daysToFrontExpiration.value, daysBetweenFrontAndBackExpiration: - chosenDaysBetweenFrontAndBackExpiration.value, + daysBetweenFrontAndBackExpiration.value, strikePercentageFromUnderlyingPriceRangeMin: - chosenStrikePercentageFromUnderlyingPrice.value - - chosenStrikePercentageFromUnderlyingPriceRadius.value, + strikePercentageFromUnderlyingPrice.value - + strikePercentageFromUnderlyingPriceRadius.value, strikePercentageFromUnderlyingPriceRangeMax: - chosenStrikePercentageFromUnderlyingPrice.value + - chosenStrikePercentageFromUnderlyingPriceRadius.value, - lookbackPeriodStart: chosenLookbackPeriodStart.value, - lookbackPeriodEnd: chosenLookbackPeriodEnd.value, + strikePercentageFromUnderlyingPrice.value + + strikePercentageFromUnderlyingPriceRadius.value, + lookbackPeriodStart: lookbackPeriodStart.value, + lookbackPeriodEnd: lookbackPeriodEnd.value, }) - .then((getHistoricalCalendarQuoteChartDataResponse) => { - historicalCalendarQuoteChartData.value = - getHistoricalCalendarQuoteChartDataResponse; + .then((getChartDataResponse) => { + similarCalendarPriceChartData.value = getChartDataResponse; }); }; -const refreshHistoricalCalendarExitQuoteChartData = () => { - historicalCalendarExitQuoteChartData.value = []; - trpc.getHistoricalCalendarExitQuoteChartData +const refreshcalendarExitPriceChartData = () => { + calendarExitPriceChartData.value = []; + trpc.CalendarExitPriceChart.getChartData .query({ - underlying: chosenUnderlying.value, - daysToFrontExpiration: chosenExitToFrontExpiration.value, + underlying: underlying.value, + daysToFrontExpiration: exitToFrontExpiration.value, daysBetweenFrontAndBackExpiration: - chosenDaysBetweenFrontAndBackExpiration.value, - lookbackPeriodStart: chosenLookbackPeriodStart.value, - lookbackPeriodEnd: chosenLookbackPeriodEnd.value, + daysBetweenFrontAndBackExpiration.value, + lookbackPeriodStart: lookbackPeriodStart.value, + lookbackPeriodEnd: lookbackPeriodEnd.value, }) - .then((getHistoricalCalendarExitQuoteChartDataResponse) => { - historicalCalendarExitQuoteChartData.value = - getHistoricalCalendarExitQuoteChartDataResponse; + .then((getChartDataResponse) => { + calendarExitPriceChartData.value = getChartDataResponse; }); }; const handleInit = () => { - trpc.getAvailableUnderlyings.query().then((availableUnderlyingsResponse) => { - availableUnderlyings.value = availableUnderlyingsResponse; - chosenUnderlying.value = availableUnderlyingsResponse[0]; - refreshHistoricalStockQuoteChartData(); - refreshHistoricalCalendarQuoteChartData(); - refreshHistoricalCalendarExitQuoteChartData(); - }); + trpc.CalendarCharacteristicsForm.getAvailableUnderlyings + .query() + .then((availableUnderlyingsResponse) => { + availableUnderlyings.value = availableUnderlyingsResponse; + underlying.value = availableUnderlyingsResponse[0]; + refreshStockPriceChartData(); + refreshSimilarCalendarPriceChartData(); + refreshcalendarExitPriceChartData(); + }); }; const handleUnderlyingChange = (e) => { - if (chosenUnderlying.value !== e.target.value) { - chosenUnderlying.value = e.target.value; - refreshHistoricalStockQuoteChartData(); - refreshHistoricalCalendarQuoteChartData(); - refreshHistoricalCalendarExitQuoteChartData(); + if (underlying.value !== e.target.value) { + underlying.value = e.target.value; + refreshStockPriceChartData(); + refreshSimilarCalendarPriceChartData(); + refreshcalendarExitPriceChartData(); } }; const handleDaysToFrontExpirationChange = (e) => { - if (chosenDaysToFrontExpiration.value !== Number.parseInt(e.target.value)) { - chosenDaysToFrontExpiration.value = Number.parseInt(e.target.value); - refreshHistoricalCalendarQuoteChartData(); + if (daysToFrontExpiration.value !== Number.parseInt(e.target.value)) { + daysToFrontExpiration.value = Number.parseInt(e.target.value); + refreshSimilarCalendarPriceChartData(); } }; const handleDaysBetweenFrontAndBackExpirationChange = (e) => { if ( - chosenDaysBetweenFrontAndBackExpiration.value !== - Number.parseInt(e.target.value) + daysBetweenFrontAndBackExpiration.value !== Number.parseInt(e.target.value) ) { - chosenDaysBetweenFrontAndBackExpiration.value = Number.parseInt( - e.target.value, - ); - refreshHistoricalCalendarQuoteChartData(); - refreshHistoricalCalendarExitQuoteChartData(); + daysBetweenFrontAndBackExpiration.value = Number.parseInt(e.target.value); + refreshSimilarCalendarPriceChartData(); + refreshcalendarExitPriceChartData(); } }; const handleStrikePercentageFromUnderlyingPriceChange = (e) => { if ( - chosenStrikePercentageFromUnderlyingPrice.value !== + strikePercentageFromUnderlyingPrice.value !== Number.parseFloat(e.target.value) ) { - chosenStrikePercentageFromUnderlyingPrice.value = Number.parseFloat( - e.target.value, + strikePercentageFromUnderlyingPrice.value = Number.parseFloat( + e.target.value ); - refreshHistoricalCalendarQuoteChartData(); + refreshSimilarCalendarPriceChartData(); } }; const handleStrikePercentageFromUnderlyingPriceRadiusChange = (e) => { if ( - chosenStrikePercentageFromUnderlyingPriceRadius.value !== + strikePercentageFromUnderlyingPriceRadius.value !== Number.parseFloat(e.target.value) ) { - chosenStrikePercentageFromUnderlyingPriceRadius.value = Number.parseFloat( - e.target.value, + strikePercentageFromUnderlyingPriceRadius.value = Number.parseFloat( + e.target.value ); - refreshHistoricalCalendarQuoteChartData(); + refreshSimilarCalendarPriceChartData(); } }; const handleExitToFrontExpirationChange = (e) => { - if (chosenExitToFrontExpiration.value !== Number.parseInt(e.target.value)) { - chosenExitToFrontExpiration.value = Number.parseInt(e.target.value); - refreshHistoricalCalendarExitQuoteChartData(); + if (exitToFrontExpiration.value !== Number.parseInt(e.target.value)) { + exitToFrontExpiration.value = Number.parseInt(e.target.value); + refreshcalendarExitPriceChartData(); } }; const handleLookbackPeriodStartChange = (e) => { - if (chosenLookbackPeriodStart.value !== e.target.value) { - chosenLookbackPeriodStart.value = e.target.value; - refreshHistoricalStockQuoteChartData(); - refreshHistoricalCalendarQuoteChartData(); - refreshHistoricalCalendarExitQuoteChartData(); + if (lookbackPeriodStart.value !== e.target.value) { + lookbackPeriodStart.value = e.target.value; + refreshStockPriceChartData(); + refreshSimilarCalendarPriceChartData(); + refreshcalendarExitPriceChartData(); } }; const handleLookbackPeriodEndChange = (e) => { - if (chosenLookbackPeriodEnd.value !== e.target.value) { - chosenLookbackPeriodEnd.value = e.target.value; - refreshHistoricalStockQuoteChartData(); - refreshHistoricalCalendarQuoteChartData(); - refreshHistoricalCalendarExitQuoteChartData(); + if (lookbackPeriodEnd.value !== e.target.value) { + lookbackPeriodEnd.value = e.target.value; + refreshStockPriceChartData(); + refreshSimilarCalendarPriceChartData(); + refreshcalendarExitPriceChartData(); } }; @@ -215,7 +211,7 @@ export function HistoricalCalendarPrices() { Available Underlyings