开发者中心
开放 API 接入 CoinPred,支持事件合约分析、永续合约分析及其他分析数据等接口。
概述
本页说明如何通过 HTTP 调用 /api/JmsAnalysis 下的接口,支持事件合约分析、
永续合约分析及其他分析数据等接口。所有分析类接口均需在请求中携带
API Key(见下文)。周期列表接口 /intervals 无需 Key。
接口列表
| 方法 | 路径 | 说明 | 需 Key |
|---|---|---|---|
| GET POST | /api/JmsAnalysis/analyze |
事件合约分析数据 | 是 |
| GET POST | /api/JmsAnalysis/full-analyze |
永续合约分析数据 | 是 |
| GET | /api/JmsAnalysis/intervals |
支持的 K 线周期列表 | 否 |
基础地址:https://coinpred.com
/api/JmsAnalysis/analyze 事件合约分析
基础 JMS 分析,返回技术指标计算结果与规则引擎预测。
请求参数
| 参数名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| symbol | string | 交易对符号,如 BTCUSDT、ETHUSDT |
ETHUSDT |
| interval | string | K 线周期,支持:10m、30m、1h、4h |
1h |
| apiKey 必填 | string | 你的 API Key(GET 时作为 Query 参数,POST 时放在 Header) | — |
响应结构
| 字段 | 类型 | 说明 |
|---|---|---|
| success | bool | 请求是否成功 |
| symbol | string | 交易对 |
| interval | string | K 线周期 |
| timestamp | string | 分析时间(UTC) |
| currentSymbolAnalysis | object | 分析结果对象,包含技术指标、预测信号等 |
| currentSymbolAnalysis.prediction | object | 预测结果,包含 direction(方向:看涨/看跌)、confidence(置信度) |
| remainingQuota | string | 剩余分析次数("无限" 表示 VIP) |
请求示例
https://coinpred.com/api/JmsAnalysis/analyze?symbol=BTCUSDT&interval=1h&apiKey=YOUR_API_KEY
响应示例
{
"success": true,
"symbol": "BTCUSDT",
"interval": "1h",
"currentPrice": 68595.10,
"priceChangePercent": -0.776,
"currentSymbolAnalysis": {
"symbol": "BTCUSDT",
"interval": "1h",
"price": 68595.10,
"ma5": 68458.92,
"ma10": 68180.92,
"ma20": 68351.70,
"ma30": 69284.49,
"rsi": { "value": 49.85, "trend": "down", "level": "中性" },
"macd": { "dif": -218.84, "dea": -371.79, "macd": 305.89 },
"kdj": { "k": 78.24, "d": 65.55, "j": 103.62 },
"bollingerBands": { "upper": 69070.26, "middle": 68351.70, "lower": 67633.15 },
"supports": {
"support1": 68621.60, "resistance1": 68989.60,
"support2": 68379.00, "resistance2": 69115.00,
"support3": 68011.00, "resistance3": 69483.00
},
"volume": { "current": 135762437.28, "ma20": 357629519.86, "trend": "down" },
"prediction": { "direction": "up", "confidence": 0.70, "type": "combined" },
"backtest": { "winRate": 0, "totalTests": 0, "correctPredictions": 0 },
"calculatedWinRate": 13,
"indicatorReasons": ["MA5/MA10呈上升趋势", "1h级别成交量萎缩至5周期平均的70%"],
"recommendation": "建议看涨"
},
"btcAnalysis": null,
"ethAnalysis": {
"symbol": "ETHUSDT", "interval": "1h", "price": 2057.52,
"ma5": 2060.89, "ma10": 2055.30, "ma20": 2064.49, "ma30": 2103.84,
"rsi": { "value": 42.39, "trend": "down", "level": "中性" },
"macd": { "dif": -12.33, "dea": -16.01, "macd": 7.34 },
"kdj": { "k": 66.42, "d": 59.62, "j": 80.03 },
"bollingerBands": { "upper": 2089.26, "middle": 2064.49, "lower": 2039.72 },
"supports": {
"support1": 2061.50, "resistance1": 2073.18,
"support2": 2054.72, "resistance2": 2078.08,
"support3": 2043.04, "resistance3": 2089.76
},
"volume": { "current": 87342404.87, "ma20": 234253178.25, "trend": "down" },
"prediction": { "direction": "up", "confidence": 0.70, "type": "combined" },
"calculatedWinRate": 0,
"indicatorReasons": [],
"recommendation": "建议看涨"
},
"generatedAt": "2026-03-23T06:20:31.5437722Z",
"remainingQuota": "无限"
}
/api/JmsAnalysis/full-analyze 永续合约分析
完整 JMS 分析,包含机器学习模型预测、回测结果、综合分析建议。
请求参数
| 参数名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| symbol 必填 | string | 交易对符号,如 BTCUSDT |
BTCUSDT |
| interval | string | K 线周期,支持:10m、15m、30m、1h、4h、1d |
1h |
| enableBacktest | bool | 是否启用滚动窗口回测 | true |
| enableMLModel | bool | 是否启用机器学习模型预测 | true |
| windowSize | int | 滚动窗口大小(K 线根数),范围 100~500 | 300 |
| apiKey 必填 | string | 你的 API Key(POST 时放在 Header X-Api-Key) |
— |
响应结构
| 字段 | 类型 | 说明 |
|---|---|---|
| data.success | bool | 分析是否成功 |
| data.symbol | string | 交易对 |
| data.interval | string | K 线周期 |
| data.timestamp | string | 分析时间(UTC) |
| data.currentSymbolAnalysis | object | 完整分析结果(包含技术指标、规则预测、ML预测、综合预测等) |
| data.currentSymbolAnalysis.combinedPrediction | object | 综合预测(融合规则引擎 + ML 模型),含 direction、confidence、signal |
| data.currentSymbolAnalysis.technicalIndicators | object | 技术指标(MA、RSI、MACD、KDJ、布林带、枢轴点等) |
| data.currentSymbolAnalysis.backtestResult | object | 回测结果(当 enableBacktest=true 时返回),含胜率、盈亏比等 |
| data.currentSymbolAnalysis.mlPrediction | object | 机器学习模型预测结果(当 enableMLModel=true 时返回) |
| remainingQuota | string | 剩余分析次数("无限" 表示 VIP) |
请求示例
https://coinpred.com/api/JmsAnalysis/full-analyze?symbol=BTCUSDT&interval=1h&enableBacktest=true&enableMLModel=true&windowSize=300&apiKey=YOUR_API_KEY
https://coinpred.com/api/JmsAnalysis/full-analyze
{"symbol":"BTCUSDT","interval":"1h","enableBacktest":true,"enableMLModel":true,"windowSize":300}# GET 请求示例(参数通过 Query String 传递) curl "https://coinpred.com/api/JmsAnalysis/full-analyze?symbol=BTCUSDT&interval=1h&enableBacktest=true&enableMLModel=true&windowSize=300&apiKey=YOUR_API_KEY"
# POST 请求示例(参数通过 JSON Body 传递,推荐)
curl -X POST "https://coinpred.com/api/JmsAnalysis/full-analyze" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"symbol":"BTCUSDT","interval":"1h","enableBacktest":true,"enableMLModel":true,"windowSize":300}'
import requests
API_KEY = "YOUR_API_KEY"
# GET 请求示例
r = requests.get(
"https://coinpred.com/api/JmsAnalysis/full-analyze",
params={
"symbol": "BTCUSDT",
"interval": "1h",
"enableBacktest": True,
"enableMLModel": True,
"windowSize": 300,
"apiKey": API_KEY
},
timeout=300,
)
print(r.json())
# POST 请求示例(推荐)
r2 = requests.post(
"https://coinpred.com/api/JmsAnalysis/full-analyze",
headers={"X-Api-Key": API_KEY, "Content-Type": "application/json"},
json={
"symbol": "BTCUSDT",
"interval": "1h",
"enableBacktest": True,
"enableMLModel": True,
"windowSize": 300,
},
timeout=300,
)
print(r2.json())
var client = new HttpClient();
// GET 请求示例
var getParams = "symbol=BTCUSDT&interval=1h&enableBacktest=true&enableMLModel=true&windowSize=300&apiKey=YOUR_API_KEY";
var getUrl = $"https://coinpred.com/api/JmsAnalysis/full-analyze?{getParams}";
var getRes = await client.GetStringAsync(getUrl);
Console.WriteLine(getRes);
// POST 请求示例(推荐)
client.DefaultRequestHeaders.Add("X-Api-Key", "YOUR_API_KEY");
var body = new {
symbol = "BTCUSDT",
interval = "1h",
enableBacktest = true,
enableMLModel = true,
windowSize = 300
};
var json = JsonSerializer.Serialize(body);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var postRes = await client.PostAsync("https://coinpred.com/api/JmsAnalysis/full-analyze", content);
Console.WriteLine(await postRes.Content.ReadAsStringAsync());
响应示例
{
"data": {
"symbol": "BTCUSDT",
"interval": "1h",
"currentPrice": 68426.60,
"priceChangePercent": -1.077,
"volume24h": 132599.10,
"quoteVolume24h": 9059338884.84,
"currentSymbolAnalysis": {
"symbol": "BTCUSDT",
"interval": "1h",
"price": 68426.60,
"indicators": {
"ma5": 68427.30, "ma10": 68165.11, "ma20": 68343.80, "ma50": 69281.33, "ma200": 71376.50,
"maTrend": "up",
"rsi6": 53.04, "rsi12": 48.77, "rsi14": 47.68, "rsi24": 44.70,
"rsiLevel": "中性", "rsiTrend": "down",
"macdDif": -231.46, "macdDea": -373.19, "macdValue": 283.47, "macdTrend": "strongUp",
"kdjK": 74.66, "kdjD": 64.36, "kdjJ": 95.27, "kdjCross": "above",
"bollUpper": 69054.77, "bollMiddle": 68343.80, "bollLower": 67632.83,
"bollBandwidth": 2.08, "bollPercentB": 56.79,
"pivotPoints": {
"r3": 69483, "r2": 69115, "r1": 68989.60,
"s1": 68621.60, "s2": 68379, "s3": 68011, "pp": 68747
},
"volume": 230569271.36, "volumeMa5": 376590886.67, "volumeTrend": "down"
},
"rulePrediction": {
"direction": "up", "confidence": 70,
"reasons": [
"MA5(68427.300000) > MA10(68165.110000) - 短期趋势向上",
"RSI14(47.68) < 50 - 处于弱势区域",
"MACD(283.467462) > 0 - 多头信号",
"K(74.66) > D(64.36) - 短期看涨信号",
"1小时周期 - 标准信号权重"
],
"score": 40,
"periodWeight": "1小时周期 - 标准信号权重"
},
"mlPrediction": null,
"combinedPrediction": {
"direction": "up", "confidence": 70, "confidenceLevel": "中",
"reasons": ["规则引擎预测轻微看涨↑"]
},
"positionRecommendation": {
"direction": "做多",
"entryPrice": 68289.75, "takeProfit": 70365.95, "stopLoss": 67251.65,
"takeProfitPercent": 3.04, "stopLossPercent": 1.52
},
"indicatorReasons": ["MA5/MA10呈上升趋势", "1h级别成交量萎缩至5周期平均的70%"],
"recommendation": "建议看涨"
},
"btcAnalysis": null,
"ethAnalysis": {
"symbol": "ETHUSDT", "interval": "1h", "price": 2054.19,
"indicators": {
"ma5": 2060.22, "ma10": 2054.96, "ma20": 2064.32, "ma50": 2103.77, "ma200": 2183.03,
"maTrend": "up",
"rsi6": 44.19, "rsi12": 41.84, "rsi14": 41.23, "rsi24": 40.04,
"rsiLevel": "中性", "rsiTrend": "down",
"macdDif": -12.60, "macdDea": -16.04, "macdValue": 6.87, "macdTrend": "strongUp",
"kdjK": 63.87, "kdjD": 58.77, "kdjJ": 74.07, "kdjCross": "above",
"bollUpper": 2089.32, "bollMiddle": 2064.32, "bollLower": 2039.32,
"bollBandwidth": 2.42, "bollPercentB": 29.74,
"pivotPoints": {
"r3": 2089.76, "r2": 2078.08, "r1": 2073.18,
"s1": 2061.50, "s2": 2054.72, "s3": 2043.04, "pp": 2066.40
},
"volume": 154589829.25, "volumeMa5": 247702663.12, "volumeTrend": "down"
},
"rulePrediction": {
"direction": "up", "confidence": 70,
"reasons": [
"MA5(2060.218000) > MA10(2054.963000) - 短期趋势向上",
"RSI14(41.23) < 50 - 处于弱势区域",
"MACD(6.870172) > 0 - 多头信号",
"K(63.87) > D(58.77) - 短期看涨信号",
"1小时周期 - 标准信号权重"
],
"score": 40,
"periodWeight": "1小时周期 - 标准信号权重"
},
"mlPrediction": null,
"combinedPrediction": {
"direction": "up", "confidence": 70, "confidenceLevel": "中",
"reasons": ["规则引擎预测轻微看涨↑"]
},
"positionRecommendation": {
"direction": "做多",
"entryPrice": 2050.08, "takeProfit": 2115.91, "stopLoss": 2017.17,
"takeProfitPercent": 3.21, "stopLossPercent": 1.61
},
"indicatorReasons": ["MA5/MA10呈上升趋势", "1h级别成交量萎缩至5周期平均的70%"],
"recommendation": "建议看涨"
},
"backtest": {
"winRate": 0, "totalTests": 0, "correctPredictions": 0,
"dataPoints": 0, "windowSize": 300, "modelReady": false, "featureWeights": []
},
"modelInfo": {
"isTrained": false,
"lastUpdated": "2026-03-23T06:33:08.5721622Z",
"totalWeight": 0, "bias": 0, "learningRate": 0.01, "trainingDataCount": 0
},
"generatedAt": "2026-03-23T06:33:07.9187981Z",
"tradingAdvice": "综合建议: 看涨↑ (中置信度)\n\n模型回测准确率: 6.00%\n当前价格: $68426.600000\n\n推荐操作: 做多\n 入场点位: $68289.746800\n 止损点位: $67251.646786\n 止盈点位: $70365.946828\n\n主要依据:\n 规则引擎预测轻微看涨↑\n\n技术指标详情:\n MA5/MA10: 68427.300000/68165.110000\n RSI14: 47.68 (中性)\n MACD: 283.467462\n KDJ: K74.66 D64.36\n\n风险提示: 任何预测都有不确定性,请结合其他指标和风险管理策略",
"remainingQuota": "无限"
}
}
/api/JmsAnalysis/intervals 支持的 K 线周期
获取系统支持的所有 K 线周期列表。无需 API Key。
请求示例
https://coinpred.com/api/JmsAnalysis/intervals
响应示例
{
"success": true,
"intervals": [
{ "value": "10m", "label": "10分钟", "description": "适合短期日内交易" },
{ "value": "30m", "label": "30分钟", "description": "适合短线交易" },
{ "value": "1h", "label": "1小时", "description": "适合中线交易(推荐)" },
{ "value": "4h", "label": "4小时", "description": "适合波段交易" },
{ "value": "1d", "label": "1天", "description": "适合长线投资" }
],
"recommended": "1h",
"message": "推荐使用1h周期进行综合分析"
}
创建 API Key
每个账号在「我的」页面可创建 一个 API Key。创建后请妥善保管,切勿泄露。
前往「我的」创建 API Key认证方式
- POST:在请求头中携带
X-Api-Key: 你的密钥 - GET:作为查询参数
apiKey=你的密钥(POST 推荐 Header)
https://coinpred.com/api/JmsAnalysis/analyze?symbol=ETHUSDT&interval=1h&apiKey=YOUR_API_KEY
次数与配额
调用成功返回分析结果后,系统会按账号逻辑扣减分析次数(与站内「领取分析次数」一致):
VIP 在有效期内不扣次数;非 VIP 使用 LicenseNum。
次数不足时将返回错误提示,请先在站内领取或开通会员。
快速上手
选择语言查看调用示例。将 YOUR_API_KEY 替换为你在「我的」中创建的 API Key。
# 基础分析 GET
curl -s "https://coinpred.com/api/JmsAnalysis/analyze?symbol=BTCUSDT&interval=1h&apiKey=YOUR_API_KEY"
# 完整分析 POST
curl -X POST "https://coinpred.com/api/JmsAnalysis/full-analyze" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"symbol":"BTCUSDT","interval":"1h","enableBacktest":true,"enableMLModel":true,"windowSize":300}'
import requests
BASE = "https://coinpred.com"
API_KEY = "YOUR_API_KEY"
# GET 基础分析
r = requests.get(
f"{BASE}/api/JmsAnalysis/analyze",
params={"symbol": "ETHUSDT", "interval": "1h", "apiKey": API_KEY},
timeout=120,
)
print(r.status_code, r.json())
# POST 完整分析(推荐 Header 传 Key)
r2 = requests.post(
f"{BASE}/api/JmsAnalysis/full-analyze",
headers={"X-Api-Key": API_KEY, "Content-Type": "application/json"},
json={
"symbol": "BTCUSDT",
"interval": "1h",
"enableBacktest": True,
"enableMLModel": True,
"windowSize": 300,
},
timeout=300,
)
print(r2.status_code, r2.json())
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
const string BaseUrl = "https://coinpred.com";
const string ApiKey = "YOUR_API_KEY";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-Api-Key", ApiKey);
// GET 基础分析
var getUrl = $"{BaseUrl}/api/JmsAnalysis/analyze?symbol=ETHUSDT&interval=1h&apiKey={Uri.EscapeDataString(ApiKey)}";
var getRes = await client.GetStringAsync(getUrl);
Console.WriteLine(getRes);
// POST 完整分析
var body = JsonSerializer.Serialize(new {
symbol = "BTCUSDT",
interval = "1h",
enableBacktest = true,
enableMLModel = true,
windowSize = 300
});
var content = new StringContent(body, Encoding.UTF8, "application/json");
var postRes = await client.PostAsync($"{BaseUrl}/api/JmsAnalysis/full-analyze", content);
Console.WriteLine(await postRes.Content.ReadAsStringAsync());
const BASE = 'https://coinpred.com';
const API_KEY = 'YOUR_API_KEY';
// 浏览器 fetch(GET + query)
fetch(`${BASE}/api/JmsAnalysis/analyze?symbol=ETHUSDT&interval=1h&apiKey=${encodeURIComponent(API_KEY)}`)
.then(r => r.json())
.then(console.log)
.catch(console.error);
// Node / 需带 Header 的 POST
// fetch(`${BASE}/api/JmsAnalysis/full-analyze`, {
// method: 'POST',
// headers: { 'X-Api-Key': API_KEY, 'Content-Type': 'application/json' },
// body: JSON.stringify({ symbol: 'BTCUSDT', interval: '1h', enableBacktest: true, enableMLModel: true, windowSize: 300 })
// });
<?php
$base = 'https://coinpred.com';
$key = 'YOUR_API_KEY';
// GET
$url = $base . '/api/JmsAnalysis/analyze?' . http_build_query([
'symbol' => 'ETHUSDT',
'interval' => '1h',
'apiKey' => $key,
]);
echo file_get_contents($url);
// POST(需 curl 扩展)
$ch = curl_init($base . '/api/JmsAnalysis/full-analyze');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['X-Api-Key: ' . $key, 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'symbol' => 'BTCUSDT',
'interval' => '1h',
'enableBacktest' => true,
'enableMLModel' => true,
'windowSize' => 300,
]),
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);
常见错误
| 情况 | 说明 |
|---|---|
| 401 / Key 无效 | 未携带 Key、Key 错误或已禁用。请前往「我的」创建或检查 API Key。 |
| 400 / 次数不足 | 账号分析次数已用完,请在站内领取或开通会员后再调用。 |
| 400 / 参数错误 | Symbol 必填或 interval 不在支持列表中。 |