aicoincom/coinos-skills/aicoin-freqtrade
Claude Code and agent skill by aicoincom/coinos-skills
- community
Checking that the SKILL.md file is still in the repository.
Use when user asks about Freqtrade — strategy creation, backtest, hyperopt, switching strategies / pairs / dry-run mode, querying live bot status / balance / open positions / 盈亏. Trigger words: 'write strategy', 'create strategy', 'backtest', 'switch strategy', 'switch to live', 'open positions', 'P&L', '写策略', '创建策略', '回测', '部署策略', '切策略', '切实盘', '当前持仓', '今天赚多少', '盈亏'. In CoinClaw containers (OpenClaw / Hermes / Claude Code) freqtrade is a supervisord-managed daemon on :8080 — this skill auto-detects engine + paths via lib/coinclaw-env.mjs and never spawns competing freqtrade processes. Outside CoinClaw it falls back to host mode (clone freqtrade + nohup). For prices/charts use aicoin-market. For exchange trading use aicoin-trading. For Hyperliquid use aicoin-hyperliquid.
Install
npx vskill@latest install aicoincom/coinos-skills/aicoin-freqtradeSKILL.md
AiCoin Freqtrade
Freqtrade 策略 / 回测 / 部署 / 实时控制 — 跨 CoinClaw 三引擎自动适配。
关键原则(读完再动手)
一、CoinClaw 容器里 freqtrade 是常驻 daemon
OpenClaw / Hermes / Claude Code 三个引擎容器都通过 supervisord 把 freqtrade 起为常驻进程, 监听 127.0.0.1:8080, 默认跑 NoOpStrategy(空跑). 不要自己起 freqtrade 进程 — 会跟 daemon 抢端口, dashboard 立刻 offline.
正确流程是: 写策略文件 → 调 ft-deploy.mjs deploy {"strategy":"..."} → 脚本改 config + 重启 daemon. dashboard 会自动刷出新策略.
scripts/ft.mjs + scripts/ft-deploy.mjs 内置三引擎自动识别(lib/coinclaw-env.mjs), 路径 / auth / supervisord socket 都自动解析, agent 不用关心是哪个引擎.
二、永远先调 freqtrade REST API, 不要"自己计算"
| 用户问 | 必须先调 | |
|---|---|---|
| 现在赚多少 / 总盈亏 / 今天涨了多少 | ft.mjs profit (/api/v1/profit) | |
| 持仓 / 现在开了哪些 | ft.mjs trades_open (/api/v1/status) | |
| 余额 / 资金多少 | ft.mjs balance (/api/v1/balance) | |
| 跑的什么策略 / 当前模式 | ft.mjs daemon_info 或 config | |
| 历史交易 / 已平仓 | ft.mjs trades_history | |
| 单交易对绩效 | ft.mjs profit_per_pair |
dashboard 数字对齐规则(关键): 用户问"赚了多少"必须报告两个数字:
- 已平仓累计盈亏 =
profit_closed_coin(USDT) — dashboard 顶栏的累计盈亏 = 这个 - 含浮动总盈亏 =
profit_all_coin(USDT) — 已平仓 + 当前持仓的浮动盈亏
只调 /status 拿持仓浮动盈亏会漏掉已平仓部分, 导致跟 dashboard 数字不一致 — 用户立刻发现, 信任度归零.
三、切策略 / 切实盘 / 切交易对必须走脚本
config.json 是 daemon 启动时读一次, 手动改完不会自动生效. 必须用:
| 操作 | 命令 | 是否需要 daemon 重启 | |
|---|---|---|---|
| 切策略 | ft.mjs set_strategy {"strategy":"X"} | 必须重启 (~30s) | |
| 切交易对 | ft.mjs set_pairs {"pairs":[...]} | 不重启, reload_config 即可 | |
| 切实盘/模拟 | ft.mjs set_dry_run {"dry_run":false} | 必须重启 | |
| reload 配置 | ft.mjs reload | 不重启 |
或者一次完成所有变更: ft-deploy.mjs deploy {"strategy":"X","pairs":["BTC/USDT:USDT"],"dry_run":false}.
任何直接修改 config.json 的操作(包括手动编辑 pair_whitelist / minimal_roi / stoploss 等), 改完后必须立即调 `ft.mjs reload` — 否则 daemon 仍用内存里的旧配置运行, 白名单/止损等改动不会生效. 忘了 reload 是最常见的"改了但没用"的原因.
chat 主动发起的高 stake 操作必须强 confirm(违反即错):
适用: 用户在 chat 里说"平掉"、"切实盘"、"卖了"、"开仓"等 — 通过 agent 调用 force_exit / force_enter / set_dry_run 的操作.
流程:
- 先列预览: 动哪个 trade / pair / 当前盈亏 / 估算损益 / dry_run vs live / 余额状况
- 明确等用户输"确认"或"yes" 才真调
force_exit/set_dry_run/force_enter - 即使用户语气笃定("平了","直接切"), 也必须先预览等确认
不需要 confirm 的:
- 查询类(查持仓 / 盈亏 / 状态) — 直接读
- freqtrade daemon 自己根据策略信号自动开/平仓 — 这是 daemon 本职工作, 用户切实盘那一刻就授权了, agent 不在这个链路里, 不要拦也不需要 confirm
- 非破坏性配置(
set_pairs加币对、reload) — 列改动表然后直接执行
违反规则的反例:
- ❌ 用户说"平掉", 你直接调
force_exit平了真持仓 (K-Live-3 dogfood 抓到的真 bug) - ❌ 用户说"切实盘", 你不列 .env key / 余额 / 风险就直接
set_dry_run {"dry_run":false} - ✅ 用户说"平掉", 你列"持仓: BNB/USDT 0.05 +$1.07, 平这单吗? dry_run=true 模拟盘", 等用户确认
写策略 + 切策略 倾向分两轮(create_strategy 一轮, set_strategy 一轮). 不是技术限制,是 UX 选择:
- 第一轮: 写完策略文件 → 告诉用户"已生成 X.py, 要切上去吗?"
- 用户确认后第二轮:
set_strategy切策略 + 重启 daemon (~30s)
这样用户切策略前能 review 生成文件; daemon 重启 30s 期间用户对状态有预期, 不会误判 chat 卡死. 用户明确说"一气呵成做完"也可以单 turn 跑完两步, 但默认分轮.
四、Freqtrade 不支持网格策略 (grid)
用户问网格时直接说明限制 + 建议趋势跟踪 / 区间策略 / 网格回报模拟器替代. 不要硬写一个伪网格.
快速参考
| 任务 | 命令 | |
|---|---|---|
| 看 daemon 状态 + 配置 | node scripts/ft-deploy.mjs check 或 ft.mjs daemon_info | |
| 看策略列表 | node scripts/ft-deploy.mjs strategy_list | |
| 创建策略(快速生成器) | node scripts/ft-deploy.mjs create_strategy '{"name":"MyStrat","timeframe":"15m","indicators":["rsi","macd","ema"],"aicoin_data":["funding_rate"]}' | |
| 部署策略到 daemon | node scripts/ft-deploy.mjs deploy '{"strategy":"MyStrat"}' | |
| 部署+切实盘 | node scripts/ft-deploy.mjs deploy '{"strategy":"MyStrat","dry_run":false}' | |
| 回测 | node scripts/ft-deploy.mjs backtest '{"strategy":"MyStrat","timeframe":"1h","timerange":"20250101-20260301"}' | |
| Hyperopt 调参 | node scripts/ft-deploy.mjs hyperopt '{"strategy":"MyStrat","timeframe":"1h","epochs":100}' | |
| 看盈亏 | node scripts/ft.mjs profit | |
| 看持仓 | node scripts/ft.mjs trades_open | |
| 看余额 | node scripts/ft.mjs balance | |
| 切交易对 | node scripts/ft.mjs set_pairs '{"pairs":["BTC/USDT:USDT","ETH/USDT:USDT"]}' | |
| 重启 daemon | node scripts/ft.mjs restart | |
| 看日志 | node scripts/ft-deploy.mjs logs '{"lines":100}' |
创建策略:先判断走哪条路
判断规则:
- 用户只给了笼统描述("RSI 策略"、"均线交叉"、"布林带回归")且没指定具体参数细节 → A. 快速生成器
- 用户给了具体逻辑(自定义入场/出场条件、跨周期共振、多币种轮动、复合指标、自定义仓位管理)→ B. 直接写 Python
- 用 A 生成后用户要改细节 → 直接编辑生成的 .py 文件,不要重新 create_strategy 覆盖
A. 快速生成器(简单策略)
create_strategy 一条命令生成一个可跑的策略文件。适合"先跑起来再调"的场景:
可选 indicators: rsi, bb, ema, sma, macd, stochastic/kdj, atr, adx, cci, williams_r, vwap, ichimoku, volume_sma, obv.
可选 direction: "long" (默认,只做多) | "short" (只做空) | "both" (双向)。 用户说"RSI<30 买入, RSI>70 卖出"→ direction="long"(RSI>70 = 平多, 不是开空)。只有用户明确说"做空 / 双向 / 多空都做"时才用 "both" 或 "short"。
可选 aicoin_data: funding_rate、ls_ratio、big_orders、liquidation_map(都需付费套餐),open_interest(v3 聚合 OI 历史暂未接通,会自动降级到默认值)。
生成器的局限:只能组合预设指标,不支持跨周期、多币种轮动、自定义复合指标。遇到这些需求直接走 B。
B. 自定义 Python 策略 (复杂逻辑)
直接写 .py 文件到 daemon 的 strategy 目录。用这条路可以实现任何 freqtrade 支持的策略逻辑(跨周期 informative pairs、自定义仓位管理、多指标复合条件等)。
三引擎该目录不同, 从 `daemon_info` 拿或用 Write 工具写到下面任一路径(脚本会自动用 /api/v1/show_config 验证):
| 引擎 | strategy 目录 | |
|---|---|---|
| OpenClaw | ~/.openclaw/workspace/strategies/ | |
| Hermes | /workspace/strategies/ | |
| Claude Code | /workspace/strategies/ |
用 AiCoin Python SDK (aicoin_data.py, image build 时已复制到上面目录, 也由 create_strategy 兜底拷贝):
它封装了 AiCoin Open API v3:
回测期 AiCoin 实时数据不可用,高层信号会抛异常 —— 策略里要 try/except 兜底用默认值。资金费率、大单、清算等需要付费套餐,没权限同样抛异常(一样兜底)。
完整模板
写完后用 deploy {"strategy":"MyStrategy"} 让 daemon 切到这个策略.
AiCoin 数据集成模式
| AiCoin 数据 | 信号逻辑 | 套餐 | |
|---|---|---|---|
funding_rate | 大于 0.01% → 多头过度 → 空信号; 小于 -0.01% → 多信号 | 基础版 | |
ls_ratio | 小于 0.45 (空头多) → 反向做多; 大于 0.55 → 反向做空 | 基础版 | |
big_orders | (buy_vol-sell_vol)/total > 0.3 → 鲸鱼买入做多 | 标准版 | |
open_interest | OI 涨 + 价涨 = 健康趋势; OI 涨 + 价跌 = 反转 | 专业版 | |
liquidation_map | 上方爆仓多 → 多头挤压 → 做多 | 高级版 |
回测注意事项
AiCoin 实时数据不在历史区间内可用. 回测时:
- AiCoin 列用默认值 (
funding_rate=0.0,ls_ratio=0.5,whale_signal=0.0) - 回测结果只反映技术指标部分
- live/dry_run 跑的时候才用真实 AiCoin 数据, 表现应该比回测好
向用户报告回测结果时必须主动说明这点, 不要让用户以为回测包含了 AiCoin 信号.
脚本 API
scripts/ft-deploy.mjs — 策略 / 回测 / 部署
| Action | 参数示例 | |
|---|---|---|
check | (无) — 返回 daemon 状态 + 配置 + 余额 | |
daemon_info(在 ft.mjs) | (无) — 单调用拿全 | |
deploy | {"strategy":"MyStrat"} 或 {"strategy":"MyStrat","dry_run":false,"pairs":["BTC/USDT:USDT"]} | |
create_strategy | {"name":"MyStrat","timeframe":"15m","indicators":["rsi","macd"],"direction":"long","aicoin_data":["funding_rate"]} | |
backtest | {"strategy":"MyStrat","timeframe":"1h","timerange":"20250101-20260301","pairs":["ETH/USDT:USDT"]} | |
hyperopt | {"strategy":"MyStrat","timeframe":"1h","epochs":100} | |
download_data | {"timeframe":"1h","timerange":"20250101-"} | |
strategy_list | (无) | |
backtest_results | (无) — 列最近 10 个回测结果文件名 | |
start / stop | (无) — coinclaw 模式调 supervisorctl, host 模式管 PID | |
status / logs | {"lines":100} | |
update / remove | coinclaw 模式 no-op (提示用 helm upgrade / web UI 删 instance) |
scripts/ft.mjs — 实时控制 (REST + 配置变更)
| Action | 用途 | |
|---|---|---|
daemon_info | 一次拿 strategy / mode / pairs / open trades 数量 | |
profit | 已平仓累计 + 含浮动总盈亏 (回答盈亏类问题必须先调) | |
trades_open | 当前持仓 (调 /status) | |
trades_history | 已平仓交易 | |
balance | 余额 | |
profit_per_pair | 每交易对绩效 | |
daily / weekly / monthly | 时间维度统计 | |
force_enter / force_exit | 手动开/平仓 | |
set_strategy | 切策略 (改 config + 重启 daemon) | |
set_pairs | 改交易对白名单 (reload, 不重启) | |
set_dry_run | 切实盘/模拟 (改 config + 重启 daemon) | |
restart | 重启 freqtrade daemon (supervisorctl + kill 兜底) | |
reload | reload_config 而不重启 | |
start / stop / ping / version / health | 标准 REST | |
logs | freqtrade 自带 /logs 接口 |
scripts/ft-dev.mjs — 调试 (回测 / 蜡烛 / 策略详情)
backtest_start / backtest_status / backtest_history / candles_live / candles_analyzed / strategy_list / strategy_get / whitelist / blacklist 等.
环境变量与认证
.env 自动加载顺序:
- coinclaw 容器内:
/workspace/.env(Hermes/CC) 或/home/node/.openclaw/workspace/.env(OpenClaw) - host 模式: `~/.coinos/.env`(coinos 文件夹, 推荐)→ 当前目录
.env→ 旧~/.openclaw/.env(向后兼容)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 81 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/aicoin-freqtrade/SKILL.md
Popularity
- Repository stars
- 52
- Repository forks
- 13
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 6 May 2026, 6 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/aicoincom/coinos-skills/aicoin-freqtrade)