feat: strategy builder
This commit is contained in:
@@ -1822,12 +1822,12 @@ export const DEFAULT_GREEK_PROFILE: GreekProfile = {
|
||||
|
||||
export const useOptionChainSlice = (
|
||||
symbol: string, horizonDays: number, nExpiries = 3, enabled = true,
|
||||
dteMin?: number | null, dteMax?: number | null,
|
||||
dteMin?: number | null, dteMax?: number | null, asOf?: string | null,
|
||||
) =>
|
||||
useQuery<ChainSlice>({
|
||||
queryKey: ['strategy-builder-chain', symbol, horizonDays, nExpiries, dteMin, dteMax],
|
||||
queryKey: ['strategy-builder-chain', symbol, horizonDays, nExpiries, dteMin, dteMax, asOf],
|
||||
queryFn: () => api.get('/strategy-builder/chain', {
|
||||
params: { symbol, horizon_days: horizonDays, n_expiries: nExpiries, dte_min: dteMin ?? undefined, dte_max: dteMax ?? undefined },
|
||||
params: { symbol, horizon_days: horizonDays, n_expiries: nExpiries, dte_min: dteMin ?? undefined, dte_max: dteMax ?? undefined, as_of: asOf || undefined },
|
||||
}).then(r => r.data),
|
||||
enabled: enabled && !!symbol,
|
||||
staleTime: 30_000,
|
||||
@@ -1845,11 +1845,14 @@ export const usePriceStrategy = () =>
|
||||
// can't be built right now (e.g. calendar/diagonal with only one real expiry available)
|
||||
// is simply absent from the response.
|
||||
export type StrategyPreset = { key: string; label: string; n_legs: number; legs: StrategyLeg[] }
|
||||
export const usePresets = (symbol: string, horizonDays: number, enabled: boolean, dteMin?: number | null, dteMax?: number | null) =>
|
||||
export const usePresets = (
|
||||
symbol: string, horizonDays: number, enabled: boolean,
|
||||
dteMin?: number | null, dteMax?: number | null, asOf?: string | null,
|
||||
) =>
|
||||
useQuery<StrategyPreset[]>({
|
||||
queryKey: ['strategy-builder-presets', symbol, horizonDays, dteMin, dteMax],
|
||||
queryKey: ['strategy-builder-presets', symbol, horizonDays, dteMin, dteMax, asOf],
|
||||
queryFn: () => api.get('/strategy-builder/presets', {
|
||||
params: { symbol, horizon_days: horizonDays, dte_min: dteMin ?? undefined, dte_max: dteMax ?? undefined },
|
||||
params: { symbol, horizon_days: horizonDays, dte_min: dteMin ?? undefined, dte_max: dteMax ?? undefined, as_of: asOf || undefined },
|
||||
}).then(r => r.data),
|
||||
enabled: enabled && !!symbol,
|
||||
staleTime: 30_000,
|
||||
|
||||
Reference in New Issue
Block a user