[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82291":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":15,"starSnapshotCount":15,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},82291,"asterdex-trading-bot","metanode-trade\u002Fasterdex-trading-bot","metanode-trade","AsterDEX trading bot, perp trading, asterDEX auto trading bot, asterDEX trading bot, perp trading, asterDEX auto trading bot, asterDEX trading bot, perp trading, asterDEX auto trading bot, asterDEX trading bot, perp trading, asterDEX auto trading bot, asterDEX trading bot, perp trading, asterDEX auto trading bot,",null,"TypeScript",8,95,74,1,0,42.95,false,"main",true,[21,22,23,24,25,26,27],"aster","aster-dex","bot","bun","hyperliquid","perpetuals","trading-bot","2026-06-12 04:01:37","# AsterDEX Trading Bot\n\n> High-performance perpetual futures bot for **Aster DEX**, **GRVT**, and **Hyperliquid** — with three battle-tested strategies, real-time terminal UI, and production-ready PM2 deployment. Runs on Node.js with TypeScript.\n\n[![Node.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNode.js-≥20-339933?logo=node.js&logoColor=white)](https:\u002F\u002Fnodejs.org\u002F)\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5-3178C6?logo=typescript&logoColor=white)](https:\u002F\u002Fwww.typescriptlang.org\u002F)\n\n---\n\n## Why This Bot?\n\nMost exchange bots are either a black box or a spaghetti script. This one gives you:\n\n- **Three strategies** — trend following, pure market making, offset market making\n- **Multi-exchange** — switch between Aster, GRVT, and Hyperliquid via one config\n- **Live terminal UI** — Ink\u002FReact dashboard for positions, PnL, and engine state\n- **WebSocket + REST** — real-time market data with REST reconciliation on restart\n- **PM2 ready** — one-command silent deployment for VPS hosting\n- **Vitest coverage** — strategy and adapter tests included\n\nWhether you're running Bollinger-gated trend trades or posting maker quotes with chase logic, the engine handles exchange filters, tick sizes, and position reconciliation.\n\n---\n\n## Strategies\n\n| Strategy | Best for | Core logic |\n|----------|----------|------------|\n| **Trend** | Directional moves | Bollinger bandwidth gate + trailing profit stop |\n| **Maker** | Range-bound markets | Post limit orders with refresh and chase |\n| **Offset Maker** | Spread capture | Offset quotes around mid with dynamic adjustment |\n\nSelect at runtime:\n\n```bash\nnpm start -- --strategy trend\nnpm start -- --strategy maker\nnpm start -- --strategy offset-maker\n```\n\nAdd `--silent` to disable the terminal UI (ideal for servers).\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- **Node.js 20+**\n- Exchange API credentials (see below)\n- NTP-synced system clock (required for signed requests)\n\n### Install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmetanode-trade\u002Fasterdex-trading-bot.git\ncd asterdex-trading-bot\nnpm install\ncp .env.example .env\n```\n\n### Configure exchange\n\nSet `EXCHANGE` and the matching credentials:\n\n| `EXCHANGE` | Required env vars |\n|------------|-------------------|\n| `aster` | `ASTER_API_KEY`, `ASTER_API_SECRET` |\n| `grvt` | `GRVT_API_KEY`, `GRVT_API_SECRET`, `GRVT_SUB_ACCOUNT_ID` |\n| `hyperliquid` | `HYPERLIQUID_WALLET_ADDRESS`, `HYPERLIQUID_PRIVATE_KEY` |\n\n### Run\n\n```bash\nnpm start                               # interactive UI\nnpm run start:trend:silent              # headless trend\nnpm run start:maker:silent              # headless maker\nnpm test                                # vitest\n```\n\n### PM2 (production)\n\n```bash\nnpm run pm2:start:trend\n```\n\n---\n\n## Configuration Highlights\n\n### Trend engine\n\n| Variable | Purpose |\n|----------|---------|\n| `TRADE_SYMBOL` | e.g. `BTCUSDT` |\n| `TRADE_AMOUNT` | Base position size |\n| `LOSS_LIMIT` | Max loss (USDT) before forced close |\n| `TRAILING_PROFIT` \u002F `TRAILING_CALLBACK_RATE` | Trailing stop |\n| `BOLLINGER_LENGTH` \u002F `MIN_BOLLINGER_BANDWIDTH` | Entry gate |\n| `PRICE_TICK` \u002F `QTY_STEP` | Exchange lot filters |\n| `POLL_INTERVAL_MS` | Main loop cadence |\n| `MAX_CLOSE_SLIPPAGE_PCT` | Cap close price vs mark |\n\n### Maker engine\n\nSee `MAKER_*` variables in `.env.example` — offsets, refresh interval, chase behavior.\n\n---\n\n## Architecture\n\n```\nindex.ts (CLI)\n  └── src\u002Findex.tsx\n        ├── exchanges\u002F     # aster | grvt | hyperliquid adapters\n        ├── strategy\u002F      # trend | maker | offset-maker engines\n        ├── ui\u002F            # Ink terminal dashboard\n        ├── cli\u002F           # Argument parsing\n        └── core\u002F          # Shared types, reconciliation\n```\n\n```mermaid\nflowchart LR\n    WS[WebSocket Feed] --> Engine[Strategy Engine]\n    Engine --> Adapter[Exchange Adapter]\n    Adapter --> REST[REST API]\n    Engine --> UI[Ink Dashboard]\n```\n\n---\n\n## Exchange Requirements\n\nBefore going live, confirm on your exchange:\n\n- **One-way position mode** (not hedge mode)\n- **Leverage set manually** (~50x suggested; bot does not set leverage)\n- **Minimum API permissions** — trade only, no withdrawal\n- **Clock sync** — drift breaks signatures\n\n---\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `npm start` | Start with UI |\n| `npm run dev` | Same as start (tsx watch-friendly) |\n| `npm run start:trend:silent` | Trend, no UI |\n| `npm run start:maker:silent` | Maker, no UI |\n| `npm run start:offset:silent` | Offset maker, no UI |\n| `npm test` | Run Vitest suite |\n| `npm run pm2:start:trend` | PM2 trend deployment |\n\n---\n\n## Safety & Disclaimer\n\n- Perpetual futures carry **liquidation risk**. Test with minimal size first.\n- Rotate API keys immediately if leaked.\n- No warranty. Authors not liable for trading losses.\n- Use API keys with **minimum required permissions**.\n\n---\n\n## Contributing\n\nIssues and PRs welcome — especially exchange adapter improvements and strategy tuning docs.\n","AsterDEX交易机器人是一款高性能的永续期货交易自动化工具，支持Aster DEX、GRVT和Hyperliquid平台。该项目采用TypeScript编写，提供三种经过实战验证的策略：趋势跟随、纯做市商以及偏移做市商，并通过实时终端界面展示仓位、盈亏及引擎状态信息。它利用WebSocket与REST API结合的方式获取市场数据，在重启时进行数据校正，确保了交易过程中的准确性和稳定性。此外，项目还支持PM2一键部署，便于在VPS上运行。\n\n适合于希望在多个交易所之间切换并应用不同交易策略的专业交易者使用，尤其是在需要捕捉市场波动或维持报价稳定性的场景下表现尤为出色。",2,"2026-06-11 04:08:16","CREATED_QUERY"]