Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 90 additions & 54 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,80 +1,116 @@
# Exchange selection
EXCHANGE=aster # Pick aster (default) or grvt
# 交易所选择
EXCHANGE=aster # 选择 aster(默认)或 grvt/lighter/backpack/paradex

# Aster API credentials
# Aster API 凭证
ASTER_API_KEY=
ASTER_API_SECRET=

# Core trading symbol and sizing
TRADE_SYMBOL=BTCUSDT # Trading pair symbol
TRADE_AMOUNT=0.001 # Base order quantity (base asset, e.g. BTC)

# Risk management (USD amounts unless noted)
LOSS_LIMIT=0.04 # Max loss per trade in USDT before forced close
TRAILING_PROFIT=0.2 # Trailing stop activation profit (USDT)
TRAILING_CALLBACK_RATE=0.2 # Trailing callback percent (e.g. 0.2 => 0.2%)
PROFIT_LOCK_TRIGGER_USD=0.08 # Start moving base stop once unrealized PnL > this (USDT)
PROFIT_LOCK_OFFSET_USD=0.04 # Base stop offset from entry after trigger (USDT)
BOLLINGER_LENGTH=20 # SMA window (minutes) used for Bollinger bandwidth
BOLLINGER_STD_MULTIPLIER=2 # Standard deviation multiplier for Bollinger bands
MIN_BOLLINGER_BANDWIDTH=0.001 # Require bandwidth >= this ratio before new entries

# Precision (per-symbol exchange filters)
PRICE_TICK=0.1 # Price tick size (e.g. BTCUSDT uses 0.1)
QTY_STEP=0.001 # Quantity step size (e.g. BTC min step 0.001)

# Engine cadence and UI
POLL_INTERVAL_MS=500 # Trend engine poll interval (ms)
MAX_LOG_ENTRIES=200 # Max log entries shown in dashboard
KLINE_INTERVAL=1m # Kline interval (e.g., 1m/3m/5m)
MAX_CLOSE_SLIPPAGE_PCT=0.05 # Max allowed deviation vs mark when closing (0.05 => 5%)

# Maker-only settings
MAKER_LOSS_LIMIT=0.05 # Maker loss cap (USDT). Defaults to LOSS_LIMIT if unset
MAKER_BID_OFFSET=0 # Bid quote offset from top bid (USDT)
MAKER_ASK_OFFSET=0 # Ask quote offset from top ask (USDT)
MAKER_REFRESH_INTERVAL_MS=500 # Maker refresh cadence (ms)
MAKER_MAX_CLOSE_SLIPPAGE_PCT=0.05 # Maker close slippage guard (fallbacks to MAX_CLOSE_SLIPPAGE_PCT)
MAKER_PRICE_TICK=0.1 # Maker price tick size (defaults to PRICE_TICK)

# GRVT authentication (set when EXCHANGE=grvt)
# 核心交易品种与下单规模
TRADE_SYMBOL=BTCUSDT # 交易对符号
TRADE_AMOUNT=0.001 # 基础下单数量(基础资产,例如 BTC)

# 风险管理(除特别说明外均为 USD 金额)
LOSS_LIMIT=0.04 # 单笔交易在被强制平仓前的最大亏损(USDT)
TRAILING_PROFIT=0.2 # 移动止盈激活利润(USDT)
TRAILING_CALLBACK_RATE=0.2 # 移动回调百分比(例如 0.2 => 0.2%)
PROFIT_LOCK_TRIGGER_USD=0.08 # 未实现盈亏超过该值后开始上移基础止损(USDT)
PROFIT_LOCK_OFFSET_USD=0.04 # 触发后基础止损相对入场价的偏移(USDT)
BOLLINGER_LENGTH=20 # 用于布林带带宽的 SMA 窗口(分钟)
BOLLINGER_STD_MULTIPLIER=2 # 布林带标准差倍数
MIN_BOLLINGER_BANDWIDTH=0.001 # 仅当带宽≥该比率时允许新开仓

# 精度(按品种的交易所过滤器)
PRICE_TICK=0.1 # 价格最小变动单位(例如 BTCUSDT 使用 0.1)
QTY_STEP=0.001 # 数量步长(例如 BTC 最小步长 0.001)

# 引擎节奏与界面
POLL_INTERVAL_MS=500 # 趋势引擎轮询间隔(毫秒)
MAX_LOG_ENTRIES=200 # 仪表盘显示的最大日志条数
KLINE_INTERVAL=1m # K 线周期(例如 1m/3m/5m)
MAX_CLOSE_SLIPPAGE_PCT=0.05 # 平仓时相对标记价格允许的最大偏差(0.05 => 5%)

# 仅做市设置
MAKER_LOSS_LIMIT=0.05 # 做市亏损上限(USDT)。未设置时回退到 LOSS_LIMIT
MAKER_BID_OFFSET=0 # 买单报价相对最优买价的偏移(USDT)
MAKER_ASK_OFFSET=0 # 卖单报价相对最优卖价的偏移(USDT)
MAKER_REFRESH_INTERVAL_MS=500 # 做市刷新节奏(毫秒)
MAKER_MAX_CLOSE_SLIPPAGE_PCT=0.05 # 做市平仓滑点保护(未设时回退到 MAX_CLOSE_SLIPPAGE_PCT)
MAKER_PRICE_TICK=0.1 # 做市价格最小变动单位(默认使用 PRICE_TICK)

# 网格策略默认值
GRID_LOWER_PRICE=123400 # 网格下界价格(计价货币)
GRID_UPPER_PRICE=126400 # 网格上界价格
GRID_LEVELS=20 # 上下界之间的网格层数(>=2)
GRID_ORDER_SIZE=0.002 # 每个网格订单的数量(基础资产单位)
GRID_MAX_POSITION_SIZE=0.01 # 网格可持有的最大仓位(基础资产单位)
GRID_REFRESH_INTERVAL_MS=1000 # 网格评估频率(毫秒)
GRID_MAX_LOG_ENTRIES=200 # 网格交易日志长度(未设置时默认为 MAX_LOG_ENTRIES)
GRID_DIRECTION=both # 下单方向:both | long | short
GRID_STOP_LOSS_PCT=0.03 # 超出边界的止损触发百分比(0.01 => 1%)
GRID_RESTART_TRIGGER_PCT=0.03 # 区间内的重启缓冲百分比
GRID_AUTO_RESTART_ENABLED=true # 当价格重新进入区间时自动恢复网格
GRID_MAX_CLOSE_SLIPPAGE_PCT=0.05 # Close-order slippage guard relative to mark price
# GRID_PRICE_TICK=0.1 # 可选覆盖网格价格最小变动单位(未设置则回退到 PRICE_TICK)
# GRID_QTY_STEP=0.001 # 可选覆盖网格下单数量步长(未设置则回退到 QTY_STEP)

# GRVT 认证(当 EXCHANGE=grvt 时设置)
GRVT_API_KEY=
GRVT_API_SECRET=
GRVT_SUB_ACCOUNT_ID=
GRVT_INSTRUMENT=BTC_USDT_Perp
GRVT_SYMBOL=BTCUSDT
GRVT_ENV=prod

# Optional advanced overrides
# GRVT_COOKIE="gravity=..." # Pre-provisioned session cookie (auto-refresh uses API key when absent)
# GRVT_ACCOUNT_ID= # Populated automatically after login
# GRVT_SIGNER_PATH=./grvt-signer.cjs # Custom signature provider module
# 可选高级覆盖
# GRVT_COOKIE="gravity=..." # 预置的会话 Cookie(缺省时将使用 API Key 自动刷新)
# GRVT_ACCOUNT_ID= # 登录后会自动填充
# GRVT_SIGNER_PATH=./grvt-signer.cjs # 自定义签名提供模块

# Lighter authentication (set when EXCHANGE=lighter)
# Lighter 认证(当 EXCHANGE=lighter 时设置)
LIGHTER_ACCOUNT_INDEX=
LIGHTER_API_PRIVATE_KEY= # 40-byte hex private key (e.g., 0x...)
LIGHTER_API_KEY_INDEX=0 # API key slot (default 0)
LIGHTER_SYMBOL=BTCUSDT # Trading pair (defaults to TRADE_SYMBOL when omitted)
LIGHTER_API_PRIVATE_KEY= # 40 字节十六进制私钥(例如 0x...
LIGHTER_API_KEY_INDEX=0 # API Key 槽位(默认 0)
LIGHTER_SYMBOL=BTCUSDT # 交易对(未设置时默认使用 TRADE_SYMBOL
LIGHTER_ENV=testnet # mainnet | testnet | staging | dev
# LIGHTER_BASE_URL=https://testnet.zklighter.elliot.ai
# LIGHTER_CHAIN_ID=300 # Override inferred chain id when needed
# LIGHTER_MARKET_ID=1 # Prefer explicit market id when symbols differ
# LIGHTER_PRICE_DECIMALS=3 # Manual override for price decimals (optional)
# LIGHTER_SIZE_DECIMALS=3 # Manual override for size decimals (optional)
# LIGHTER_CHAIN_ID=300 # 必要时覆盖推断的链 ID
# LIGHTER_MARKET_ID=1 # 当符号不一致时建议显式指定市场 ID
# LIGHTER_PRICE_DECIMALS=3 # 手动覆盖价格小数位(可选)
# LIGHTER_SIZE_DECIMALS=3 # 手动覆盖数量小数位(可选)

# Backpack exchange configuration
# Fill these with your Backpack API credentials and preferences
# Backpack 交易所配置
# 在此填写 Backpack API 凭证与偏好设置

BACKPACK_API_KEY=
BACKPACK_API_SECRET=
BACKPACK_PASSWORD=
BACKPACK_SUBACCOUNT=

# Use sandbox environment: "true" to enable, otherwise leave as false
# 使用沙箱环境:设为 "true" 启用,否则保持为 false
BACKPACK_SANDBOX=false

# Default trading symbol (falls back to TRADE_SYMBOL or BTCUSDC)
# 默认交易品种(未设置时回退到 TRADE_SYMBOL BTCUSDC
BACKPACK_SYMBOL=BTC_USD_PERP

# Enable verbose adapter logging: set to "1" or "true"
BACKPACK_DEBUG=false
# 启用适配器详细日志:设为 "1" 或 "true"
BACKPACK_DEBUG=false

# Paradex 交易所配置
# 为已开通的账户提供 EVM 私钥与钱包地址。
# 当 EXCHANGE=paradex 时将自动使用这些值。

PARADEX_SYMBOL=BTC-USD-PERP
PARADEX_PRIVATE_KEY=
PARADEX_WALLET_ADDRESS=

# 设为 "true" 启用测试网端点;默认 false(主网)。
# PARADEX_SANDBOX=false

# 将其设为 "false" 可强制禁用 ccxt.pro 的 WebSocket(如已安装,默认优先使用 pro)。
# PARADEX_USE_PRO=true

# 可选:覆盖重连延迟(毫秒,例如 2000)。留空使用默认值。
# PARADEX_RECONNECT_DELAY_MS=

# 启用适配器详细日志:设为 "1" 或 "true"
# PARADEX_DEBUG=false
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# dependencies (bun install)
node_modules
data/*
docs/perp-dex-tools/*

# output
out
out/*
dist
*.tgz
*.js

# code coverage
coverage
Expand Down Expand Up @@ -33,3 +35,7 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json

# Finder (MacOS) folder config
.DS_Store
/package-lock.json
/pnpm-lock.yaml
/.codebuddy/analysis-summary.json
.portfolio-config.json
Loading