量化策略止損引數研究方法論:如何用歷史資料找到最優止損距離

止損距離是量化策略裡最難確定的引數之一。太緊頻繁被掃止損,太鬆單次虧損超預期。 憑直覺設引數沒有說服力。更可靠的方法是:用歷史資料系統地研究不同止損距離對策略表現的影響,找到在多個評估維度上表現均衡的引數區間。 這篇文章講這個研究過程的方法論,包括資料準備、引數搜尋、評估指標、以及防止過擬合的注意事項。 研究框架 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 · 磐石

量化工具棧: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 · 磐石

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 · 磐石

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 · 磐石

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 · 磐石

北極星策略介紹:我的 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 · 磐石