aicoin

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

AiCoin

AiCoin

Crypto data & trading toolkit powered by AiCoin Open API.
基于AiCoin Open API构建的加密货币数据与交易工具包。

Setup Checklist

设置清单

Scripts auto-load
.env
files
from these locations (earlier paths take priority):
  1. Current working directory (
    .env
    )
  2. ~/.openclaw/workspace/.env
  3. ~/.openclaw/.env
Before asking the user for ANY credentials, first check if
.env
already exists:
bash
grep -c "AICOIN_ACCESS_KEY_ID" ~/.openclaw/workspace/.env 2>/dev/null || echo "0"
  • If output is
    1
    or more →
    .env
    has AiCoin key configured. Skip setup, just run scripts directly.
  • If output is
    0
    No AiCoin key, but the built-in free key works automatically. Just run scripts.
Only ask setup questions when the user explicitly requests features that need configuration:
  • Exchange trading (Binance, OKX, etc.) → needs exchange API keys +
    cd <skill-dir>/aicoin && npm install
    for ccxt
  • Freqtrade bot → run
    ft-deploy.mjs deploy
    (auto-configures everything, needs Python 3 + exchange keys in .env)
  • Proxy access → needs
    PROXY_URL
Do NOT block the user from running commands. The skill works out of the box with the built-in free key.
脚本会自动从以下位置加载
.env
文件
(路径越靠前优先级越高):
  1. 当前工作目录(
    .env
  2. ~/.openclaw/workspace/.env
  3. ~/.openclaw/.env
在向用户索要任何凭证之前,请先检查
.env
文件是否已存在:
bash
grep -c "AICOIN_ACCESS_KEY_ID" ~/.openclaw/workspace/.env 2>/dev/null || echo "0"
  • 如果输出为
    1
    或更大数值 →
    .env
    中已配置AiCoin密钥,跳过设置步骤,直接运行脚本即可。
  • 如果输出为
    0
    无AiCoin密钥,但内置免费密钥可自动生效,直接运行脚本即可。
仅当用户明确请求需要配置的功能时,才询问设置相关问题:
  • 交易所交易(Binance、OKX等)→ 需要交易所API密钥 + 执行
    cd <skill-dir>/aicoin && npm install
    安装ccxt
  • Freqtrade机器人 → 运行
    ft-deploy.mjs deploy
    (自动完成所有配置,需要Python 3 + .env中的交易所密钥)
  • 代理访问 → 需要配置
    PROXY_URL
请勿阻止用户运行命令。本Skill使用内置免费密钥即可开箱即用。

How to Configure Environment Variables

如何配置环境变量

The
.env
file location is
~/.openclaw/workspace/.env
. When adding new variables:
  1. Check if
    .env
    already exists:
    bash
    test -f ~/.openclaw/workspace/.env && echo "EXISTS" || echo "NOT_FOUND"
  2. If EXISTS → append (do NOT overwrite):
    bash
    echo 'PROXY_URL=socks5://127.0.0.1:7890' >> ~/.openclaw/workspace/.env
  3. If NOT_FOUND → create:
    bash
    echo 'PROXY_URL=socks5://127.0.0.1:7890' > ~/.openclaw/workspace/.env
  4. If a key already exists and needs updating, replace the specific line:
    bash
    sed -i '' 's|^PROXY_URL=.*|PROXY_URL=socks5://127.0.0.1:7890|' ~/.openclaw/workspace/.env
NEVER overwrite the entire
.env
file
— it may contain other credentials the user has already configured.
.env
文件的推荐路径为
~/.openclaw/workspace/.env
。添加新变量时:
  1. 检查
    .env
    是否已存在:
    bash
    test -f ~/.openclaw/workspace/.env && echo "EXISTS" || echo "NOT_FOUND"
  2. 如果已存在 → 追加内容(请勿覆盖原有内容):
    bash
    echo 'PROXY_URL=socks5://127.0.0.1:7890' >> ~/.openclaw/workspace/.env
  3. 如果不存在 → 创建文件:
    bash
    echo 'PROXY_URL=socks5://127.0.0.1:7890' > ~/.openclaw/workspace/.env
  4. 如果密钥已存在且需要更新,替换指定行:
    bash
    sed -i '' 's|^PROXY_URL=.*|PROXY_URL=socks5://127.0.0.1:7890|' ~/.openclaw/workspace/.env
绝对不要覆盖整个
.env
文件
—— 其中可能包含用户已配置的其他凭证。

SECURITY: How to Run Scripts

安全须知:如何运行脚本

Scripts auto-load
.env
— NEVER pass credentials inline.
Just run:
bash
node scripts/coin.mjs coin_ticker '{"coin_list":"bitcoin"}'
NEVER do this — it exposes secrets in conversation logs:
bash
undefined
脚本会自动加载
.env
中的密钥 —— 绝对不要在命令行中直接传入凭证
,只需运行:
bash
node scripts/coin.mjs coin_ticker '{"coin_list":"bitcoin"}'
绝对不要这样做 —— 会在对话日志中暴露机密信息:
bash
undefined

WRONG! DO NOT DO THIS!

错误示例!请勿执行!

AICOIN_ACCESS_KEY_ID=xxx node scripts/coin.mjs coin_ticker '{"coin_list":"bitcoin"}'

If a script fails due to missing env vars, guide the user to update their `.env` file instead of injecting variables into the command.
AICOIN_ACCESS_KEY_ID=xxx node scripts/coin.mjs coin_ticker '{"coin_list":"bitcoin"}'

如果脚本因缺少环境变量而失败,请引导用户更新`.env`文件,而非在命令中注入变量。

Environment Variables

环境变量说明

Create a
.env
file in the OpenClaw workspace directory (recommended):
bash
undefined
在OpenClaw工作目录中创建
.env
文件(推荐):
bash
undefined

AiCoin API (optional — built-in free key works with IP rate limits)

AiCoin API(可选 —— 内置免费密钥可正常使用,但有IP调用频率限制)

Mapping: AiCoin website "API Key" → AICOIN_ACCESS_KEY_ID

对应关系:AiCoin网站的「API Key」 → AICOIN_ACCESS_KEY_ID

AiCoin website "API Secret" → AICOIN_ACCESS_SECRET

AiCoin网站的「API Secret」 → AICOIN_ACCESS_SECRET

AICOIN_ACCESS_KEY_ID=your-api-key AICOIN_ACCESS_SECRET=your-api-secret
AICOIN_ACCESS_KEY_ID=your-api-key AICOIN_ACCESS_SECRET=your-api-secret

Exchange trading — only if needed (requires: npm install -g ccxt)

交易所交易 —— 仅在需要时配置(需先执行:npm install -g ccxt)

BINANCE_API_KEY=xxx BINANCE_API_SECRET=xxx
BINANCE_API_KEY=xxx BINANCE_API_SECRET=xxx

Supported: BINANCE, OKX, BYBIT, BITGET, GATE, HTX, KUCOIN, MEXC, COINBASE

支持的交易所:BINANCE、OKX、BYBIT、BITGET、GATE、HTX、KUCOIN、MEXC、COINBASE

For OKX also set OKX_PASSWORD=xxx

若使用OKX,还需设置OKX_PASSWORD=xxx

Proxy for exchange access — only if needed

交易所访问代理 —— 仅在需要时配置

Supports http, https, socks5, socks4

支持http、https、socks5、socks4

PROXY_URL=socks5://127.0.0.1:7890
PROXY_URL=socks5://127.0.0.1:7890

Or standard env vars: HTTPS_PROXY=http://127.0.0.1:7890

或使用标准环境变量:HTTPS_PROXY=http://127.0.0.1:7890

Freqtrade — auto-configured by ft-deploy.mjs, no manual setup needed

Freqtrade —— 由ft-deploy.mjs自动配置,无需手动设置

FREQTRADE_URL=http://localhost:8080

FREQTRADE_URL=http://localhost:8080

FREQTRADE_USERNAME=freqtrader

FREQTRADE_USERNAME=freqtrader

FREQTRADE_PASSWORD=auto-generated

FREQTRADE_PASSWORD=auto-generated


**IMPORTANT — AiCoin API Key Configuration:**

1. The user may provide two values without labels (just two strings copied from the AiCoin website). **Do NOT guess which is which.** Ask the user to confirm: "哪个是 API Key,哪个是 API Secret?" Or look for the labels in the user's message.

2. **After writing keys to `.env`, ALWAYS verify by running a test call:**
   ```bash
   node scripts/coin.mjs coin_ticker '{"coin_list":"bitcoin"}'
  1. If the test returns error code
    1001
    (signature verification failed), the keys are swapped.
    Fix by swapping them:
    bash
    # Read current values, swap them
    OLD_KEY=$(grep '^AICOIN_ACCESS_KEY_ID=' ~/.openclaw/workspace/.env | cut -d= -f2)
    OLD_SECRET=$(grep '^AICOIN_ACCESS_SECRET=' ~/.openclaw/workspace/.env | cut -d= -f2)
    sed -i '' "s|^AICOIN_ACCESS_KEY_ID=.*|AICOIN_ACCESS_KEY_ID=${OLD_SECRET}|" ~/.openclaw/workspace/.env
    sed -i '' "s|^AICOIN_ACCESS_SECRET=.*|AICOIN_ACCESS_SECRET=${OLD_KEY}|" ~/.openclaw/workspace/.env
    Then re-run the test to confirm it works.
Or configure in
~/.openclaw/openclaw.json
:
json
{
  "skills": {
    "entries": {
      "aicoin": {
        "enabled": true,
        "apiKey": "your-aicoin-access-key-id",
        "env": {
          "AICOIN_ACCESS_SECRET": "your-secret"
        }
      }
    }
  }
}

**重要提示 —— AiCoin API密钥配置注意事项:**

1. 用户可能会提供两个未标注的值(直接从AiCoin网站复制的两个字符串)。**请勿猜测哪个是哪个**,请让用户确认:“哪个是 API Key,哪个是 API Secret?”或者从用户的消息中查找标注。

2. **将密钥写入`.env`后,必须通过测试调用验证配置是否正确:**
   ```bash
   node scripts/coin.mjs coin_ticker '{"coin_list":"bitcoin"}'
  1. 如果测试返回错误码
    1001
    (签名验证失败),说明密钥顺序颠倒
    ,请交换两者:
    bash
    # 读取当前值并交换
    OLD_KEY=$(grep '^AICOIN_ACCESS_KEY_ID=' ~/.openclaw/workspace/.env | cut -d= -f2)
    OLD_SECRET=$(grep '^AICOIN_ACCESS_SECRET=' ~/.openclaw/workspace/.env | cut -d= -f2)
    sed -i '' "s|^AICOIN_ACCESS_KEY_ID=.*|AICOIN_ACCESS_KEY_ID=${OLD_SECRET}|" ~/.openclaw/workspace/.env
    sed -i '' "s|^AICOIN_ACCESS_SECRET=.*|AICOIN_ACCESS_SECRET=${OLD_KEY}|" ~/.openclaw/workspace/.env
    然后重新运行测试以确认配置生效。
也可在
~/.openclaw/openclaw.json
中配置:
json
{
  "skills": {
    "entries": {
      "aicoin": {
        "enabled": true,
        "apiKey": "your-aicoin-access-key-id",
        "env": {
          "AICOIN_ACCESS_SECRET": "your-secret"
        }
      }
    }
  }
}

Prerequisites

前置依赖

  • Node.js — required for all scripts
  • ccxt — required only for exchange trading:
    cd <skill-dir>/aicoin && npm install
  • Node.js —— 所有脚本的运行依赖
  • ccxt —— 仅交易所交易功能需要:执行
    cd <skill-dir>/aicoin && npm install
    安装

Scripts

脚本说明

All scripts follow:
node scripts/<name>.mjs <action> [json-params]

所有脚本遵循格式:
node scripts/<name>.mjs <action> [json-params]

scripts/coin.mjs — Coin Data

scripts/coin.mjs — 币种数据

ActionDescriptionParams
coin_list
List all coinsNone
coin_ticker
Real-time prices
{"coin_list":"bitcoin,ethereum"}
coin_config
Coin profile
{"coin_list":"bitcoin"}
ai_analysis
AI analysis & prediction
{"coin_keys":"[\"bitcoin\"]","language":"CN"}
funding_rate
Funding rate
{"symbol":"btcswapusdt:binance","interval":"8h"}
Weighted:
{"symbol":"btcswapusdt","interval":"8h","weighted":"true"}
liquidation_map
Liquidation heatmap
{"dbkey":"btcswapusdt:binance","cycle":"24h"}
liquidation_history
Liquidation history
{"symbol":"btcswapusdt:binance","interval":"1m"}
estimated_liquidation
Estimated liquidation
{"dbkey":"btcswapusdt:binance","cycle":"24h"}
open_interest
Open interest
{"symbol":"BTC","interval":"15m"}
Coin-margined: add
"margin_type":"coin"
historical_depth
Historical depth
{"key":"btcswapusdt:okcoinfutures"}
super_depth
Large order depth (>$10k)
{"key":"btcswapusdt:okcoinfutures"}
trade_data
Trade data
{"dbkey":"btcswapusdt:okcoinfutures"}

操作描述参数
coin_list
获取所有币种列表
coin_ticker
获取实时价格
{"coin_list":"bitcoin,ethereum"}
coin_config
获取币种详情
{"coin_list":"bitcoin"}
ai_analysis
AI分析与预测
{"coin_keys":"[\"bitcoin\"]","language":"CN"}
funding_rate
获取资金费率
{"symbol":"btcswapusdt:binance","interval":"8h"}
加权资金费率:
{"symbol":"btcswapusdt","interval":"8h","weighted":"true"}
liquidation_map
获取爆仓热力图
{"dbkey":"btcswapusdt:binance","cycle":"24h"}
liquidation_history
获取爆仓历史数据
{"symbol":"btcswapusdt:binance","interval":"1m"}
estimated_liquidation
获取预估爆仓数据
{"dbkey":"btcswapusdt:binance","cycle":"24h"}
open_interest
获取持仓量
{"symbol":"BTC","interval":"15m"}
币本位合约:添加
"margin_type":"coin"
historical_depth
获取历史盘口数据
{"key":"btcswapusdt:okcoinfutures"}
super_depth
获取大额委托盘口(>$10k)
{"key":"btcswapusdt:okcoinfutures"}
trade_data
获取交易数据
{"dbkey":"btcswapusdt:okcoinfutures"}

scripts/market.mjs — Market Data

scripts/market.mjs — 市场数据

Market Info

市场信息

ActionDescriptionParams
exchanges
Exchange listNone
ticker
Exchange tickers
{"market_list":"okex,binance"}
hot_coins
Trending coins
{"key":"defi"}
key: gamefi/anonymous/market/web/newcoin/stable/defi
futures_interest
Futures OI ranking
{"lan":"cn"}
操作描述参数
exchanges
获取支持的交易所列表
ticker
获取交易所行情
{"market_list":"okex,binance"}
hot_coins
获取热门币种
{"key":"defi"}
key可选值:gamefi/anonymous/market/web/newcoin/stable/defi
futures_interest
获取期货持仓量排名
{"lan":"cn"}

K-Line

K线数据

ActionDescriptionParams
kline
Standard K-line
{"symbol":"btcusdt:okex","period":"3600","size":"100"}
period in seconds: 900=15m, 3600=1h, 14400=4h, 86400=1d
indicator_kline
Indicator K-line
{"symbol":"btcswapusdt:binance","indicator_key":"fundflow","period":"3600"}
indicator_pairs
Indicator available pairs
{"indicator_key":"fundflow"}
操作描述参数
kline
获取标准K线
{"symbol":"btcusdt:okex","period":"3600","size":"100"}
period单位为秒:900=15分钟, 3600=1小时, 14400=4小时, 86400=1天
indicator_kline
获取带指标的K线
{"symbol":"btcswapusdt:binance","indicator_key":"fundflow","period":"3600"}
indicator_pairs
获取指标支持的交易对
{"indicator_key":"fundflow"}

Index

指数数据

ActionDescriptionParams
index_list
Index listNone
index_price
Index price
{"key":"i:diniw:ice"}
index_info
Index details
{"key":"i:diniw:ice"}
操作描述参数
index_list
获取指数列表
index_price
获取指数价格
{"key":"i:diniw:ice"}
index_info
获取指数详情
{"key":"i:diniw:ice"}

Crypto Stocks

加密货币概念股

ActionDescriptionParams
stock_quotes
Stock quotes
{"tickers":"i:mstr:nasdaq,i:coin:nasdaq"}
stock_top_gainer
Top gainers
{"us_stock":"true"}
stock_company
Company details
{"symbol":"i:mstr:nasdaq"}
操作描述参数
stock_quotes
获取概念股行情
{"tickers":"i:mstr:nasdaq,i:coin:nasdaq"}
stock_top_gainer
获取涨幅榜
{"us_stock":"true"}
stock_company
获取公司详情
{"symbol":"i:mstr:nasdaq"}

Treasury (Corporate Holdings)

机构持仓

ActionDescriptionParams
treasury_entities
Holding entities
{"coin":"BTC"}
treasury_history
Transaction history
{"coin":"BTC"}
treasury_accumulated
Accumulated holdings
{"coin":"BTC"}
treasury_latest_entities
Latest entities
{"coin":"BTC"}
treasury_latest_history
Latest history
{"coin":"BTC"}
treasury_summary
Holdings overview
{"coin":"BTC"}
操作描述参数
treasury_entities
获取持仓机构列表
{"coin":"BTC"}
treasury_history
获取持仓交易历史
{"coin":"BTC"}
treasury_accumulated
获取累计持仓数据
{"coin":"BTC"}
treasury_latest_entities
获取最新持仓机构
{"coin":"BTC"}
treasury_latest_history
获取最新持仓交易
{"coin":"BTC"}
treasury_summary
获取持仓概况
{"coin":"BTC"}

Order Book Depth

订单簿深度

ActionDescriptionParams
depth_latest
Real-time snapshot
{"dbKey":"btcswapusdt:binance"}
depth_full
Full order book
{"dbKey":"btcswapusdt:binance"}
depth_grouped
Grouped depth
{"dbKey":"btcswapusdt:binance","groupSize":"100"}

操作描述参数
depth_latest
获取实时盘口快照
{"dbKey":"btcswapusdt:binance"}
depth_full
获取完整订单簿
{"dbKey":"btcswapusdt:binance"}
depth_grouped
获取分组盘口
{"dbKey":"btcswapusdt:binance","groupSize":"100"}

scripts/news.mjs — News & Content

scripts/news.mjs — 资讯与内容

ActionDescriptionParams
news_list
News list
{"page":"1","pageSize":"20"}
news_detail
News detail
{"id":"xxx"}
news_rss
RSS news
{"page":"1"}
newsflash
AiCoin flash news
{"language":"cn"}
flash_list
Industry flash news
{"language":"cn"}
exchange_listing
Exchange listing announcements
{"memberIds":"477,1509"}
(477=Binance, 1509=Bitget)

操作描述参数
news_list
获取资讯列表
{"page":"1","pageSize":"20"}
news_detail
获取资讯详情
{"id":"xxx"}
news_rss
获取RSS资讯
{"page":"1"}
newsflash
获取AiCoin闪电快讯
{"language":"cn"}
flash_list
获取行业闪电快讯
{"language":"cn"}
exchange_listing
获取交易所上线公告
{"memberIds":"477,1509"}
(477=Binance, 1509=Bitget)

scripts/twitter.mjs — Twitter/X Crypto Tweets

scripts/twitter.mjs — Twitter/X加密货币推文

ActionDescriptionParams
latest
Latest crypto tweets (cursor-paginated)
{"language":"cn","page_size":"20","last_time":"1234567890"}
search
Search tweets by keyword
{"keyword":"bitcoin","language":"cn","page_size":"20"}
members
Search Twitter KOL/users
{"word":"elon","page":"1","size":"20"}
interaction_stats
Tweet engagement stats
{"flash_ids":"123,456,789"}
(max 50 IDs)

操作描述参数
latest
获取最新加密货币推文(游标分页)
{"language":"cn","page_size":"20","last_time":"1234567890"}
search
按关键词搜索推文
{"keyword":"bitcoin","language":"cn","page_size":"20"}
members
搜索Twitter KOL/用户
{"word":"elon","page":"1","size":"20"}
interaction_stats
获取推文互动数据
{"flash_ids":"123,456,789"}
(最多支持50个ID)

scripts/newsflash.mjs — Newsflash (OpenData)

scripts/newsflash.mjs — 闪电快讯(OpenData)

ActionDescriptionParams
search
Search newsflash by keyword
{"word":"bitcoin","page":"1","size":"20"}
list
Newsflash list with filters
{"pagesize":"20","lan":"cn","date_mode":"range","start_date":"2025-03-01","end_date":"2025-03-04"}
detail
Newsflash full content
{"flash_id":"123456"}

操作描述参数
search
按关键词搜索闪电快讯
{"word":"bitcoin","page":"1","size":"20"}
list
带筛选条件的闪电快讯列表
{"pagesize":"20","lan":"cn","date_mode":"range","start_date":"2025-03-01","end_date":"2025-03-04"}
detail
获取闪电快讯完整内容
{"flash_id":"123456"}

scripts/features.mjs — Features & Signals

scripts/features.mjs — 特色功能与信号

Market Overview

市场概况

ActionDescriptionParams
nav
Market navigation
{"lan":"cn"}
ls_ratio
Long/short ratioNone
liquidation
Liquidation data
{"type":"1","coinKey":"bitcoin"}
type: 1=by coin, 2=by exchange
grayscale_trust
Grayscale trustNone
gray_scale
Grayscale holdings
{"coins":"btc,eth"}
stock_market
Crypto stocksNone
操作描述参数
nav
获取市场导航数据
{"lan":"cn"}
ls_ratio
获取多空比
liquidation
获取爆仓数据
{"type":"1","coinKey":"bitcoin"}
type:1=按币种统计, 2=按交易所统计
grayscale_trust
获取灰度信托数据
gray_scale
获取灰度持仓数据
{"coins":"btc,eth"}
stock_market
获取加密货币概念股数据

Whale Order Tracking

鲸鱼订单追踪

ActionDescriptionParams
big_orders
Large/whale orders
{"symbol":"btcswapusdt:binance"}
agg_trades
Aggregated large trades
{"symbol":"btcswapusdt:binance"}
操作描述参数
big_orders
获取大额/鲸鱼订单
{"symbol":"btcswapusdt:binance"}
agg_trades
获取大额成交汇总
{"symbol":"btcswapusdt:binance"}

Trading Pairs

交易对

ActionDescriptionParams
pair_ticker
Pair ticker
{"key_list":"btcusdt:okex,btcusdt:huobipro"}
pair_by_market
Pairs by exchange
{"market":"binance"}
pair_list
Pair list
{"market":"binance","currency":"USDT"}
操作描述参数
pair_ticker
获取交易对行情
{"key_list":"btcusdt:okex,btcusdt:huobipro"}
pair_by_market
获取交易所支持的交易对
{"market":"binance"}
pair_list
获取交易对列表
{"market":"binance","currency":"USDT"}

Signals

信号

ActionDescriptionParams
strategy_signal
Strategy signal
{"signal_key":"depth_win_one"}
signal_alert
Signal alertsNone
signal_config
Alert config
{"lan":"cn"}
signal_alert_list
Alert listNone
change_signal
Anomaly signal
{"type":"1"}
delete_signal
Delete alert
{"id":"xxx"}

操作描述参数
strategy_signal
获取策略信号
{"signal_key":"depth_win_one"}
signal_alert
获取信号预警
signal_config
获取预警配置
{"lan":"cn"}
signal_alert_list
获取预警列表
change_signal
获取异常信号
{"type":"1"}
delete_signal
删除预警
{"id":"xxx"}

scripts/hl-market.mjs — Hyperliquid Market

scripts/hl-market.mjs — Hyperliquid市场数据

Tickers

行情

ActionDescriptionParams
tickers
All tickersNone
ticker
Single coin ticker
{"coin":"BTC"}
操作描述参数
tickers
获取所有行情
ticker
获取单个币种行情
{"coin":"BTC"}

Whales

鲸鱼数据

ActionDescriptionParams
whale_positions
Whale positions
{"coin":"BTC","min_usd":"1000000"}
whale_events
Whale events
{"coin":"BTC"}
whale_directions
Long/short direction
{"coin":"BTC"}
whale_history_ratio
Historical long ratio
{"coin":"BTC"}
操作描述参数
whale_positions
获取鲸鱼仓位
{"coin":"BTC","min_usd":"1000000"}
whale_events
获取鲸鱼交易事件
{"coin":"BTC"}
whale_directions
获取鲸鱼多空方向
{"coin":"BTC"}
whale_history_ratio
获取历史多空比
{"coin":"BTC"}

Liquidations

爆仓数据

ActionDescriptionParams
liq_history
Liquidation history
{"coin":"BTC"}
liq_stats
Liquidation statsNone
liq_stats_by_coin
Stats by coin
{"coin":"BTC"}
liq_top_positions
Large liquidations
{"coin":"BTC","interval":"1d"}
操作描述参数
liq_history
获取爆仓历史
{"coin":"BTC"}
liq_stats
获取爆仓统计数据
liq_stats_by_coin
按币种统计爆仓数据
{"coin":"BTC"}
liq_top_positions
获取大额爆仓数据
{"coin":"BTC","interval":"1d"}

Open Interest

持仓量

ActionDescriptionParams
oi_summary
OI overviewNone
oi_top_coins
OI ranking
{"limit":"10"}
oi_history
OI history
{"coin":"BTC","interval":"4h"}
操作描述参数
oi_summary
获取持仓量概况
oi_top_coins
获取持仓量排名
{"limit":"10"}
oi_history
获取持仓量历史数据
{"coin":"BTC","interval":"4h"}

Taker

taker数据

ActionDescriptionParams
taker_delta
Taker delta
{"coin":"BTC"}
taker_klines
Taker K-lines
{"coin":"BTC","interval":"4h"}

操作描述参数
taker_delta
获取Taker Delta
{"coin":"BTC"}
taker_klines
获取Taker K线
{"coin":"BTC","interval":"4h"}

scripts/hl-trader.mjs — Hyperliquid Trader

scripts/hl-trader.mjs — Hyperliquid交易者分析

Trader Analytics

交易者统计

ActionDescriptionParams
trader_stats
Trader statistics
{"address":"0x...","period":"30"}
best_trades
Best trades
{"address":"0x...","period":"30"}
performance
Performance by coin
{"address":"0x...","period":"30"}
completed_trades
Completed trades
{"address":"0x...","coin":"BTC"}
accounts
Batch accounts
{"addresses":"[\"0x...\"]"}
statistics
Batch statistics
{"addresses":"[\"0x...\"]"}
操作描述参数
trader_stats
获取交易者统计数据
{"address":"0x...","period":"30"}
best_trades
获取最佳交易记录
{"address":"0x...","period":"30"}
performance
按币种统计交易表现
{"address":"0x...","period":"30"}
completed_trades
获取已完成交易
{"address":"0x...","coin":"BTC"}
accounts
批量获取账户数据
{"addresses":"[\"0x...\"]"}
statistics
批量获取统计数据
{"addresses":"[\"0x...\"]"}

Fills

成交记录

ActionDescriptionParams
fills
Address fills
{"address":"0x..."}
fills_by_oid
By order ID
{"oid":"xxx"}
fills_by_twapid
By TWAP ID
{"twapid":"xxx"}
top_trades
Large trades
{"coin":"BTC","interval":"1d"}
操作描述参数
fills
获取地址成交记录
{"address":"0x..."}
fills_by_oid
按订单ID获取成交记录
{"oid":"xxx"}
fills_by_twapid
按TWAP ID获取成交记录
{"twapid":"xxx"}
top_trades
获取大额成交记录
{"coin":"BTC","interval":"1d"}

Orders

订单

ActionDescriptionParams
orders_latest
Latest orders
{"address":"0x..."}
order_by_oid
By order ID
{"oid":"xxx"}
filled_orders
Filled orders
{"address":"0x..."}
filled_by_oid
Filled by ID
{"oid":"xxx"}
top_open
Large open orders
{"coin":"BTC","min_val":"100000"}
active_stats
Active stats
{"coin":"BTC"}
twap_states
TWAP states
{"address":"0x..."}
操作描述参数
orders_latest
获取最新订单
{"address":"0x..."}
order_by_oid
按订单ID获取订单
{"oid":"xxx"}
filled_orders
获取已成交订单
{"address":"0x..."}
filled_by_oid
按订单ID获取已成交订单
{"oid":"xxx"}
top_open
获取大额挂单
{"coin":"BTC","min_val":"100000"}
active_stats
获取活跃订单统计
{"coin":"BTC"}
twap_states
获取TWAP订单状态
{"address":"0x..."}

Positions

仓位

ActionDescriptionParams
current_pos_history
Current position history
{"address":"0x...","coin":"BTC"}
completed_pos_history
Closed position history
{"address":"0x...","coin":"BTC"}
current_pnl
Current PnL
{"address":"0x...","coin":"BTC","interval":"1h"}
completed_pnl
Closed PnL
{"address":"0x...","coin":"BTC","interval":"1h"}
current_executions
Current executions
{"address":"0x...","coin":"BTC","interval":"1h"}
completed_executions
Closed executions
{"address":"0x...","coin":"BTC","interval":"1h"}
操作描述参数
current_pos_history
获取当前仓位历史
{"address":"0x...","coin":"BTC"}
completed_pos_history
获取已平仓历史
{"address":"0x...","coin":"BTC"}
current_pnl
获取当前盈亏
{"address":"0x...","coin":"BTC","interval":"1h"}
completed_pnl
获取已平仓盈亏
{"address":"0x...","coin":"BTC","interval":"1h"}
current_executions
获取当前执行记录
{"address":"0x...","coin":"BTC","interval":"1h"}
completed_executions
获取已平仓执行记录
{"address":"0x...","coin":"BTC","interval":"1h"}

Portfolio

投资组合

ActionDescriptionParams
portfolio
Account curve
{"address":"0x...","window":"week"}
window: day/week/month/allTime
pnls
PnL curve
{"address":"0x...","period":"30"}
max_drawdown
Max drawdown
{"address":"0x...","days":"30"}
net_flow
Net flow
{"address":"0x...","days":"30"}
操作描述参数
portfolio
获取账户资金曲线
{"address":"0x...","window":"week"}
window可选值:day/week/month/allTime
pnls
获取盈亏曲线
{"address":"0x...","period":"30"}
max_drawdown
获取最大回撤
{"address":"0x...","days":"30"}
net_flow
获取资金净流入
{"address":"0x...","days":"30"}

Advanced

高级功能

ActionDescriptionParams
info
Info API
{"type":"metaAndAssetCtxs"}
smart_find
Smart money discovery
{}
discover
Trader discovery
{}

操作描述参数
info
获取Info API数据
{"type":"metaAndAssetCtxs"}
smart_find
智能资金发现
{}
discover
交易者发现
{}

scripts/exchange.mjs — Exchange Trading (CCXT)

scripts/exchange.mjs — 交易所交易(基于CCXT)

⚠️ MANDATORY: All exchange operations MUST go through
exchange.mjs
.
  • NEVER write custom CCXT/Python code to interact with exchanges. Always use
    node scripts/exchange.mjs <action> '<params>'
    .
  • NEVER import ccxt directly in custom scripts. The exchange.mjs wrapper handles broker attribution, proxy config, and API key management.
  • exchange.mjs
    automatically sets AiCoin broker tags for order attribution. Custom CCXT code will NOT have these tags, causing orders to be mis-attributed.
  • For automated trading workflows, use
    auto-trade.mjs
    which wraps
    exchange.mjs
    with risk management.
Requires
npm install ccxt
and exchange API keys.
⚠️ 强制要求:所有交易所操作必须通过
exchange.mjs
执行。
  • 绝对不要编写自定义CCXT/Python代码与交易所交互,必须使用
    node scripts/exchange.mjs <action> '<params>'
    格式。
  • 绝对不要在自定义脚本中直接导入ccxt,
    exchange.mjs
    封装器会处理经纪商归因、代理配置和API密钥管理。
  • exchange.mjs
    会自动设置AiCoin经纪商标签用于订单归因,自定义CCXT代码不会包含这些标签,会导致订单归因错误。
  • 对于自动化交易工作流,请使用
    auto-trade.mjs
    ,它基于
    exchange.mjs
    封装了风险管理功能。
需要先执行
npm install ccxt
并配置交易所API密钥。

Public (no API key required)

公开接口(无需API密钥)

ActionDescriptionParams
exchanges
Supported exchangesNone
markets
Market list
{"exchange":"binance","market_type":"swap","base":"BTC"}
ticker
Real-time ticker
{"exchange":"binance","symbol":"BTC/USDT"}
orderbook
Order book
{"exchange":"binance","symbol":"BTC/USDT"}
trades
Recent trades
{"exchange":"binance","symbol":"BTC/USDT"}
ohlcv
OHLCV candles
{"exchange":"binance","symbol":"BTC/USDT","timeframe":"1h"}
操作描述参数
exchanges
获取支持的交易所列表
markets
获取市场列表
{"exchange":"binance","market_type":"swap","base":"BTC"}
ticker
获取实时行情
{"exchange":"binance","symbol":"BTC/USDT"}
orderbook
获取订单簿
{"exchange":"binance","symbol":"BTC/USDT"}
trades
获取近期成交
{"exchange":"binance","symbol":"BTC/USDT"}
ohlcv
获取K线数据
{"exchange":"binance","symbol":"BTC/USDT","timeframe":"1h"}

Account (API key required)

账户接口(需要API密钥)

ActionDescriptionParams
balance
Account balance
{"exchange":"binance"}
positions
Open positions
{"exchange":"binance","market_type":"swap"}
open_orders
Open orders
{"exchange":"binance","symbol":"BTC/USDT"}
操作描述参数
balance
获取账户余额
{"exchange":"binance"}
positions
获取当前持仓
{"exchange":"binance","market_type":"swap"}
open_orders
获取当前挂单
{"exchange":"binance","symbol":"BTC/USDT"}

Trading (API key required)

交易接口(需要API密钥)

🚨 SAFETY RULES — MANDATORY for ALL trading operations:
  1. NEVER execute a buy/sell/trade without explicit user confirmation. Always show the order details and ask "确认下单?" BEFORE calling
    create_order
    .
  2. NEVER sell or close the user's existing positions unless the user specifically asks to sell/close.
  3. NEVER write custom CCXT, Python, or curl code to interact with exchanges. ALL exchange operations MUST go through
    exchange.mjs
    .
⚠️ CRITICAL —
amount
units differ between spot and futures:
  • Spot:
    amount
    is in base currency (e.g.,
    amount: 0.01
    = 0.01 BTC)
  • Futures/Swap:
    amount
    is in contracts (e.g.,
    amount: 1
    = 1 contract). Get
    contractSize
    from
    markets
    to convert.
User intent →
amount
conversion (you MUST get this right):
User saysSpot
amount
Swap
amount
(OKX BTC, contractSize=0.01)
"0.01 BTC" / "0.01个BTC"
0.01
0.01 / 0.01 = 1
(1 contract)
"1张合约" / "1 contract"N/A
1
(直接用)
"0.01张"N/A
0.01
(0.01 contract = 0.0001 BTC)
"100U" / "100 USDT"
100 / price
(100 / price) / contractSize
NEVER pass the user's number directly as
amount
without checking the unit context!
Before placing any order, you MUST:
  1. Run
    markets
    to get the trading pair's
    limits.amount.min
    (minimum order size) and
    contractSize
    — do NOT guess or assume minimums
  2. Run
    balance
    to check available funds
  3. Convert user's quantity to the correct unit using the table above
  4. For futures/swap: calculate actual buying power = balance × leverage
  5. Verify: buying power ≥ order value
  6. Confirm with user: "You want to buy X contracts (= Y BTC ≈ Z USDT), correct?" before placing the order
Example pre-trade check for BTC/USDT perpetual on OKX:
bash
undefined
🚨 安全规则 —— 所有交易操作必须遵守:
  1. 绝对不要在未获得用户明确确认的情况下执行买/卖/交易操作。必须先展示订单详情并询问“确认下单?”,再调用
    create_order
  2. 绝对不要卖出或平仓用户的现有仓位,除非用户明确要求卖出/平仓。
  3. 绝对不要编写自定义CCXT、Python或curl代码与交易所交互,所有交易所操作必须通过
    exchange.mjs
    执行。
⚠️ 关键注意事项 ——
amount
参数在现货和期货中的单位不同:
  • 现货
    amount
    的单位是基础币种(例如:
    amount: 0.01
    = 0.01 BTC)
  • 期货/永续合约
    amount
    的单位是合约张数(例如:
    amount: 1
    = 1张合约)。可通过
    markets
    获取
    contractSize
    进行转换。
用户意图 →
amount
参数转换(必须确保转换正确):
用户表述现货
amount
永续合约
amount
(以OKX BTC为例,contractSize=0.01)
"0.01 BTC" / "0.01个BTC"
0.01
0.01 / 0.01 = 1
(1张合约)
"1张合约" / "1 contract"不适用
1
(直接使用)
"0.01张"不适用
0.01
(0.01张合约 = 0.0001 BTC)
"100U" / "100 USDT"
100 / 价格
(100 / 价格) / contractSize
绝对不要在未确认单位上下文的情况下,直接将用户提供的数字作为
amount
参数传入!
下单前必须执行以下步骤:
  1. 调用
    markets
    获取交易对的
    limits.amount.min
    (最小下单量)和
    contractSize
    —— 不要猜测或假设最小下单量
  2. 调用
    balance
    检查可用资金
  3. 根据上表将用户的数量转换为正确的单位
  4. 对于期货/永续合约:计算实际购买力 = 余额 × 杠杆
  5. 验证:购买力 ≥ 订单价值
  6. 与用户确认:“你要买入X张合约(= Y BTC ≈ Z USDT),对吗?”之后再下单
OKX BTC/USDT永续合约下单前检查示例:
bash
undefined

Step 1: Check minimum order size AND contract size

步骤1:检查最小下单量和合约大小

node scripts/exchange.mjs markets '{"exchange":"okx","market_type":"swap","base":"BTC"}'
node scripts/exchange.mjs markets '{"exchange":"okx","market_type":"swap","base":"BTC"}'

→ look for limits.amount.min (e.g. 1 contract) and contractSize (e.g. 0.01 BTC)

→ 查找limits.amount.min(例如1张合约)和contractSize(例如0.01 BTC)

→ This means: 1 contract = 0.01 BTC, min order = 1 contract = 0.01 BTC

→ 意味着:1张合约 = 0.01 BTC,最小下单量 = 1张合约 = 0.01 BTC

Step 2: Check balance

步骤2:检查余额

node scripts/exchange.mjs balance '{"exchange":"okx"}'
node scripts/exchange.mjs balance '{"exchange":"okx"}'

→ e.g. 7 USDT free

→ 例如:可用7 USDT

Step 3: Calculate — 7 USDT × 10x = 70 USDT ÷ $68000 ≈ 0.001 BTC ÷ 0.01 = 0.1 contracts → below min 1 contract → cannot trade

步骤3:计算 —— 7 USDT × 10倍杠杆 = 70 USDT ÷ $68000 ≈ 0.001 BTC ÷ 0.01 = 0.1张合约 → 低于最小1张合约 → 无法交易

With more capital: 100 USDT × 10x = 1000 ÷ $68000 ≈ 0.0147 BTC ÷ 0.01 = 1.47 → round to 1 contract → OK

若资金充足:100 USDT ×10倍杠杆=1000 ÷ $68000≈0.0147 BTC ÷0.01=1.47 → 取整为1张合约 → 可交易


| Action | Description | Params |
|--------|-------------|--------|
| `create_order` | Place order | Spot: `{"exchange":"okx","symbol":"BTC/USDT","type":"market","side":"buy","amount":0.001}` (amount in BTC). Swap: `{"exchange":"okx","symbol":"BTC/USDT:USDT","type":"market","side":"buy","amount":1,"market_type":"swap"}` (amount in contracts) |
| `cancel_order` | Cancel order | `{"exchange":"okx","symbol":"BTC/USDT","order_id":"xxx"}` |
| `set_leverage` | Set leverage | `{"exchange":"okx","symbol":"BTC/USDT:USDT","leverage":10,"market_type":"swap"}` |
| `set_margin_mode` | Margin mode | `{"exchange":"okx","symbol":"BTC/USDT:USDT","margin_mode":"cross","market_type":"swap"}` |
| `transfer` | Transfer funds | `{"exchange":"binance","code":"USDT","amount":100,"from_account":"spot","to_account":"future"}` |

**Notes on `transfer`:**
- **OKX unified account (重要)**: OKX uses a **unified trading account** — spot and derivatives share the SAME balance. **Do NOT ask the user to transfer funds between accounts.** If transfer returns error 58123, tell the user: "你的 OKX 是统一账户,现货和合约共用同一个余额,不需要划转。" Do NOT suggest manual transfer in the app.
- **Binance**: Requires explicit transfer between spot/futures accounts.

---

| 操作 | 描述 | 参数 |
|--------|-------------|--------|
| `create_order` | 下单 | 现货:`{"exchange":"okx","symbol":"BTC/USDT","type":"market","side":"buy","amount":0.001}`(amount单位为BTC)。永续合约:`{"exchange":"okx","symbol":"BTC/USDT:USDT","type":"market","side":"buy","amount":1,"market_type":"swap"}`(amount单位为合约张数) |
| `cancel_order` | 撤单 | `{"exchange":"okx","symbol":"BTC/USDT","order_id":"xxx"}` |
| `set_leverage` | 设置杠杆 | `{"exchange":"okx","symbol":"BTC/USDT:USDT","leverage":10,"market_type":"swap"}` |
| `set_margin_mode` | 设置保证金模式 | `{"exchange":"okx","symbol":"BTC/USDT:USDT","margin_mode":"cross","market_type":"swap"}` |
| `transfer` | 资金划转 | `{"exchange":"binance","code":"USDT","amount":100,"from_account":"spot","to_account":"future"}` |

**`transfer`接口注意事项:**
- **OKX统一账户(重要)**:OKX采用统一交易账户 —— 现货和衍生品共用同一余额。**请勿要求用户在账户间划转资金**。如果transfer接口返回错误码58123,请告知用户:“你的OKX是统一账户,现货和合约共用同一个余额,不需要划转。” 不要建议用户在APP中手动划转。
- **Binance**:需要在现货/期货账户间明确划转资金。

---

scripts/ft.mjs — Freqtrade Bot Control

scripts/ft.mjs — Freqtrade机器人控制

ActionDescriptionParams
ping
Health checkNone
start
Start tradingNone
stop
Stop tradingNone
reload
Reload configNone
config
View configNone
version
Version infoNone
sysinfo
System infoNone
health
Health statusNone
logs
View logs
{"limit":50}
balance
Account balanceNone
trades_open
Open tradesNone
trades_count
Trade countNone
trade_by_id
Trade by ID
{"trade_id":1}
trades_history
Trade history
{"limit":50}
force_enter
Manual entry
{"pair":"BTC/USDT","side":"long"}
force_exit
Manual exit
{"tradeid":"1"}
cancel_order
Cancel order
{"trade_id":1}
delete_trade
Delete record
{"trade_id":1}
profit
Profit summaryNone
profit_per_pair
Profit per pairNone
daily
Daily report
{"count":7}
weekly
Weekly report
{"count":4}
monthly
Monthly report
{"count":3}
stats
StatisticsNone

操作描述参数
ping
健康检查
start
启动交易
stop
停止交易
reload
重载配置
config
查看配置
version
版本信息
sysinfo
系统信息
health
健康状态
logs
查看日志
{"limit":50}
balance
账户余额
trades_open
当前持仓
trades_count
交易次数
trade_by_id
按ID查看交易
{"trade_id":1}
trades_history
交易历史
{"limit":50}
force_enter
手动开仓
{"pair":"BTC/USDT","side":"long"}
force_exit
手动平仓
{"tradeid":"1"}
cancel_order
撤单
{"trade_id":1}
delete_trade
删除交易记录
{"trade_id":1}
profit
盈亏汇总
profit_per_pair
按交易对统计盈亏
daily
每日报告
{"count":7}
weekly
每周报告
{"count":4}
monthly
每月报告
{"count":3}
stats
统计数据

scripts/ft-dev.mjs — Freqtrade Dev Tools

scripts/ft-dev.mjs — Freqtrade开发工具

ActionDescriptionParams
backtest_start
Start backtest
{"strategy":"MyStrategy","timerange":"20240101-20240601","timeframe":"5m"}
backtest_status
Backtest statusNone
backtest_abort
Abort backtestNone
backtest_history
Backtest historyNone
backtest_result
History result
{"id":"xxx"}
candles_live
Live candles
{"pair":"BTC/USDT","timeframe":"1h"}
candles_analyzed
Candles with indicators
{"pair":"BTC/USDT","timeframe":"1h","strategy":"MyStrategy"}
candles_available
Available pairsNone
whitelist
WhitelistNone
blacklist
BlacklistNone
blacklist_add
Add to blacklist
{"add":["DOGE/USDT"]}
locks
Trade locksNone
strategy_list
Strategy listNone
strategy_get
Strategy detail
{"name":"MyStrategy"}

操作描述参数
backtest_start
启动回测
{"strategy":"MyStrategy","timerange":"20240101-20240601","timeframe":"5m"}
backtest_status
回测状态
backtest_abort
终止回测
backtest_history
回测历史
backtest_result
回测历史结果
{"id":"xxx"}
candles_live
实时K线
{"pair":"BTC/USDT","timeframe":"1h"}
candles_analyzed
带指标的K线
{"pair":"BTC/USDT","timeframe":"1h","strategy":"MyStrategy"}
candles_available
可用交易对
whitelist
白名单
blacklist
黑名单
blacklist_add
添加到黑名单
{"add":["DOGE/USDT"]}
locks
交易锁
strategy_list
策略列表
strategy_get
策略详情
{"name":"MyStrategy"}

scripts/auto-trade.mjs — Automated Trading

scripts/auto-trade.mjs — 自动化交易

Config + execution helper. The AI agent makes all strategy decisions — this script only handles config, risk management, and order execution.
Config is stored at
~/.openclaw/workspace/aicoin-trade-config.json
.
ActionDescriptionParams
setup
Save trading config
{"exchange":"okx","symbol":"BTC/USDT:USDT","leverage":20,"capital_pct":0.5,"stop_loss_pct":0.025,"take_profit_pct":0.05}
status
Show config + balance + positions + open orders
{}
open
Open a position (agent decides direction)
{"direction":"long"}
or
{"direction":"short"}
close
Close current position + cancel orders
{}
The
open
action automatically:
  1. Checks balance and market minimums
  2. Calculates position size from config (capital_pct × balance × leverage)
  3. Sets leverage
  4. Places market order
  5. Places stop-loss and take-profit limit orders

配置+执行辅助工具。AI Agent负责所有策略决策 —— 本脚本仅处理配置、风险管理和订单执行。
配置文件存储于
~/.openclaw/workspace/aicoin-trade-config.json
操作描述参数
setup
保存交易配置
{"exchange":"okx","symbol":"BTC/USDT:USDT","leverage":20,"capital_pct":0.5,"stop_loss_pct":0.025,"take_profit_pct":0.05}
status
查看配置+余额+仓位+挂单
{}
open
开仓(Agent决定方向)
{"direction":"long"}
{"direction":"short"}
close
平仓+撤单
{}
open
操作会自动执行以下步骤:
  1. 检查余额和市场最小下单量
  2. 根据配置计算仓位大小(capital_pct × 余额 × 杠杆)
  3. 设置杠杆
  4. 下市价单
  5. 下止损和止盈限价单

scripts/ft-deploy.mjs — Freqtrade Deployment

scripts/ft-deploy.mjs — Freqtrade部署

One-click Freqtrade deployment via
git clone
+ official
setup.sh
(no Docker).
Clones the Freqtrade repo, runs
setup.sh -i
to install all dependencies (including TA-Lib), generates config from
.env
exchange keys, starts as background process, auto-writes
FREQTRADE_*
vars to
.env
.
ActionDescriptionParams
check
Check prerequisites (Python 3.11+, git, exchange keys)None
deploy
Deploy Freqtrade (clone, setup.sh, config, start)
{"dry_run":true,"pairs":["BTC/USDT:USDT","ETH/USDT:USDT"]}
backtest
Run backtest (no running process needed)
{"strategy":"SampleStrategy","timeframe":"1h","timerange":"20250101-20260301"}
update
Update Freqtrade to latest versionNone
status
Process statusNone
start
Start stopped processNone
stop
Stop processNone
logs
View process logs
{"lines":50}
remove
Remove process (preserves config)None
Deploy defaults to dry-run mode (simulated trading, no real money). Pass
{"dry_run":false}
for live trading.
IMPORTANT: NEVER use Docker for Freqtrade. The deploy script uses
git clone
+
setup.sh -i
(official Freqtrade installation method). Do NOT fall back to Docker, do NOT write custom install scripts, do NOT try
pip install freqtrade
directly. Just run
node scripts/ft-deploy.mjs deploy
— it handles everything.
IMPORTANT: Do NOT manually edit Freqtrade config files, do NOT manually run
freqtrade trade
commands, do NOT manually
source .venv/bin/activate
.
Always use
ft-deploy.mjs
actions. If deploy fails, check logs with
ft-deploy.mjs logs
and report the error — do NOT attempt manual workarounds.

通过
git clone
+ 官方
setup.sh
一键部署Freqtrade(无需Docker)
。克隆Freqtrade仓库,运行
setup.sh -i
安装所有依赖(包括TA-Lib),从.env中的交易所密钥生成配置,作为后台进程启动,自动将
FREQTRADE_*
变量写入.env。
操作描述参数
check
检查前置依赖(Python 3.11+、git、交易所密钥)
deploy
部署Freqtrade(克隆、setup.sh、配置、启动)
{"dry_run":true,"pairs":["BTC/USDT:USDT","ETH/USDT:USDT"]}
backtest
运行回测
{"strategy":"SampleStrategy","timeframe":"1h","timerange":"20250101-20260301"}
update
更新Freqtrade到最新版本
status
进程状态
start
启动已停止的进程
stop
停止进程
logs
查看进程日志
{"lines":50}
remove
删除进程(保留配置)
部署默认使用dry-run模式(模拟交易,无真实资金)。传入
{"dry_run":false}
切换到实盘交易。
重要提示:绝对不要使用Docker部署Freqtrade。部署脚本使用
git clone
+
setup.sh -i
(Freqtrade官方推荐安装方式)。不要使用Docker,不要编写自定义安装脚本,不要直接执行
pip install freqtrade
。只需运行
node scripts/ft-deploy.mjs deploy
—— 它会处理所有步骤。
重要提示:不要手动编辑Freqtrade配置文件,不要手动运行
freqtrade trade
命令,不要手动执行
source .venv/bin/activate
。必须始终使用
ft-deploy.mjs
的操作。如果部署失败,使用
ft-deploy.mjs logs
查看日志并报告错误 —— 不要尝试手动解决。

Automated Trading Guide

自动化交易指南

When the user asks to set up automated trading, follow this workflow. Do NOT write custom scripts.
当用户询问如何设置自动化交易时,请遵循以下工作流。不要编写自定义脚本

How It Works

工作原理

The AI agent is the strategist. On each cycle:
  1. Fetch data using existing scripts:
    coin.mjs
    (funding, OI, liquidation),
    market.mjs
    (klines, volume),
    features.mjs
    (whale orders, long/short ratio),
    hl-market.mjs
    (Hyperliquid data)
  2. Analyze the data — trend, momentum, risk signals. Use your own judgment.
  3. Decide: open long, open short, close position, or hold
  4. Execute via
    auto-trade.mjs open '{"direction":"long"}'
    — handles position sizing, leverage, stop-loss/take-profit automatically
AI Agent担任策略师角色,在每个周期执行以下步骤:
  1. 获取数据:使用现有脚本
    coin.mjs
    (资金费率、持仓量、爆仓)、
    market.mjs
    (K线、成交量)、
    features.mjs
    (鲸鱼订单、多空比)、
    hl-market.mjs
    (Hyperliquid数据)
  2. 分析数据:趋势、动量、风险信号,使用自身判断
  3. 决策:开多、开空、平仓或持有
  4. 执行:通过
    auto-trade.mjs open '{"direction":"long"}'
    —— 自动处理仓位大小、杠杆、止损/止盈

Quick Setup

快速设置

bash
undefined
bash
undefined

1. Configure risk params

1. 配置风险参数

node scripts/auto-trade.mjs setup '{"exchange":"okx","symbol":"BTC/USDT:USDT","leverage":10,"capital_pct":0.5}'
node scripts/auto-trade.mjs setup '{"exchange":"okx","symbol":"BTC/USDT:USDT","leverage":10,"capital_pct":0.5}'

2. Check status

2. 查看状态

node scripts/auto-trade.mjs status
undefined
node scripts/auto-trade.mjs status
undefined

OpenClaw Cron (Recommended)

推荐使用OpenClaw Cron

Use OpenClaw's built-in cron, NOT system crontab. This gives the user visibility in the web UI.
bash
openclaw cron add \
  --name "BTC auto trade" \
  --every 10m \
  --session isolated \
  --message "You are a crypto trader. Use the aicoin skill to: 1) Fetch BTC market data (price, funding rate, OI, whale orders, liquidation). 2) Analyze the data and decide: open long, open short, close, or hold. 3) If trading, run: node scripts/auto-trade.mjs open '{\"direction\":\"long\"}'. 4) Report your analysis briefly."
使用OpenClaw内置的Cron,不要使用系统crontab。这样用户可以在Web UI中查看任务状态。
bash
openclaw cron add \
  --name "BTC auto trade" \
  --every 10m \
  --session isolated \
  --message "你是一名加密货币交易员,使用aicoin skill执行以下操作:1) 获取BTC市场数据(价格、资金费率、持仓量、鲸鱼订单、爆仓)。2) 分析数据并决策:开多、开空、平仓或持有。3) 若需要交易,运行:node scripts/auto-trade.mjs open '{\"direction\":\"long\"}'。4) 简要报告分析结果。"

When User Asks "帮我自动交易"

当用户询问“帮我自动交易”时

  1. Ask: which exchange? which coin? how much capital? what leverage?
  2. Run
    auto-trade.mjs setup
    with their params
  3. Run
    auto-trade.mjs status
    to verify exchange connection
  4. Set up OpenClaw cron with their preferred interval
  5. Done — tell them they can check status anytime via
    auto-trade.mjs status

  1. 询问:哪个交易所?哪个币种?使用多少资金?杠杆倍数?
  2. 使用用户提供的参数运行
    auto-trade.mjs setup
  3. 运行
    auto-trade.mjs status
    验证交易所连接
  4. 使用用户偏好的时间间隔设置OpenClaw Cron
  5. 完成设置 —— 告知用户可随时通过
    auto-trade.mjs status
    查看状态

Freqtrade Guide

Freqtrade指南

When the user asks about backtesting, professional strategies, quantitative trading, or deploying a trading bot, guide them to Freqtrade.
Freqtrade vs auto-trade.mjs:
  • auto-trade.mjs = simple AI-driven, good for testing, small capital
  • Freqtrade = professional, backtestable, risk-managed, production-grade
当用户询问回测、专业策略、量化交易或部署交易机器人时,引导其使用Freqtrade。
Freqtrade vs auto-trade.mjs:
  • auto-trade.mjs = 简单AI驱动,适合测试、小额资金
  • Freqtrade = 专业级,支持回测,具备风险管理,适合生产环境

Deployment (One Command)

部署(一键命令)

bash
undefined
bash
undefined

Check prerequisites first

先检查前置依赖

node scripts/ft-deploy.mjs check
node scripts/ft-deploy.mjs check

Deploy (dry-run mode by default — safe)

部署(默认dry-run模式,安全无风险)

node scripts/ft-deploy.mjs deploy '{"pairs":["BTC/USDT:USDT","ETH/USDT:USDT"]}'

This automatically:
1. Ensures Python 3.11+ is available (auto-installs via brew if needed on macOS)
2. Clones Freqtrade repo to `~/.freqtrade/source/`
3. Runs official `setup.sh -i` (installs TA-Lib, creates venv, installs all dependencies)
4. Creates config from exchange keys in `.env`
5. Includes a sample RSI+EMA strategy (pure pandas, no TA-Lib import needed)
6. Starts Freqtrade as a background process with API server
7. Writes `FREQTRADE_URL`, `FREQTRADE_USERNAME`, `FREQTRADE_PASSWORD` to `.env`
8. Ready to use via `ft.mjs` and `ft-dev.mjs`

**Prerequisites:** Python 3.11+ and git. Exchange API keys must be in `.env`. Everything else is auto-installed — do NOT install manually or use Docker.
node scripts/ft-deploy.mjs deploy '{"pairs":["BTC/USDT:USDT","ETH/USDT:USDT"]}'

该命令会自动执行以下步骤:
1. 确保Python 3.11+可用(macOS上若缺失会通过brew自动安装)
2. 将Freqtrade仓库克隆到`~/.freqtrade/source/`
3. 运行官方`setup.sh -i`(安装TA-Lib、创建虚拟环境、安装所有依赖)
4. 从.env中的交易所密钥生成配置
5. 包含一个示例RSI+EMA策略(纯pandas实现,无需导入TA-Lib)
6. 启动Freqtrade后台进程并开启API服务
7. 将`FREQTRADE_URL`、`FREQTRADE_USERNAME`、`FREQTRADE_PASSWORD`写入.env
8. 可通过`ft.mjs`和`ft-dev.mjs`使用

**前置依赖:** Python 3.11+ 和 git。交易所API密钥必须已在.env中配置。其他所有依赖会自动安装 —— 不要手动安装或使用Docker。

User Journey

用户操作流程示例

"帮我部署Freqtrade"
  → node scripts/ft-deploy.mjs deploy
  → "已部署,dry-run模式,用模拟资金运行"

"帮我回测BTC策略"
  → node scripts/ft-deploy.mjs backtest '{"strategy":"SampleStrategy","timeframe":"1h","timerange":"20250101-20260301"}'
  → "回测结果: 胜率62%, 最大回撤-8%, 总收益+45%"

"不错,上实盘"
  → node scripts/ft-deploy.mjs deploy '{"dry_run":false}'
  → "⚠️ 已切换到实盘模式,使用真实资金"

"今天赚了多少?"
  → node scripts/ft.mjs profit
  → node scripts/ft.mjs daily '{"count":7}'

"暂停交易"
  → node scripts/ft.mjs stop
"帮我部署Freqtrade"
  → node scripts/ft-deploy.mjs deploy
  → "已部署,当前为dry-run模式,使用模拟资金运行"

"帮我回测BTC策略"
  → node scripts/ft-deploy.mjs backtest '{"strategy":"SampleStrategy","timeframe":"1h","timerange":"20250101-20260301"}'
  → "回测结果: 胜率62%, 最大回撤-8%, 总收益+45%"

"不错,上实盘"
  → node scripts/ft-deploy.mjs deploy '{"dry_run":false}'
  → "⚠️ 已切换到实盘模式,使用真实资金"

"今天赚了多少?"
  → node scripts/ft.mjs profit
  → node scripts/ft.mjs daily '{"count":7}'

"暂停交易"
  → node scripts/ft.mjs stop

When User Mentions These Keywords → Use Freqtrade

当用户提及以下关键词时 → 使用Freqtrade

  • 回测 / backtest →
    ft-deploy.mjs backtest
    (does NOT require Freqtrade to be running)
  • 写策略 / write strategy → Write a
    .py
    file to
    ~/.freqtrade/user_data/strategies/
    , then
    ft-deploy.mjs backtest
  • 量化策略 / strategy →
    ft-dev.mjs strategy_list
    (requires running process)
  • 部署机器人 / deploy bot →
    ft-deploy.mjs deploy
  • 实盘 / live trading →
    ft-deploy.mjs deploy '{"dry_run":false}'
  • 盈亏 / profit →
    ft.mjs profit
  • 停止机器人 / stop bot →
    ft.mjs stop
    or
    ft-deploy.mjs stop
IMPORTANT: For backtesting, use
ft-deploy.mjs backtest
. Do NOT write custom Python backtest scripts. The Freqtrade backtester is production-grade with proper slippage, fees, and position sizing simulation.
  • 回测 / backtest →
    ft-deploy.mjs backtest
    (无需Freqtrade正在运行)
  • 写策略 / write strategy → 将
    .py
    文件写入
    ~/.freqtrade/user_data/strategies/
    ,然后运行
    ft-deploy.mjs backtest
  • 量化策略 / strategy →
    ft-dev.mjs strategy_list
    (需要Freqtrade正在运行)
  • 部署机器人 / deploy bot →
    ft-deploy.mjs deploy
  • 实盘 / live trading →
    ft-deploy.mjs deploy '{"dry_run":false}'
  • 盈亏 / profit →
    ft.mjs profit
  • 停止机器人 / stop bot →
    ft.mjs stop
    ft-deploy.mjs stop
重要提示:回测必须使用
ft-deploy.mjs backtest
,不要编写自定义Python回测脚本。Freqtrade回测器是生产级别的,支持滑点、手续费和仓位大小模拟。