量化策略止损参数研究方法论:如何用历史数据找到最优止损距离

止损距离是量化策略里最难确定的参数之一。太紧频繁被扫止损,太松单次亏损超预期。 凭直觉设参数没有说服力。更可靠的方法是:用历史数据系统地研究不同止损距离对策略表现的影响,找到在多个评估维度上表现均衡的参数区间。 这篇文章讲这个研究过程的方法论,包括数据准备、参数搜索、评估指标、以及防止过拟合的注意事项。 研究框架 1. 数据准备 ├─ 选取历史数据区间(训练集) └─ 准备价格序列和信号序列 2. 参数网格搜索 ├─ 定义止损参数范围(如 0.5% - 5%,步长 0.1%) └─ 对每个参数值跑完整回测 3. 评估指标计算 ├─ 总收益率 ├─ 最大回撤 ├─ 夏普比率 ├─ 胜率 × 盈亏比 └─ 止损触发率 4. 结果分析 ├─ 绘制参数敏感性曲线 ├─ 找稳健区间(小变化 → 小影响) └─ 在验证集上验证 5. 确定最终参数 数据准备 import pandas as pd import numpy as np from binance.client import Client def get_klines(symbol: str, interval: str, start: str, end: str) -> pd.DataFrame: """获取 Binance K 线数据""" client = Client() # 公开数据不需要 API 密钥 klines = client.get_historical_klines(symbol, interval, start, end) df = pd.DataFrame(klines, columns=[ 'timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_vol', 'trades', 'taker_buy_base', 'taker_buy_quote', 'ignore' ]) for col in ['open', 'high', 'low', 'close', 'volume']: df[col] = df[col].astype(float) df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms') df.set_index('timestamp', inplace=True) return df # 获取数据:分成训练集和验证集(时间序列不能随机分割!) df_train = get_klines("BTCUSDT", "4h", "2023-01-01", "2024-06-30") # 训练集 df_val = get_klines("BTCUSDT", "4h", "2024-07-01", "2024-12-31") # 验证集 为什么不能随机分割? ...

2026-04-15 · 4 min · 660 words · Panshi

量化工具栈:Binance API + Grafana + 自动化告警全套配置

跑一个量化策略需要的不只是策略本身——还需要一套支撑它运行、监控它状态、在出问题时及时告警的工具链。这篇文章分享我的完整工具栈,从策略执行到告警通知。 整体架构 策略层(Python) ↓ 交易指令 Binance API ↓ 执行结果 状态文件 / CF KV ↓ 指标 Prometheus + node_exporter ↓ 存储 Grafana 可视化 ↓ 告警规则 Alertmanager → Telegram 策略执行层 技术栈 语言:Python 3.11 Binance SDK:python-binance 定时任务:APScheduler 或系统 cron 依赖管理:requirements.txt + venv 目录结构 quant/ ├── strategy/ │ ├── main.py # 主策略逻辑(信号生成 + 下单) │ ├── signals.py # 指标计算(技术指标库) │ └── risk.py # 仓位管理、止损逻辑 ├── exchange/ │ └── binance_client.py # Binance API 封装 ├── monitor/ │ └── exporter.py # 状态指标写入 Prometheus 格式 ├── config/ │ └── settings.py # 配置(从环境变量读取) └── run.py # 入口 关键代码:状态指标暴露 策略运行时,把关键指标写成 Prometheus textfile 格式,供 node_exporter 抓取: ...

2026-04-15 · 3 min · 520 words · Panshi

OpenClaw 进阶:多 Agent 协作、量化工作流、自定义 Skill

这篇是 OpenClaw 入门教程 的续集,假设你已经装好了 OpenClaw,跑通了基本的 Telegram 交互。这里讲的是真正把它用起来之后的进阶技巧。 多 Agent 任务分工 OpenClaw 支持在同一个 Telegram 群里配置多个 Agent,各自负责不同领域,这是它最容易被忽视的功能。 为什么要分 Agent 不分 Agent 时,你的 AI 助手是个通才——什么都能问,但没有专门的上下文和工具。问运维问题时它不知道你的服务器架构,问量化策略时它不知道你的持仓逻辑。 分 Agent 后,每个 Agent 有自己的: 系统提示词:注入对应领域的背景知识 Skill 集合:只挂载相关的工具 独立对话历史:不会被其他任务干扰 配置示例 在 ~/.openclaw/config.yml 里定义多个 Agent: agents: - name: "ops" description: "服务器运维助手" skills: - healthcheck - ssh-tools system_prompt: | 你是专门负责管理服务器基础设施的运维助手。 你熟悉 Nginx、Docker、系统监控等运维工作。 遇到需要执行命令的任务,先解释再操作。 - name: "quant" description: "量化策略助手" skills: - binance-watcher - grafana-query system_prompt: | 你是专门负责量化策略监控的助手。 你了解趋势跟踪策略的基本逻辑,能解读持仓信号和收益数据。 不公开具体策略参数。 - name: "writer" description: "写作助手" skills: - obsidian system_prompt: | 你是博客写作助手,帮助整理思路、起草文章、整理笔记。 写作风格:直接、有观点,不废话。 在 Telegram 里通过 /agent ops 切换到对应 Agent,之后的对话都走那个 Agent 的配置。 ...

2026-04-15 · 3 min · 522 words · Panshi

Binance 合约交易风控体系:仓位管理、止损设置、熔断机制

💡 国内提示:Binance 官网在中国大陆无法直连,访问需自备网络工具;法币入金不支持银行卡,主要走 C2C(USDT↔CNY)通道完成。 合约交易里,盈利策略和亏损策略的区别,很多时候不是信号对不对,而是风控做没做。 一个好的入场信号配上差的风控,会在一次大波动里把所有收益吐回去。这篇文章专门讲合约风控的框架:你需要在哪些层次做控制,每层具体怎么设置。 三个层次的风控 层次 1:仓位管理 — 每次开多大的仓 层次 2:止损设置 — 单笔交易最多亏多少 层次 3:熔断机制 — 连续亏损后强制暂停 这三层缺一不可。仓位管理控制单次风险暴露,止损控制单笔最大损失,熔断防止在策略失效时持续亏损。 层次 1:仓位管理 固定比例法(推荐) 每次开仓金额 = 账户总权益 × 固定比例 def calc_position_size(equity: float, risk_pct: float, leverage: int, entry_price: float) -> float: """ equity: 账户总权益(USDT) risk_pct: 单次风险比例,如 0.02 = 2% leverage: 杠杆倍数 entry_price: 开仓价格 返回: 合约张数(BTCUSDT 每张 = 0.001 BTC) """ risk_amount = equity * risk_pct # 实际愿意亏的金额 notional = risk_amount * leverage # 对应名义价值 qty = notional / entry_price return qty 为什么用固定比例而不是固定金额? ...

2026-04-15 · 3 min · 633 words · Panshi

Binance API 从零到第一笔下单:完整教程

💡 国内提示:Binance 官网在中国大陆无法直连,访问需自备网络工具;法币入金不支持银行卡,主要走 C2C(USDT↔CNY)通道完成。 Binance API 是量化交易的起点。如果你想让策略自动执行——自动买入、自动止损、自动监控仓位——都需要通过 API 实现。 这篇文章从零开始,覆盖申请 API Key、安全配置、Python 环境搭建,到发出第一个查询和第一笔(测试)订单。不假设你有量化经验,跟着做能跑通。 准备工作 已完成 Binance 账号 KYC 实名认证 Python 3.8+(python --version 确认) 已完成双重验证(2FA),建议用 Google Authenticator Binance 注册:→ 注册 Binance(通过推荐链接注册可享手续费返佣) 申请 API Key 步骤 登录 Binance,点击右上角头像 → API 管理 点击"创建 API" 选择"系统生成(推荐)" 输入 API 标签(名称),点击下一步 完成 2FA 验证 保存 API Key 和 Secret Key 重要:Secret Key 只显示一次,页面关闭后无法再次查看。必须立即保存到安全位置(密码管理器)。 ...

2026-04-15 · 2 min · 423 words · Panshi

北极星策略介绍:我的 BTC 趋势跟踪量化系统

北极星是我从 2024 年底开始运行的量化策略,在 Binance 上交易 BTC/USDT 合约,属于趋势跟踪类策略。实时收益数据可以在 北极星实盘追踪 页面查看。 这篇文章介绍策略的整体逻辑、实盘运行数据和风险控制框架。 为什么选趋势跟踪 量化策略大致分两类: 均值回归:价格偏离均值时反向开仓,等它回来。适合震荡行情,在趋势行情里容易被套。 趋势跟踪:价格形成趋势时顺势开仓,跟着走。在强趋势行情里赚钱,在震荡行情里小亏。 我选趋势跟踪的原因: BTC 的趋势性强:BTC 历史上多次出现数月级别的单边趋势,比股票市场的趋势更极端,趋势跟踪策略的表现空间大。 逻辑简单、可解释:趋势跟踪的核心逻辑是"跟着市场走,不预测顶底",我能理解每一笔交易的开平仓逻辑,遇到问题好排查。 长期有效性有实证支持:CTA 基金(商品趋势跟踪基金)在全球运行了几十年,趋势跟踪作为一类策略的有效性有大量历史数据支持。 策略概况 交易标的:BTC/USDT 合约(Binance) 运行周期:小时级信号,全天候运行 方向:多空双向(可做空) 持仓风格:趋势确认后持仓,趋势反转时平仓,不设固定止盈 风控:基于波动率动态调整仓位,设置最大回撤止损线 核心思路:当趋势出现时跟进,当趋势结束时离场。不预测 BTC 会涨到多少,只判断当前是否有趋势在进行。 实盘运行数据 当前的收益数据在 北极星实盘追踪 页面实时展示,包含: 累计收益率(以 USDT 计算) 持仓方向(多/空/空仓) 每次信号的开平仓记录 最大回撤 这里放几个关键指标(以下数字会更新,以页面为准): 运行周期:从 2024 年 10 月至今,经历了 BTC 上涨到 10 万、高位震荡、回调等不同行情。 最大回撤:趋势跟踪策略在行情反复震荡时会承受回撤,这是这类策略的固有特征,不是 bug。好的年份赚的必须能覆盖坏的年份亏的。 信号频率:平均每月 4-8 次信号切换,不是高频策略。 风险控制 这是比策略参数更重要的部分。 ...

2026-04-15 · 1 min · 98 words · Panshi