openpondai/agents/signal-bot
OpenTool app
typescript
import type {
ExecutionConfig,
SignalBotConfig,
SignalResolution,
} from "./types";
export const CONFIG_ENV = "OPENTOOL_PUBLIC_HL_SIGNAL_BOT_CONFIG";
export const DEFAULT_ASSET = "BTC";
export const DEFAULT_SIGNAL_TYPE: SignalBotConfig["signalType"] = "price";
export const DEFAULT_AMOUNT_USD = 200;
export const DEFAULT_RESOLUTION: SignalResolution = "60";
export const DEFAULT_COUNT_BACK = 240;
export const DEFAULT_SIGNAL_SCHEDULE_CRON = "0 * * * *";
export const DEFAULT_RSI_PRESET = "balanced";
export const DEFAULT_RSI_OVERBOUGHT = 70;
export const DEFAULT_RSI_OVERSOLD = 30;
export const DEFAULT_SMA_PERIOD = 200;
export const DEFAULT_EMA_PERIOD = 200;
export const DEFAULT_MA_CROSS_FAST = 50;
export const DEFAULT_MA_CROSS_SLOW = 200;
export const DEFAULT_BB_PERIOD = 20;
export const DEFAULT_BB_STD_DEV = 2;
export const DEFAULT_DONCHIAN_PERIOD = 20;
export const DEFAULT_EXECUTION_ENV: NonNullable<ExecutionConfig["environment"]> =
"mainnet";
export const DEFAULT_EXECUTION_MODE: NonNullable<ExecutionConfig["mode"]> =
"long-only";
export const DEFAULT_SLIPPAGE_BPS = 50;
export const TEMPLATE_CONFIG_VERSION = 7;
export const TEMPLATE_CONFIG_ENV_VAR = "OPENTOOL_PUBLIC_HL_SIGNAL_BOT_CONFIG";
export const RSI_PRESETS: Record<string, { overbought: number; oversold: number }> =
{
balanced: { overbought: 70, oversold: 30 },
tighter: { overbought: 65, oversold: 35 },
wider: { overbought: 80, oversold: 20 },
};
export const LIMITS = {
movingAverage: { min: 2, max: 240 },
maCross: { fastMin: 2, fastMax: 239, slowMin: 3, slowMax: 240 },
bollinger: { periodMin: 5, periodMax: 240, stdDevMin: 0.5, stdDevMax: 5 },
donchian: { min: 2, max: 240 },
} as const;
export const TEMPLATE_CONFIG_DEFAULTS: SignalBotConfig = {
configVersion: TEMPLATE_CONFIG_VERSION,
platform: "hyperliquid",
signalType: DEFAULT_SIGNAL_TYPE,
asset: DEFAULT_ASSET,
indicators: ["rsi"],
allocationMode: "fixed",
amountUsd: DEFAULT_AMOUNT_USD,
schedule: {
cron: DEFAULT_SIGNAL_SCHEDULE_CRON,
enabled: false,
notifyEmail: false,
},
resolution: DEFAULT_RESOLUTION,
countBack: DEFAULT_COUNT_BACK,
price: {
rsiPreset: DEFAULT_RSI_PRESET,
},
execution: {
enabled: false,
environment: DEFAULT_EXECUTION_ENV,
mode: DEFAULT_EXECUTION_MODE,
indicator: "rsi",
},
};