Cookbook
API Cookbook
实用即用型代码示例,展示如何将Smart Money交易确认API集成至机器人。每个示例都调用 GET /v1/confirm 并对 action, confidence进行操作 size_multiplier。发送您的密钥至 X-API-Key 页眉 — 查看 完整文档.
配方1
入场前确认(Python)
经典循环。在您的策略开仓之前,询问API市场结构是否一致。只有当 action == "CONFIRM".
Python
import requests
API_KEY = sm_your_key
BASE = https://api.smartmoneyapi.com/v1
def confirm(symbol, direction):
r = requests.get({BASE}/confirm,
params={"symbol": symbol, "direction": direction},"X-API-Key"API_KEY}, timeout=5, ) r.raise_for_status()
return r.json() sig = confirm(BTC, 做多)
如果 信号[操作] == 确认:
下单(BTC, 做多) # 您的执行
否则:
打印(跳过:, 信号[原因])
Response
{
symbol: BTC,
direction: long,
action: CONFIRM,
confidence: HIGH,
composite: 0.74,
size_mult: 1.5,
reasons: [Funding positive across venues, Whales 67% long]
}
Recipe 2
Gate a Freqtrade signal
Override confirm_trade_entry so Freqtrade only takes entries the API confirms. Fail open on API errors so a timeout never blocks all trading.
Python — Freqtrade
import requests
from freqtrade.strategy import IStrategy
class SmartMoneyStrategy(IStrategy):
SM_KEY = "sm_your_key"
SM_BASE = "https://api.smartmoneyapi.com/v1"
def confirm_trade_entry(self, pair, order_type, amount, rate,
time_in_force, current_time, entry_tag, **kwargs):
symbol = pair.split("/")[0]
if symbol not in ("BTC", "ETH", "SOL"):
return True
尝试: r = requests.({self.SM_BASE}/confirm,"symbol": symbol, "direction": "long"},
headers={X-API-Key: self.SM_KEY},
timeout=3,
).json()
return r.get("action") == "CONFIRM"
except Exception:
return True # API 错误时默认通过
策略 3
根据 size_multiplier 调整规模
让信念决定仓位大小。将你的基础规模乘以 size_mult (0.0–1.5),以便高信心的交易获得更多资金,低信心的交易获得更少资金。
Python
BASE_SIZE_USD = 1000
sig = 确认("ETH", "long")
mult = sig.获取("size_mult", 0.0仓位大小 = 基础美元规模 * 倍数
如果 数量 > 0:
下单(ETH, 多头, size_usd=size)
print(f已入场 ${size:.0f}(倍数 {mult}))
A
size_mult 0.0 表示不进场——与跳过(SKIP)结果相同。任何低于您自身底线的数值均视为跳过。
方案 4
遇到 SKIP 时跳过 / 遇到 REDUCE 时减仓
明确处理所有三种操作:CONFIRM 以全仓入场,REDUCE 按(较小)乘数入场,SKIP 保持观望。
Python
sig = confirm(symbol, direction)
action = sig["action"]
如果 action == "CONFIRM":
place_order(symbol, direction, BASE_SIZE_USD * sig["size_mult"])
elif action == "REDUCE":
# structure is mixed — enter smaller, tighten stop
place_order(symbol, direction, BASE_SIZE_USD * sig["size_mult"])
else: # SKIP
log(f"skip {symbol} {direction}: {sig['reasons']}")
策略5
处理402/429错误
A 402 表示该交易对或接口需要更高级的套餐; 429 表示触发了速率限制。将429/5xx视为临时错误(延迟重试),将402/401/403视为终止错误(需升级套餐或检查API密钥)。
Python
import time, requests
def confirm_safe(symbol, direction, retries=3):
for attempt in range(重试):get(f"{BASE}/confirm",{"symbol" 方向: direction},X-API-Key: API_KEY},5,
)
if r.status_code == 200:
return r.json()
如果 r.status_code 在 (401, 402, 403):
抛出 RuntimeError(r.json()) # 终端:修复密钥/计划
如果 r.status_code == 429: reset =int(r.headers.(get, 2))时间。(睡眠分钟 2 (重置,
** 尝试))
继续时间。(2 睡眠 ** 尝试)
# 5xx / 临时性错误
返回 None
方案6
与编码代理配合使用 /llms.txt 将机器可读的参考资料交给Claude Code、Codex或Cursor,让它完成集成。引导它查看概述和OpenAPI规范以获取确切的数据结构。
提示
# 粘贴到 Claude Code / Cursor / Codex
阅读 https://smartmoneyapi.com/llms.txt 和 OpenAPI 规范位于 github.com/tashiardit/smartmoneyapi-docs,然后为我的机器人添加交易前检查:使用我的 X-API-Key 调用 GET /v1/confirm,并跳过任何 action != "CONFIRM" 的条目。根据 size_multiplier 调整交易规模。
资源: /llms.txt · OpenAPI 规范 · Python 客户端.
决策支持,非执行建议。非财务建议。加密货币交易存在重大损失风险。