⚠️ 註冊門檻:Pionex 不支援中國大陸身份證透過 KYC,需持有臺灣 / 新加坡 / 馬來西亞 / 美國等地有效證件。參考 Pionex 受限地區官方說明。

Pionex 網格機器人跑了 4 個月,最大的痛點是到達區間邊沿時沒有預警。價格上穿 / 下穿區間機器人會自動停,但你不知道什麼時候需要手動干預(重配區間或暫停)。
解決方法:寫一個小指令碼監控價格,到達邊沿前預警。我用 Claude Code 從零寫到跑起來花了 25 分鐘,把過程和最終程式碼都放出來。
為什麼要 Claude Code 寫
比起自己從頭想:
- 我不熟悉 Pionex API(Claude 查文件比我快)
- Telegram Bot API 我記不住細節(Claude 會直接出正確程式碼)
- 我傾向於過度設計,Claude 會給"最小可用"版本
- 除錯環節 Claude 看報錯直接改
整個過程就是對 Claude 說人話,它輸出程式碼 + 解釋。
需求定義(我給 Claude 的)
寫一個 Python 指令碼:
1. 每 5 分鐘查 BTC/USDT 和 XAU/USDT 的當前價格
2. 如果價格接近預設區間的上沿或下沿(10% 以內),推送 Telegram
3. 推送內容含:當前價、區間、距離邊沿百分比
4. 配置放在環境變數:TG_TOKEN, TG_CHAT_ID, BOT_CONFIGS
5. BOT_CONFIGS 是 JSON,格式:
[
{"symbol": "BTC/USDT", "low": 60000, "high": 70000, "name": "BTC 網格"},
{"symbol": "XAU/USDT", "low": 3400, "high": 3600, "name": "黃金網格"}
]
6. 用 Binance 公開 API 查價格(Pionex 用的價格源和 Binance 一致)
7. 部署到 Mac,用 launchd 每 5 分鐘跑
Claude 輸出的程式碼(幾乎一稿過)
檔案 1:pionex_monitor.py
import os, json, urllib.request, time
from datetime import datetime
TG_TOKEN = os.environ["TG_TOKEN"]
TG_CHAT_ID = os.environ["TG_CHAT_ID"]
BOT_CONFIGS = json.loads(os.environ.get("BOT_CONFIGS", "[]"))
# 閾值:距離邊沿 10% 觸發預警
ALERT_THRESHOLD = 0.10
def get_price(symbol):
"""symbol 格式 'BTC/USDT' → Binance API 'BTCUSDT'"""
s = symbol.replace("/", "")
url = f"https://api.binance.com/api/v3/ticker/price?symbol={s}"
with urllib.request.urlopen(url, timeout=10) as r:
return float(json.loads(r.read())["price"])
def send_tg(text):
"""Telegram Bot 推送"""
url = f"https://api.telegram.org/bot{TG_TOKEN}/sendMessage"
data = json.dumps({"chat_id": TG_CHAT_ID, "text": text}).encode()
req = urllib.request.Request(url, data=data,
headers={"Content-Type": "application/json"})
try: urllib.request.urlopen(req, timeout=5)
except Exception as e: print(f"TG send failed: {e}")
def check_bot(bot):
symbol = bot["symbol"]
low, high = bot["low"], bot["high"]
name = bot["name"]
try: price = get_price(symbol)
except Exception as e:
print(f"{symbol}: get price fail: {e}")
return
# 距離上沿的百分比
dist_to_high = (high - price) / price
dist_to_low = (price - low) / price
# 判斷是否接近邊沿
if dist_to_high < ALERT_THRESHOLD and dist_to_high > 0:
pct = dist_to_high * 100
send_tg(f"🟡 {name} 接近上沿\n當前: ${price:,.2f}\n上沿: ${high:,.2f}\n距離: {pct:.2f}%")
elif dist_to_low < ALERT_THRESHOLD and dist_to_low > 0:
pct = dist_to_low * 100
send_tg(f"🟡 {name} 接近下沿\n當前: ${price:,.2f}\n下沿: ${low:,.2f}\n距離: {pct:.2f}%")
elif price >= high:
send_tg(f"🔴 {name} 已穿越上沿!\n當前: ${price:,.2f}\n上沿: ${high:,.2f}\n機器人可能已停,建議檢查")
elif price <= low:
send_tg(f"🔴 {name} 已跌破下沿!\n當前: ${price:,.2f}\n下沿: ${low:,.2f}\n建議手動平倉或擴大區間")
if __name__ == "__main__":
for bot in BOT_CONFIGS:
check_bot(bot)
只有 40 行。
怎麼部署(Mac 本機)
1. 儲存為 ~/scripts/pionex_monitor.py
2. 建 Telegram Bot:找 @BotFather 發 /newbot → 拿到 Token
3. 拿 Chat ID:自己的 Bot 發訊息後訪問
https://api.telegram.org/bot<TOKEN>/getUpdates
JSON 裡的 chat.id。
4. LaunchAgent:~/Library/LaunchAgents/com.as.pionex-monitor.plist
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>Label</key><string>com.as.pionex-monitor</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/YOU/scripts/pionex_monitor.py</string>
</array>
<key>StartInterval</key><integer>300</integer>
<key>EnvironmentVariables</key>
<dict>
<key>TG_TOKEN</key><string>YOUR_TOKEN</string>
<key>TG_CHAT_ID</key><string>YOUR_CHAT_ID</string>
<key>BOT_CONFIGS</key><string>[{"symbol":"BTC/USDT","low":60000,"high":70000,"name":"BTC 網格"}]</string>
</dict>
<key>StandardOutPath</key><string>/tmp/pionex_monitor.log</string>
<key>StandardErrorPath</key><string>/tmp/pionex_monitor.log</string>
</dict>
</plist>
5. 載入:
launchctl load ~/Library/LaunchAgents/com.as.pionex-monitor.plist
每 5 分鐘自動跑一次。
加強版(Claude 二輪補充)
一稿跑通後我讓 Claude 加了這些:
去重:同一警報 2 小時內不重複推
def should_alert(key, window_sec=7200):
"""用 /tmp 裡的 marker 檔案去重"""
import os
marker = f"/tmp/.pionex_alert_{key}"
if os.path.isfile(marker) and time.time() - os.path.getmtime(marker) < window_sec:
return False
open(marker, "w").close()
return True
每日摘要:每天早 8 點無條件發一條當前價格的報告
擴充套件監控項:除了價格,也監控 Pionex 賬戶總餘額變化(需要 Pionex API key)
Claude Code 寫這東西的節奏
從需求到部署的實際對話:
- 我:需求描述(上面那段)
- Claude:給出第一版程式碼 + 解釋
- 我:跑一下 → 報錯"KeyError: ‘price’"
- Claude:分析 API 返回 + 修正
- 我:再跑 → TG 推送訊息一直重複
- Claude:加去重機制
- 我:換 launchd 部署,plist 格式問個問題
- Claude:給出完整 plist + 驗證命令
- 我:launchctl load 報錯
- Claude:一眼看出 PATH 問題,給
EnvironmentVariables補 PATH
典型情況下 20-40 分鐘可以從需求到部署跑起來,主要工作是對著 Claude 描述、試跑、反饋報錯,不用自己從零寫程式碼。
類似的量化小工具思路
用 Claude Code 寫這種量化輔助指令碼的場景:
| 指令碼用途 | 典型程式碼量 |
|---|---|
| 監控資金費率 > 某閾值時推送(套利機會) | 50 行 |
| 對比 Pionex 賬戶浮盈 vs Grafana 記錄 | 80 行 |
| 檢查所有開倉是否有止損,沒設則警報 | 35 行 |
| 每天彙總 AFF 點選(接 CF Worker API) | 40 行 |
典型都在 50 行以下,用 Claude Code 半小時就能搞定。
為什麼選 Claude Code 做這類
替代選項:
- ChatGPT 網頁版:每次複製貼上程式碼太累
- Cursor:好用但要訂閱且偶爾改檔案不太細
- Copilot:補全型,不擅長從頭設計
- Claude Code:直接在終端裡讓它改你本地檔案,改完跑測試反饋給它
如果你在 Mac 上做量化 / 運維,強烈推薦。
→ Claude Code 省錢指南 · Claude 雙通道切換
組合起來的價值
現在我的 Pionex 監控 + 實盤資料 + 期現套利 三個策略分別跑,出現邊沿時 Telegram 2 秒內收到。
使用起來典型效果:
- 每週通常會觸發 2-3 次預警,其中 1-2 次值得手動干預(上穿或下破前及時調整)
- 一次正確的"上穿前手動止盈"能幫你多賺一些浮盈(幾美金到幾十美金不等,取決於倉位)
- 跟完全不監控相比,淨 APY 通常能高 3-5 個百分點(取決於行情波動和你的響應速度)
工具不是最賺錢的那個,降低情緒干預 = 讓你紀律更強 = 長期複利。
總結
- 用 Claude Code 寫量化監控,30 分鐘就能跑起來
- 程式碼量 40 行
- 關鍵是"需求定義清楚",不是寫程式碼技巧
- 長期 APY 提升 3-5% 看似不多但複利驚人
延伸閱讀: