47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import { computed, signal } from "@preact/signals";
|
|
|
|
export const isPopperOpen = signal(false);
|
|
export const popperAnchorEl = signal(null);
|
|
export const popperContent = signal(null);
|
|
|
|
export const availableUnderlyings = signal([]);
|
|
export const underlying = signal(null);
|
|
|
|
export const daysToFrontExpiration = signal(14);
|
|
|
|
export const daysBetweenFrontAndBackExpiration = signal(14);
|
|
|
|
export const strikePercentageFromUnderlyingPrice = signal(1.4);
|
|
export const strikePercentageFromUnderlyingPriceRadius = signal(0.05);
|
|
|
|
export const exitToFrontExpiration = signal(2);
|
|
|
|
export const stockPriceChartData = signal([]);
|
|
|
|
export const similarCalendarPriceChartData = signal([]);
|
|
|
|
export const calendarExitPriceChartData = signal([]);
|
|
|
|
export const lookbackPeriodStart = signal("2022-01-01");
|
|
export const lookbackPeriodEnd = signal("2024-01-01");
|
|
|
|
export const maxChartPrice = computed(() =>
|
|
Math.max(
|
|
Math.max.apply(
|
|
null,
|
|
similarCalendarPriceChartData.value.map((d) => d.y)
|
|
),
|
|
Math.max.apply(
|
|
null,
|
|
calendarExitPriceChartData.value.map((d) => d.y)
|
|
)
|
|
)
|
|
);
|
|
|
|
export const maxN = computed(() =>
|
|
Math.max.apply(
|
|
null,
|
|
calendarExitPriceChartData.value.map((d) => d.n)
|
|
)
|
|
);
|