您现在的位置是: 首页 >  案例

OKX API掘金指南:零代码玩转自动化交易?

时间:2025-03-08 13:11:18 分类:案例 浏览:49

欧意(OKX)API 接口使用指南

简介

欧意(OKX,原HTX)交易所提供了一套功能强大的应用程序编程接口(API),赋能开发者以编程方式全面访问交易所的各项数据和功能。借助欧意API,用户能够实现交易流程的自动化、实时抓取市场行情数据、高效管理账户资产、便捷执行策略性订单,以及深度整合定制化的交易解决方案。

欧意API的核心优势在于其全面的功能覆盖和灵活的可定制性。开发者可以通过API实时获取包括交易对最新价格、成交量、深度图等关键市场信息,为量化交易和策略回测提供坚实的数据基础。同时,API支持包括现货、合约、期权在内的多种交易类型,满足不同用户的交易需求。API还提供了账户管理、资金划转、风险控制等一系列接口,方便用户对账户进行全方位的管理和监控。

在使用欧意API之前,开发者需要理解API的基本概念,例如RESTful API的工作原理、HTTP请求方法(GET、POST、PUT、DELETE)以及JSON数据格式。同时,安全性是API使用的重中之重,因此必须掌握欧意API的身份验证机制,包括API密钥的申请和使用、签名算法的实现以及访问权限的管理,确保交易的安全性和账户的隐私性。

本文将深入剖析欧意API的基本概念、详细阐述身份验证的具体方法、系统梳理常用接口的功能和参数,并提供详尽的使用示例,旨在帮助开发者快速掌握欧意API的使用技巧,高效开发出稳定可靠的交易应用程序。同时,本文还将涵盖API使用过程中常见问题的解决方案,以及最佳实践建议,助力开发者规避潜在风险,提升开发效率。

通过本文的学习,开发者将能够充分利用欧意API的强大功能,构建个性化的交易系统,提升交易效率和盈利能力。无论您是量化交易爱好者、专业交易员还是金融科技开发者,掌握欧意API都将为您的交易之路打开新的篇章。

API 概览

欧易(OKX)API 提供了一系列强大的接口,方便开发者构建自动化的交易策略、数据分析工具和自定义的交易应用。这些 API 覆盖了平台上的各种交易类型和账户管理功能,旨在为用户提供灵活、高效的访问方式。

  • 现货 API : 现货 API 允许用户执行现货交易操作,例如提交买单或卖单、取消挂单、查询订单状态和历史成交记录。更高级的功能包括市价单、限价单、止损单等多种订单类型,以及批量下单和撤单等优化操作。通过现货 API,开发者可以实现自动化交易机器人、程序化交易策略和量化交易模型。
  • 合约 API : 合约 API 专注于永续合约和交割合约的交易。它提供了开仓(建立多头或空头头寸)、平仓(结束现有头寸)、设置止盈止损、调整保证金、查询持仓信息等功能。合约 API 对于高频交易者和风险对冲者至关重要,他们可以利用这些 API 实现复杂的风险管理策略和套利机会。合约 API 还支持不同的杠杆倍数和保证金模式。
  • 期权 API : 期权 API 专为期权交易设计,允许用户买入或卖出看涨期权和看跌期权。通过期权 API,用户可以执行各种期权策略,例如保护性看跌、备兑看涨、跨式和宽跨式策略。API 提供了查询期权链、计算期权定价模型、执行期权结算等功能。
  • 资金 API : 资金 API 用于管理用户的账户资金。它支持充值(将资金转入交易所)、提现(将资金转出交易所)、查询账户余额、查询交易历史记录、划转资金(在不同账户之间转移资金)等操作。资金 API 对于管理多个账户和自动化资金调拨非常有用。安全性是资金 API 的首要考虑因素,所有操作都必须经过严格的身份验证和授权。
  • 市场数据 API : 市场数据 API 提供实时的市场数据,包括行情(最新成交价、买一价、卖一价)、深度(买单和卖单的挂单量)、K 线(一段时间内的开盘价、最高价、最低价、收盘价和成交量)等。这些数据对于技术分析、趋势预测和算法交易至关重要。市场数据 API 通常支持不同的数据频率和聚合级别,以满足不同用户的需求。还提供历史市场数据查询功能。

欧易 API 采用 RESTful 架构风格,这意味着它使用标准的 HTTP 方法(例如 GET、POST、PUT、DELETE)来表示不同的操作。所有 API 请求都通过 HTTPS 协议进行加密,以确保数据的安全性。返回的数据格式通常为 JSON(JavaScript Object Notation),这是一种轻量级的数据交换格式,易于解析和处理。开发者可以使用各种编程语言(例如 Python、Java、JavaScript)和工具包来与 API 进行交互。详细的 API 文档和示例代码可在欧易官方网站上找到。

身份验证

使用欧意API进行交易或访问受保护的资源时,身份验证是必不可少的步骤。 欧意交易所采用一套安全可靠的身份验证机制,主要依赖于三个关键元素:API Key(API密钥)、Secret Key(私钥)和Passphrase(口令)。理解并正确使用这三个元素对于成功地与欧意API进行交互至关重要。

  • API Key(API密钥) : 相当于用户的公开身份标识。每个API Key都与一个特定的欧意账户关联,用于告知欧意服务器请求的来源。可以将其视为用户名,在发送API请求时必须包含此密钥。
  • Secret Key(私钥) : 是与API Key配对的私有密钥,用于对API请求进行数字签名。这个密钥必须严格保密,绝不能泄露给任何第三方。私钥用于验证请求的真实性和完整性,防止恶意篡改。
  • Passphrase(口令) : 这是一个可选的安全层,类似于账户密码,为API Key添加额外的保护。 如果您在创建API Key时设置了Passphrase,那么在所有API请求中都必须包含它,否则请求将被拒绝。

API Key、Secret Key和Passphrase的组合,为欧意API提供了一套多层次的安全保障体系。您需要在欧意交易所的账户设置页面中创建API Key,并务必安全地存储这三个凭证。请特别强调,Secret Key是极其敏感的信息,泄露将导致严重的资金安全风险。采取必要的安全措施来保护您的Secret Key,例如使用安全的密码管理器,并定期更换API Key。

与欧意API进行身份验证的基本步骤如下:

  1. 构造请求头部信息 : 这是构建经过身份验证的API请求的第一步。 需要创建包含身份验证信息的HTTP头部。
  2. 计算签名 : 使用Secret Key对请求进行签名,确保请求的完整性和真实性。签名是对请求内容(包括时间戳、HTTP方法、请求路径和请求体)进行哈希运算的结果,使用Secret Key进行加密。
  3. 将签名添加到请求头部 : 将计算出的签名添加到请求头部,与API Key、时间戳和Passphrase一起发送到欧意服务器。欧意服务器使用这些信息验证请求的身份。

以下Python代码示例展示了如何计算签名,这是身份验证过程中的核心环节:

import hashlib
import hmac
import base64
import time

api_key = "YOUR_API_KEY"
secret_key = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"

def generate_signature(timestamp, method, request_path, body):
"""
生成签名
"""
message = timestamp + method + request_path + body
mac = hmac.new(secret_key.encode('utf-8'), message.encode('utf-8'), hashlib.sha256)
d = mac.digest()
return base64.b64encode(d).decode()

timestamp = str(int(time.time())) # 获取当前时间戳
method = "GET" # 请求方法,例如 GET, POST, PUT, DELETE
request_path = "/api/v5/account/balance" # 请求路径
body = "" # 如果是POST请求,需要提供请求体

signature = generate_signature(timestamp, method, request_path, body)

headers = {
"OK-ACCESS-KEY": api_key,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": passphrase,
"Content-Type": "application/"
}

print(headers)

上述代码片段演示了如何使用Python的 hmac hashlib 库生成符合欧意API要求的签名。请注意以下关键点:

  • 时间戳 :时间戳必须是当前时间,以秒为单位的 Unix 时间戳。时间戳的准确性非常重要,如果服务器接收到的请求时间戳与当前时间相差过大,请求将被拒绝。
  • HTTP 方法 :准确指定API请求使用的HTTP方法(例如GET、POST、PUT、DELETE)。
  • 请求路径 :请求路径是指API端点的相对路径,例如"/api/v5/account/balance"。
  • 请求体 :对于POST、PUT等需要发送数据的请求,请求体包含了要发送的数据。如果请求体为空,则传入空字符串""。
  • Content-Type :根据API接口的要求设置,常用的有"application/" 和 "application/x-www-form-urlencoded"。

代码示例中的 YOUR_API_KEY YOUR_SECRET_KEY YOUR_PASSPHRASE 是占位符,您需要替换为您在欧意交易所账户中实际创建的API Key、Secret Key和Passphrase。 务必根据您要调用的具体API接口,修改 request_path body 变量。 例如, 如果你需要使用POST方法来提交数据,必须确保在body中包含JSON格式的请求数据,并将 Content-Type 设置为 application/ 。 仔细阅读欧意API的官方文档,了解每个API接口的参数要求和返回值格式。

常用接口

以下是一些常用的欧易(OKX) API接口,可用于进行账户管理、交易和市场数据查询:

  • /api/v5/account/balance : 获取账户余额。此接口允许您查询您在欧易交易所各种账户(例如,资金账户、交易账户)中的可用资金和总资产。您可以通过指定不同的账户类型来获取特定账户的余额信息。接口返回的数据包含不同币种的余额和冻结金额等详细信息。
  • /api/v5/trade/order : 下单。通过此接口,您可以提交买入或卖出订单。订单类型包括限价单、市价单等。下单时,您需要指定交易对、订单方向(买/卖)、价格、数量等参数。成功下单后,接口会返回订单ID,您可以使用该ID来跟踪订单状态。
  • /api/v5/trade/cancel-order : 撤单。用于取消尚未成交的订单。您需要提供要取消的订单的订单ID。撤单成功后,相应的挂单将被移除。频繁撤单可能会影响您的交易体验,建议谨慎操作。
  • /api/v5/trade/orders-pending : 查询未成交订单。该接口可以检索所有尚未完全成交或部分成交的订单列表。您可以根据交易对、订单类型等条件进行过滤。返回的数据包括订单ID、订单状态、下单时间、价格、数量等详细信息,方便您监控您的挂单情况。
  • /api/v5/market/tickers : 获取行情信息。该接口提供各种交易对的最新行情数据,例如最新成交价、最高价、最低价、24小时成交量等。您可以根据需要查询特定交易对的行情信息。此接口返回的数据是实时更新的,可以帮助您了解市场动态。
  • /api/v5/market/candles : 获取K线数据。K线图是技术分析的重要工具。此接口允许您获取指定交易对的历史K线数据,包括开盘价、收盘价、最高价、最低价和成交量。您可以指定K线的时间周期,例如1分钟、5分钟、1小时、1天等。通过分析K线图,您可以更好地了解价格趋势和市场走势。

获取账户余额

获取加密货币账户余额是与交易所API交互的基础操作之一。以下示例代码展示了如何使用Python和 requests 库从OKX交易所获取账户余额信息。务必妥善保管您的API密钥和私钥,避免泄露。

代码示例:


import requests
import hashlib
import hmac
import time
import base64

# API 密钥、私钥和密码,请替换为您的实际值
api_key = "YOUR_API_KEY"
secret_key = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"

# OKX API 的基础 URL(正式环境)
base_url = "https://www.okx.com"

# 定义签名函数
def sign(message, secret_key):
    message = message.encode('utf-8')
    secret_key = secret_key.encode('utf-8')
    hmac_obj = hmac.new(secret_key, message, digestmod=hashlib.sha256)
    signature = base64.b64encode(hmac_obj.digest()).decode('utf-8')
    return signature

# 定义请求头
timestamp = str(int(time.time()))
message = timestamp + 'GET' + '/api/v5/account/balance'
signature = sign(message, secret_key)

headers = {
    'OK-ACCESS-KEY': api_key,
    'OK-ACCESS-SIGN': signature,
    'OK-ACCESS-TIMESTAMP': timestamp,
    'OK-ACCESS-PASSPHRASE': passphrase,
    'Content-Type': 'application/'
}

# 发送 GET 请求获取账户余额
url = base_url + '/api/v5/account/balance'
response = requests.get(url, headers=headers)

# 处理响应
if response.status_code == 200:
    data = response.()
    print("账户余额信息:", data)
else:
    print("请求失败,状态码:", response.status_code)
    print("错误信息:", response.text)

代码解释:

  • 引入必要的库: requests 用于发送HTTP请求, hashlib hmac 用于创建API签名, time 获取时间戳, base64 对签名进行编码。
  • 替换占位符:将 YOUR_API_KEY YOUR_SECRET_KEY YOUR_PASSPHRASE 替换为您在OKX交易所获得的真实API密钥、私钥和密码。
  • 定义签名函数:为了安全地访问API,需要对请求进行签名。该函数使用HMAC-SHA256算法和您的私钥生成签名。
  • 构建请求头:请求头中包含API密钥、签名、时间戳和密码。这些信息用于验证您的身份并确保请求的安全性。
  • 发送GET请求:使用 requests.get() 方法向 /api/v5/account/balance 端点发送GET请求。
  • 处理响应:检查响应状态码。如果状态码为200,表示请求成功,解析JSON响应并打印账户余额信息。否则,打印错误状态码和错误信息。

安全提示:

  • 请勿将API密钥和私钥存储在代码中,建议使用环境变量或配置文件进行管理。
  • 避免将API密钥和私钥泄露给他人,以免造成资产损失。
  • 定期更换API密钥和私钥,提高安全性。
  • 仔细阅读OKX API文档,了解API的使用限制和最佳实践。

base_url = "https://www.okx.com" # 示例环境,请务必先在OKX平台完成API密钥申请和配置

def generate_signature(timestamp, method, request_path, body):

"""

生成符合OKX API规范的数字签名,用于身份验证。

"""

message = timestamp + method + request_path + body

# 使用HMAC-SHA256算法,以API Secret Key作为密钥,对消息进行哈希运算。

mac = hmac.new(secret_key.encode('utf-8'), message.encode('utf-8'), hashlib.sha256)

d = mac.digest()

# 将哈希结果进行Base64编码,并转换为字符串,作为API签名。

return base64.b64encode(d).decode()

def get_account_balance():

"""

获取OKX账户的资金余额信息。

"""

# 获取当前Unix时间戳,精确到秒,作为请求时间戳。

timestamp = str(int(time.time()))

# 定义HTTP请求方法为GET。

method = "GET"

# 定义API请求路径。

request_path = "/api/v5/account/balance"

# 对于GET请求,请求体为空字符串。

body = ""

signature = generate_signature(timestamp, method, request_path, body)

# 构造HTTP请求头,包含API密钥、签名、时间戳和Passphrase。
headers = {
    "OK-ACCESS-KEY": api_key,
    "OK-ACCESS-SIGN": signature,
    "OK-ACCESS-TIMESTAMP": timestamp,
    "OK-ACCESS-PASSPHRASE": passphrase,
    "Content-Type": "application/" #明确指定JSON格式
}

url = base_url + request_path
# 发送HTTP GET请求到OKX API。
response = requests.get(url, headers=headers)

if response.status_code == 200:
    # 如果请求成功,解析JSON响应数据。
    data = response.()
    # 打印格式化的JSON响应数据,方便调试和查看。
    print(.dumps(data, indent=4))
else:
    # 如果请求失败,打印错误状态码和错误信息。
    print(f"Error: {response.status_code} - {response.text}")

调用函数获取账户余额

在区块链开发中,获取账户余额是常见的操作。`get_account_balance()` 函数用于查询指定账户当前持有的加密货币数量。该函数通常接受账户地址作为输入参数,并返回该地址对应的余额数值。余额数值的单位取决于所使用的区块链平台和代币类型。例如,在以太坊中,余额通常以 Wei 为单位返回,需要进行转换才能得到 Ether 值。不同区块链平台的实现细节可能有所差异,但核心功能都是提供查询账户余额的能力。开发人员需要根据具体的区块链平台和编程语言,查阅相应的 API 文档,了解 `get_account_balance()` 函数的具体用法和参数要求。例如,使用 Web3.js 库与以太坊交互时,可以使用 `web3.eth.getBalance(address)` 方法来获取账户余额。确保正确处理返回值,通常返回的是一个大整数,需要根据实际情况进行单位转换和格式化,以便于显示和计算。

下单

下单是与加密货币交易所进行交易的核心操作。以下是一个使用Python的 requests 库在OKX交易所进行下单的示例代码。请注意,此代码仅为示例,实际使用时需根据交易所的最新API文档进行调整,并进行充分的安全测试。

你需要安装必要的Python库:

pip install requests

示例代码如下:

import requests
import hmac
import hashlib
import base64
import time
import 

api_key = "YOUR_API_KEY"  # 替换为你的API Key
secret_key = "YOUR_SECRET_KEY"  # 替换为你的Secret Key
passphrase = "YOUR_PASSPHRASE"  # 替换为你的Passphrase
base_url = "https://www.okx.com"  # OKX交易所API的基础URL,注意检查最新文档

def generate_signature(timestamp, method, request_path, body):
    """
    生成签名,用于身份验证。
    """
    message = timestamp + method + request_path + body
    mac = hmac.new(secret_key.encode('utf-8'), message.encode('utf-8'), hashlib.sha256)
    d = mac.digest()
    return base64.b64encode(d).decode()

def place_order(instId, side, ordType, sz, px=""):
    """
    下单函数,发送POST请求到OKX API。

    参数:
        instId (str): 合约ID,例如 BTC-USD-SWAP.
        side (str): 买卖方向,"buy" 或 "sell".
        ordType (str): 订单类型,"market", "limit", "post_only", "fok", "ioc".
        sz (str): 数量.
        px (str, optional): 价格 (仅限价单). Defaults to "".  市价单不需要此参数。
    """
    timestamp = str(int(time.time()))
    method = "POST"
    request_path = "/api/v5/trade/order"
    body = .dumps({
        "instId": instId,  # 合约ID,例如 BTC-USD-SWAP
        "side": side,  # 买卖方向,buy 或 sell
        "ordType": ordType,  # 订单类型,例如 market, limit, post_only, fok, ioc
        "sz": sz,  # 数量
        "px": px  # 价格 (仅限价单).  市价单不需要此参数。
    })

    signature = generate_signature(timestamp, method, request_path, body)

    headers = {
        "OK-ACCESS-KEY": api_key,
        "OK-ACCESS-SIGN": signature,
        "OK-ACCESS-TIMESTAMP": timestamp,
        "OK-ACCESS-PASSPHRASE": passphrase,
        "Content-Type": "application/"  # 明确指定Content-Type为application/
    }

    url = base_url + request_path
    response = requests.post(url, headers=headers, data=body)

    if response.status_code == 200:
        data = response.()
        print(.dumps(data, indent=4))
    else:
        print(f"Error: {response.status_code} - {response.text}")

# 示例用法
# place_order(instId="BTC-USD-SWAP", side="buy", ordType="market", sz="0.01")  # 市价买入
# place_order(instId="BTC-USD-SWAP", side="sell", ordType="limit", sz="0.01", px="20000") # 限价卖出

代码解释:

  • API 密钥和安全: 替换 YOUR_API_KEY , YOUR_SECRET_KEY , 和 YOUR_PASSPHRASE 为你自己的凭据。 务必妥善保管你的密钥 ,避免泄露,并且不要将它们硬编码到代码中。 使用环境变量或者配置文件来管理敏感信息。
  • 签名生成: generate_signature 函数使用你的Secret Key和请求的详细信息创建一个加密签名。 这是验证请求真实性所必需的。 OKX使用HMAC-SHA256算法进行签名。
  • 下单函数 ( place_order ):
    • 构造包含订单详细信息的JSON payload。 确保 instId , side , ordType , 和 sz 参数正确设置。 px 参数仅对限价单( ordType="limit" )有效。
    • 设置必要的headers,包括API key,签名,时间戳和passphrase。 Content-Type 必须设置为 application/
    • 发送POST请求到OKX API endpoint ( /api/v5/trade/order )。
    • 检查响应状态码。 如果是200,则请求成功,并打印响应数据。 否则,打印错误信息。
  • 错误处理: 代码包含基本的错误处理,检查响应状态码并打印错误信息。 你应该添加更健壮的错误处理机制,例如重试逻辑和异常处理。

注意事项:

  • API 文档: 在使用此代码之前,请务必查阅OKX官方API文档,了解最新的endpoint, 参数和错误代码。 API可能会发生变化。
  • 交易规则: 了解OKX的交易规则,包括最小订单大小,价格精度和手续费。
  • 风险管理: 加密货币交易风险很高。 在进行真实交易之前,请使用模拟交易账户进行测试,并采取适当的风险管理措施。
  • 安全: 保护你的API密钥和私钥。 启用双重身份验证 (2FA)。
  • 时间戳同步: 确保你的服务器时间与交易所时间同步,否则可能会导致签名验证失败。
  • 订单类型 ( ordType ):
    • market : 市价单,以当前市场价格立即成交。
    • limit : 限价单,只有当市场价格达到指定价格时才会成交。
    • post_only : 只挂单,如果立即成交,订单会被取消。
    • fok (Fill or Kill): 全部成交或立即取消,如果订单不能立即全部成交,则会被取消。
    • ioc (Immediate or Cancel): 立即成交并取消剩余部分,任何未能立即成交的部分将被取消。

重要提示: 此代码仅供参考和学习。 在实际交易中使用前,请进行彻底的测试和验证。 加密货币交易存在巨大风险,请谨慎操作。

调用函数下单

place_order("BTC-USD-SWAP", "buy", "limit", "1", "20000")

上述代码示例展示了如何通过调用 place_order 函数在加密货币交易所进行下单操作。该函数接受多个参数,每个参数都代表订单的不同属性,以此来创建并提交一个完整的交易指令。

具体参数解释如下:

  • "BTC-USD-SWAP" :指定交易的合约类型,这里指的是比特币兑美元的永续合约。不同的交易所可能使用不同的合约代码,需要根据实际情况进行调整。永续合约是一种没有到期日的衍生品,允许交易者长期持有仓位。
  • "buy" :表示下单的方向,"buy"代表买入,也称为做多。意味着交易者预期比特币价格上涨,并通过买入合约来获利。与之对应的是"sell",代表卖出,也称为做空。
  • "limit" :指定订单类型为限价单。限价单允许交易者指定希望成交的价格,只有当市场价格达到或优于指定价格时,订单才会被执行。这可以帮助交易者以更理想的价格买入或卖出。
  • "1" :表示下单的数量,单位通常是合约的张数或者币的数量,具体取决于交易所的规定。在这个例子中,表示买入1张BTC-USD-SWAP合约,或1个比特币。
  • "20000" :指定限价单的价格,这里是20000美元。只有当市场价格跌至或低于20000美元时,该买单才会被执行。如果市场价格高于20000美元,则订单将挂单等待。

需要注意的是,实际交易过程中,交易所可能会要求提供更多的参数,例如止损价、止盈价、杠杆倍数等。不同的交易所的API接口和参数定义可能会有所不同,因此需要仔细阅读交易所的API文档,并根据实际情况进行调整。在使用API进行交易时,务必进行充分的测试,以确保程序的正确性和安全性。

常见问题

  • API Key无效 : 验证您的API Key是否完全正确,包括大小写。确认API Key已经在欧易OKX账户中成功创建并激活。检查API Key的状态,确保未被禁用或过期。
  • 签名错误 : 确保Secret Key输入无误,并且与API Key配对。仔细核对您使用的签名算法(如HMAC-SHA256)是否与欧易OKX平台的要求一致。重点检查时间戳,确保其精确度和同步性。建议使用网络时间协议(NTP)同步服务器时间,并考虑到网络延迟的影响。同时,确保请求参数的顺序和格式正确,因为签名算法对参数的顺序和格式非常敏感。
  • 请求频率限制 : 欧易OKX API为了保障系统稳定,设置了请求频率限制。 如果您频繁收到`429 Too Many Requests`错误,表明您已超出限制。 使用指数退避算法来控制请求频率。 考虑使用WebSocket API获取实时数据,可以显著减少对REST API的请求次数。您可以向欧易OKX申请提高API请求频率限制,但需要提供合理的理由和用例。
  • 权限不足 : 检查您的API Key是否被赋予了执行所需操作的权限。例如,如果您尝试进行交易,API Key必须具有交易权限。 检查API Key的权限设置,并确保其包含所有必要的权限,如交易、提现、查询等。

欧意API是强大的工具,可以帮助开发者自动化交易,获取市场数据,管理账户。 通过本文的介绍,相信你已经对欧意API有了初步的了解。 现在你可以开始尝试使用欧意API,构建自己的交易系统。

文章版权声明:除非注明,否则均为币历程原创文章,转载或复制请以超链接形式并注明出处。
相关推荐