主题切换中...

开发者中心

开放 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 交易对符号,如 BTCUSDTETHUSDT ETHUSDT
interval string K 线周期,支持:10m30m1h4h 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)

请求示例

GET 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 线周期,支持:10m15m30m1h4h1d 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 模型),含 directionconfidencesignal
data.currentSymbolAnalysis.technicalIndicators object 技术指标(MA、RSI、MACD、KDJ、布林带、枢轴点等)
data.currentSymbolAnalysis.backtestResult object 回测结果(当 enableBacktest=true 时返回),含胜率、盈亏比等
data.currentSymbolAnalysis.mlPrediction object 机器学习模型预测结果(当 enableMLModel=true 时返回)
remainingQuota string 剩余分析次数("无限" 表示 VIP)

请求示例

GET https://coinpred.com/api/JmsAnalysis/full-analyze?symbol=BTCUSDT&interval=1h&enableBacktest=true&enableMLModel=true&windowSize=300&apiKey=YOUR_API_KEY
POST https://coinpred.com/api/JmsAnalysis/full-analyze
Body: {"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。

请求示例

GET 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)
GET 示例:https://coinpred.com/api/JmsAnalysis/analyze?symbol=ETHUSDT&interval=1h&apiKey=YOUR_API_KEY

次数与配额

调用成功返回分析结果后,系统会按账号逻辑扣减分析次数(与站内「领取分析次数」一致): VIP 在有效期内不扣次数;非 VIP 使用 LicenseNum。 次数不足时将返回错误提示,请先在站内领取或开通会员

快速上手

选择语言查看调用示例。将 YOUR_API_KEY 替换为你在「我的」中创建的 API Key。

认证: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 不在支持列表中。