openpondai/agents/hip4-edge-bot
OpenTool app
typescript
import type { HyperliquidOrderResponse } from "opentool/adapters/hyperliquid";
import type { Hip4EdgeSide, Hip4ModelWindow } from "../config";
import type { Hip4EdgeCalculation } from "./calculate";
export type Hip4GatewayBookSide = {
marketDataCoin: string;
bid: number | null;
ask: number | null;
mid: number | null;
topAskDepthUsd: number | null;
askDepthUsd: number | null;
levels?: {
bids?: Array<{ price: number; size: number; notionalUsd: number }>;
asks?: Array<{ price: number; size: number; notionalUsd: number }>;
};
};
export type Hip4GatewayMarket = {
outcomeId: number;
seriesKey: string | null;
roundKey: string | null;
condition: string | null;
underlying: string;
direction: string | null;
targetPrice: number | null;
period: string | null;
expiryAt: string | null;
yes: Hip4GatewayBookSide;
no: Hip4GatewayBookSide;
model: {
selectedModel: Hip4ModelWindow;
realizedVolatility: Record<string, number | null>;
fairYes: {
selected: number | null;
min: number | null;
max: number | null;
[key: string]: number | null;
};
fairNoSelected: number | null;
};
edge: {
yesBuyEdge: number | null;
noBuyEdge: number | null;
yesBuyRoi: number | null;
noBuyRoi: number | null;
positiveWindowCount: number;
consensusDirection: "yes" | "no" | "none";
confidence: "high" | "medium" | "low";
bestSignal: "buy-yes" | "buy-no" | "none";
};
distance: {
hoursToExpiry: number | null;
distanceToTargetPct: number | null;
};
};
export type Hip4GatewayAnalytics = {
environment: "mainnet" | "testnet";
underlying: string;
asOf: string;
selectedModel: Hip4ModelWindow;
depthUsd: number;
btcReference: {
btcMid: number | null;
btcSpotMid: number | null;
btcPerpMid: number | null;
btcPerpMark: number | null;
btcOracle: number | null;
btcFundingRate: number | null;
btcReferenceAt: string;
};
realizedVolatility: Record<string, number | null>;
markets: Hip4GatewayMarket[];
warnings: string[];
};
export type Hip4EdgeCandidate = {
side: Hip4EdgeSide;
market: Hip4GatewayMarket;
seriesKey: string | null;
roundKey: string | null;
marketDataCoin: string;
ask: number;
fairProbability: number;
edge: number;
roi: number;
calculation: Hip4EdgeCalculation;
askDepthUsd: number | null;
stateKey: string;
};
export type Hip4EdgeBotStateEntry = {
side: Hip4EdgeSide;
seriesKey: string | null;
roundKey: string | null;
marketDataCoin: string;
executedAt: string;
edge: number;
roi: number;
};
export type Hip4EdgeBotState = Record<string, Hip4EdgeBotStateEntry>;
export type Hip4EdgeExecutionResult = {
side: Hip4EdgeSide;
marketDataCoin: string;
price: string;
size: string;
budgetUsd: number;
orderIds?: {
oids: string[];
cloids: string[];
};
orderResponse?: HyperliquidOrderResponse;
};