欧意交易所API设置教程
1. 什么是API?
应用程序编程接口(API)是一组预定义的协议、函数和程序,允许不同的软件应用程序安全、高效地相互通信和共享数据。API充当了软件系统之间的桥梁,定义了应用程序如何请求和交换信息。在加密货币交易领域,API扮演着至关重要的角色,它允许用户通过编写代码,程序化地访问和控制交易所的各项功能,极大地拓展了交易的可能性。
- 下单和取消订单: 通过API,用户可以自动化地提交买入或卖出订单,并根据市场情况实时取消未成交的订单。这对于高频交易和算法交易至关重要。
- 查询账户余额: API允许用户实时查询其在交易所的账户余额,包括各种加密货币和法币的持有量。这对于资金管理和风险控制至关重要。
- 获取市场数据: 用户可以通过API获取实时的市场数据,包括价格、交易量、订单簿深度等。这些数据是制定交易策略和进行技术分析的基础。API通常提供历史数据,用于回溯测试和模型训练。
- 执行高级交易策略: API不仅限于基本操作,还可以用于执行复杂的交易策略,例如套利交易、网格交易、趋势跟踪等。通过编程,用户可以构建自动化交易系统,根据预设的规则和算法自动执行交易。这涉及复杂的逻辑判断,例如价格偏离、指标交叉、消息事件等。
使用API进行加密货币交易可以显著提升交易效率、降低人为错误风险,并赋能更加复杂的自动化交易系统。通过API,交易者可以实现7x24小时不间断的监控和交易,迅速响应市场变化,把握投资机会。API还促进了量化交易和算法交易的发展,为交易者提供了更多可能性。
2. 为什么需要API?
在加密货币交易领域,应用程序编程接口(API)扮演着至关重要的角色。相较于传统的手动在交易所网页上进行操作,API交易提供了更为高效、灵活和强大的交易手段。手动操作的限制显而易见,例如需要人工盯盘、手动下单,反应速度慢,容易受到情绪影响等。而API交易则克服了这些局限性,为交易者带来了显著的优势。
- 自动化交易: 通过编写交易程序,可以实现全天候(24/7)的自动交易。程序能够根据预设的交易策略,自动监控市场行情,并在满足特定条件时自动执行买卖操作。这消除了人工盯盘的需求,释放了交易者的时间和精力,同时避免了因情绪波动而导致的错误决策。自动化交易尤其适用于高频交易和量化交易策略。
- 更快的交易速度: API交易通过程序直接与交易所的服务器进行通信,省略了用户界面操作的环节,因此交易速度更快。在快速变化的市场中,毫秒级的速度优势至关重要,能够帮助交易者抓住瞬间的市场机会,及时进行买卖操作,从而获得更高的收益或避免潜在的损失。
- 更高的交易精度: 程序化交易完全按照预先设定的规则执行,避免了人为的主观判断和情绪干扰。这可以显著提高交易的精度,减少因人为错误而导致的损失。程序可以精确地执行止损、止盈等操作,更好地控制风险。
- 实现复杂的交易策略: API为交易者提供了更大的灵活性,可以实现各种复杂的交易策略,例如量化交易、套利交易、网格交易、趋势跟踪等。量化交易利用数学模型和算法进行交易决策,套利交易则通过在不同市场或不同交易所之间寻找价格差异来获利。这些复杂的策略往往需要大量的计算和快速的执行,而API交易能够很好地满足这些需求。
- 更大的交易规模和账户管理能力: 通过API,交易者可以同时管理多个账户,并执行更大规模的交易。这对于机构交易者和专业的量化团队来说至关重要。API可以帮助他们高效地管理资金,分散风险,并优化交易策略。同时管理多个账户也方便了对冲策略的实施。
3. 在欧意交易所创建API Key
要通过程序化方式与欧意交易所进行交互,必须创建API Key。API Key由一对密钥组成:API Key (公钥) 和 Secret Key (私钥)。API Key用于标识你的身份,Secret Key用于对你的请求进行签名,从而授权你访问交易所提供的各种功能,例如查询账户余额、获取市场数据、进行交易等。
创建API Key的过程涉及几个关键步骤,需要仔细操作以确保安全和权限配置正确。
- 登录欧意交易所: 使用你的账户名和密码安全地登录欧意交易所官方网站或移动应用程序。请务必使用强密码并启用双因素认证(2FA)以增强账户安全性。
-
进入API管理页面:
- 网页端: 登录后,将鼠标指针悬停在页面右上角显示的用户头像上,在弹出的下拉菜单中选择 "API" 选项,即可进入API管理页面。
- APP端: 打开欧意交易所APP,点击屏幕下方或侧边栏的个人头像,然后在个人中心或设置菜单中找到 "API管理" 选项。
- 创建API Key: 在API管理页面,找到并点击 "创建API" 或类似的按钮,开始API Key的创建流程。
-
填写API信息:
在创建API Key的表单中,需要填写以下关键信息:
- API名称: 为你的API Key设置一个具有描述性的名称,例如 "量化交易机器人" 或 "数据分析脚本",以便于区分和管理不同的API Key。
- 通行密钥 (Passphrase): 设置一个高强度的密码短语,用于加密你的Secret Key。这个Passphrase非常重要,务必妥善保管,并切勿泄露给他人。如果忘记Passphrase,将无法恢复Secret Key,你需要重新创建API Key。建议使用包含大小写字母、数字和符号的复杂密码短语,并使用密码管理器进行存储。
- IP地址限制 (可选): 这是一个重要的安全措施。如果你确定你的应用程序将只从特定的IP地址访问欧意交易所API,强烈建议设置IP地址限制。这样,即使API Key和Secret Key泄露,未经授权的IP地址也无法使用该API Key。可以填写单个IP地址或IP地址段。
-
权限:
根据你的应用程序的需求,选择需要授予API Key的权限。权限设置应该遵循最小权限原则,即只授予API Key完成其任务所需的最小权限集。常见的权限包括:
- 交易: 允许API Key执行下单、修改订单、取消订单等交易操作。只有在你的应用程序需要进行自动化交易时才需要开启此权限。
- 只读: 允许API Key读取账户信息 (例如余额、持仓)、市场数据 (例如价格、成交量)、历史订单等信息,但禁止进行任何交易操作。适用于数据分析、监控等场景。
- 资金划转: 允许API Key在你的不同账户之间划转资金,例如从现货账户划转到合约账户。此权限非常敏感,务必谨慎使用,并仅在绝对必要时才授予。强烈建议不要将此权限授予未经过充分安全审计的应用程序。
4. API Key的权限说明
欧易(OKX)交易所的API Key权限控制非常细致,旨在确保用户资金和数据的安全。 您需要根据您的具体交易策略和自动化需求,仔细配置各项权限。 不必要的权限授予可能增加账户安全风险。
-
交易权限:
允许通过API进行各类交易操作,是量化交易和自动化交易的核心权限。
- 现货交易: 允许使用API Key进行现货市场的买入和卖出操作。 可以通过API提交、修改和取消现货订单。
- 合约交易: 允许使用API Key进行合约市场的交易,包括永续合约、交割合约等。 可以进行开仓、平仓、调整杠杆等操作。 需谨慎使用,高杠杆风险高。
- 期权交易: 允许使用API Key进行期权合约的交易。 涉及更复杂的策略和风险管理,需要充分了解期权交易规则。
- 杠杆交易: 允许使用API Key进行杠杆现货交易。 需要开通杠杆账户并了解杠杆倍数和利息规则。 请务必评估自身风险承受能力。
-
账户权限:
允许通过API查询账户信息,便于监控账户状态和执行风险控制。
- 查询账户余额: 允许查询包括现货账户、合约账户等所有账户的余额信息。 可以获取不同币种的可用余额、冻结余额等数据。
- 查询历史订单: 允许查询所有历史订单的详细信息,包括订单类型、价格、数量、状态等。 有助于分析交易策略的执行情况。
- 查询成交记录: 允许查询所有已成交的交易记录,包括成交价格、成交数量、手续费等。 用于计算盈亏和进行财务审计。
-
资金权限:
控制资金的流动,是最敏感的权限,务必谨慎授予。
- 充值: 允许通过API Key发起充值请求。 通常不建议通过API Key进行充值,因为安全性要求较高。 更推荐通过交易所网页或App进行充值操作。
- 提现: 允许通过API Key发起提现请求。 强烈建议不要授予此权限 。 一旦API Key泄露,资金将面临被盗风险。 如果确实需要自动化提现,务必进行严格的风控措施,例如IP限制、提现地址白名单等。
- 资金划转: 允许在不同账户(例如现货账户和合约账户)之间划转资金。 可以用于调整不同账户的资金分配,实现更灵活的交易策略。
-
数据权限:
允许获取市场数据,为量化交易提供数据支持。
- 获取市场数据: 允许获取实时的市场行情数据,例如最新成交价、买一价、卖一价等。 是量化交易策略的基础数据来源。
- 获取K线数据: 允许获取不同时间周期的K线数据,例如1分钟K线、5分钟K线、1小时K线等。 用于分析价格趋势和制定交易策略。
- 获取深度数据: 允许获取订单簿的深度数据,包括买单和卖单的挂单价格和数量。 可以分析市场供需关系和预测价格走势。
在创建API Key时,请根据你的实际需求选择合适的权限,并认真阅读欧易交易所的API文档。 最小权限原则是保障账户安全的关键,避免授予不必要的权限。 定期审查和更新您的API Key权限设置,确保其与您的交易策略相符。 同时,务必妥善保管API Key,避免泄露给他人。
5. 使用API Key进行交易
在欧意交易所成功创建API Key后,您便可以利用该Key访问其强大的API接口,进行自动化交易和数据获取。为了高效地与API交互,建议选择一种您熟悉的编程语言,例如Python、Java、C++或JavaScript,并搭配相应的API客户端库。这些库封装了复杂的HTTP请求细节,极大地简化了API调用过程,让您能够专注于交易逻辑的实现。务必妥善保管您的API Key和Secret Key,避免泄露,并定期更换以确保账户安全。
以下提供一个使用Python和
ccxt
库进行API交易的示例代码。
ccxt
是一个广泛使用的加密货币交易库,支持众多交易所,包括欧意交易所。该库提供了一套统一的API接口,使得在不同交易所之间切换变得非常便捷。在使用前,请确保已安装
ccxt
库(可以使用
pip install ccxt
命令安装)。在实际使用中,请务必替换示例代码中的
apiKey
和
secret
为您的真实API Key和Secret Key。
import ccxt
# 配置API密钥
exchange = ccxt.okex({
'apiKey': 'YOUR_API_KEY', # 替换为您的API Key
'secret': 'YOUR_SECRET_KEY', # 替换为您的Secret Key
})
# 可选:启用现货账户模拟交易(sandbox模式,需交易所支持)
# exchange.set_sandbox_mode(True)
# 查询账户余额
try:
balance = exchange.fetch_balance()
print("账户余额:", balance)
except ccxt.AuthenticationError as e:
print("身份验证失败:", e)
except ccxt.NetworkError as e:
print("网络错误:", e)
except ccxt.ExchangeError as e:
print("交易所错误:", e)
except Exception as e:
print("发生未知错误:", e)
# 下市价单买入BTC/USDT
symbol = 'BTC/USDT'
amount = 0.001 # 交易数量
try:
order = exchange.create_market_buy_order(symbol, amount)
print("下单成功:", order)
except ccxt.InsufficientFunds as e:
print("余额不足:", e)
except ccxt.InvalidOrder as e:
print("无效订单:", e)
except ccxt.NetworkError as e:
print("网络错误:", e)
except ccxt.ExchangeError as e:
print("交易所错误:", e)
except Exception as e:
print("发生未知错误:", e)
# 获取最近的交易对信息
try:
ticker = exchange.fetch_ticker(symbol)
print("交易对信息:", ticker)
except ccxt.NetworkError as e:
print("网络错误:", e)
except ccxt.ExchangeError as e:
print("交易所错误:", e)
except Exception as e:
print("发生未知错误:", e)
替换成你的API Key、Secret Key 和 Passphrase
在进行任何交易操作之前,务必将以下占位符替换为你自己的API Key、Secret Key 和 Passphrase。这些凭证对于安全地访问你的加密货币交易所账户至关重要。
API Key (api_key):
api_key = 'YOUR_API_KEY'
API Key 类似于你的用户名,用于识别你的账户。它允许你的应用程序(例如交易机器人或脚本)代表你访问交易所的API。务必妥善保管你的 API Key,不要与他人分享。
Secret Key (secret_key):
secret_key = 'YOUR_SECRET_KEY'
Secret Key 类似于你的密码,用于验证你的API Key。它用于对你的API请求进行签名,确保请求的真实性和完整性。你的 Secret Key 必须绝对保密,并且不应存储在不安全的位置,例如版本控制系统或公共服务器上。
Passphrase (passphrase):
passphrase = 'YOUR_PASSPHRASE'
Passphrase 是一层额外的安全保护,有些交易所会要求设置 Passphrase。Passphrase 可以进一步保护你的账户,即使 API Key 和 Secret Key 泄露,攻击者仍然需要 Passphrase 才能访问你的资金。请务必选择一个强壮且难以猜测的 Passphrase,并将其安全地存储在密码管理器中。
重要安全提示:
- 切勿将你的 API Key、Secret Key 和 Passphrase 存储在代码中,特别是公开的代码仓库中。
- 使用环境变量或配置文件来存储这些敏感信息。
- 定期轮换你的 API Key 和 Secret Key。
- 启用双因素身份验证 (2FA) 以增强账户的安全性。
- 监控你的账户活动,并立即报告任何可疑活动。
创建欧易(OKX,原欧意)交易所对象
为了与欧易(OKX,原欧意)交易所进行交互,你需要创建一个交易所对象。这需要使用ccxt库,并配置必要的API密钥、密钥和密码。
以下代码展示了如何创建一个用于永续合约交易的欧易交易所对象:
exchange = ccxt.okex5({
'apiKey': api_key,
'secret': secret_key,
'password': passphrase,
'options': {
'defaultType': 'swap', # 设置交易类型为永续合约,也可以设置为 'spot' 现货或其他合约类型
}
})
参数说明:
-
apiKey
: 你的欧易交易所API密钥。这是你在欧易交易所创建API密钥后获得的公开密钥,用于标识你的身份。 -
secret
: 你的欧易交易所密钥。这是与API密钥配对的私有密钥,用于签署你的请求。务必妥善保管此密钥,切勿泄露。 -
password
: 你的资金密码。这是你在欧易交易所设置的资金密码,用于授权交易和提现等敏感操作。 -
options
: 一个字典,用于配置交易所的各种选项。-
defaultType
: 设置默认的交易类型。'swap'
表示永续合约交易。 你也可以将其设置为'spot'
进行现货交易,或者根据需求设置为其他合约类型 (例如 'future'代表交割合约)。 选择正确的交易类型至关重要,因为它将影响你发送订单的方式和可用的交易对。 请注意,欧易交易所的不同交易类型有不同的API端点和参数。
-
注意事项:
-
请务必替换
api_key
,secret_key
, 和passphrase
为你自己的实际值。 - API密钥、密钥和密码是敏感信息,请妥善保管,避免泄露。
- 请确保你的API密钥已启用相应的交易权限,例如现货交易、合约交易等。
- 在进行交易之前,请仔细阅读欧易交易所的API文档,了解各种交易类型的具体参数和限制。
-
使用错误的
defaultType
可能导致交易失败或数据错误。请根据你的交易需求选择正确的类型。
查询账户余额
使用CCXT库查询加密货币交易所账户余额需要捕获潜在的异常情况,以确保程序的健壮性和提供有用的错误信息。以下代码段展示了如何安全地查询账户余额,并处理可能出现的认证错误和一般性错误。
try:
块尝试执行查询余额的操作。
exchange.fetch_balance()
函数会调用交易所的API来获取账户余额信息。返回的
balance
对象包含了各种币种的余额,包括可用余额、已用余额和总余额等。查询结果将被打印到控制台。
except ccxt.AuthenticationError as e:
块捕获认证失败的异常。如果提供的API密钥或密钥对不正确,或者没有足够的权限,交易所会返回一个认证错误。该块会打印出详细的认证错误信息,帮助用户诊断问题。例如,错误信息可能指示API密钥无效或权限不足。
except Exception as e:
块捕获所有其他类型的异常。这包括网络错误、API调用错误、数据解析错误等。捕获所有异常可以防止程序崩溃,并提供通用的错误信息。错误信息包含异常类型和详细描述,有助于调试。例如,如果交易所API返回了意外格式的数据,这个块就会捕获该错误并打印相关信息。
完整的代码示例如下:
try:
balance = exchange.fetch_balance()
print(balance)
except ccxt.AuthenticationError as e:
print(f"Authentication Error: {e}")
except Exception as e:
print(f"An error occurred: {e}")
在实际应用中,建议将错误信息记录到日志文件中,以便进行故障排除和审计。可以根据具体的业务需求,对不同的异常类型进行更细致的处理。
下单
在加密货币交易中,下单是将交易指令发送到交易所执行的过程。以下代码示例展示了如何使用 Python 和 CCXT 库在交易所创建一个市价订单,并处理可能出现的异常情况。
try:
语句块用于捕获可能发生的异常,保证程序的健壮性。
symbol = 'BTC/USDT:USDT'
:定义交易对。
BTC/USDT
表示比特币兑泰达币(USDT)的交易对。
:USDT
指定了结算货币为 USDT,这在一些交易所的永续合约交易中比较常见。请根据交易所的具体要求调整交易对的格式。
type = 'market'
:指定订单类型为市价单。市价单会立即以当前市场最优价格成交。其他常见的订单类型包括限价单(
'limit'
),止损单(
'stop_loss'
),止损限价单(
'stop_loss_limit'
)和跟踪止损单(
'trailing_stop'
)。选择合适的订单类型取决于您的交易策略。
side = 'buy'
:设置买卖方向为买入。如果想要卖出,则设置为
'sell'
。
amount = 0.001
:定义交易数量。这里表示买入 0.001 个比特币。数量单位通常以交易对的基础货币为准。请注意,不同交易所对最小交易数量有不同的要求,小于最小交易数量的订单可能无法成功提交。
order = exchange.create_order(symbol, type, side, amount)
:调用 CCXT 库的
create_order
方法创建订单。
exchange
对象需要预先初始化,并配置好 API 密钥等信息。
print(order)
:打印订单信息。订单信息通常包括订单 ID、订单状态、成交价格、成交数量等。
except ccxt.InsufficientFunds as e:
:捕获资金不足的异常。如果账户余额不足以支付交易所需的资金,则会抛出此异常。
except ccxt.InvalidOrder as e:
:捕获无效订单的异常。例如,订单参数不正确、交易所不支持该交易对等情况都可能导致此异常。
except ccxt.AuthenticationError as e:
:捕获认证错误的异常。通常是由于 API 密钥不正确或权限不足引起的。
except Exception as e:
:捕获其他未知的异常。为了保证程序的健壮性,建议捕获所有可能的异常。
在实际使用中,需要替换示例代码中的交易所 API 密钥、交易对和交易数量等参数,并根据交易所的文档调整代码。同时,需要仔细阅读交易所的 API 文档,了解各种订单类型的参数和限制。
获取当前 BTC/USDT:USDT 价格
本代码片段展示了如何使用 CCXT 库获取加密货币交易所中 BTC/USDT 交易对的实时价格。该段代码通过捕获可能出现的网络错误、交易所错误以及其他异常情况,确保程序的健壮性。
try:
语句块用于包裹可能抛出异常的代码。如果执行过程中出现任何错误,程序将跳转到相应的
except
语句块。
ticker = exchange.fetch_ticker('BTC/USDT:USDT')
使用 CCXT 库中的
fetch_ticker
方法获取指定交易对的 ticker 信息。
'BTC/USDT:USDT'
指定了要查询的交易对,其中
BTC
是基础货币,
USDT
是报价货币。
:USDT
表示该交易对是以 USDT 结算的。ticker 信息包含该交易对的最新价格、最高价、最低价、成交量等数据。
print(f"当前BTC/USDT:USDT 价格: {ticker['last']}")
打印出 BTC/USDT 交易对的最新成交价格。
ticker['last']
访问 ticker 信息中的
last
字段,该字段表示最新成交价格。
except ccxt.NetworkError as e:
用于捕获网络错误。如果网络连接出现问题,例如连接超时或无法连接到交易所服务器,将抛出
ccxt.NetworkError
异常。
print(f"Network Error: {e}")
打印出网络错误的详细信息。
except ccxt.ExchangeError as e:
用于捕获交易所错误。如果交易所返回错误信息,例如交易对不存在或 API 请求被拒绝,将抛出
ccxt.ExchangeError
异常。
print(f"Exchange Error: {e}")
打印出交易所错误的详细信息。
except Exception as e:
用于捕获其他类型的异常。如果发生任何未被前面
except
语句块捕获的异常,将执行该语句块。
print(f"An error occurred: {e}")
打印出异常的详细信息。这可以帮助开发者诊断和修复程序中的错误。
为了保证代码的可用性,应该根据实际情况选择合适的交易所和交易对,并处理可能出现的各种异常情况。建议添加更详细的错误日志记录,以便更好地追踪和解决问题。
注意:
- 风险管理至关重要: 在使用API进行任何加密货币交易时,务必进行严格的风险管理。这包括审慎地控制仓位大小,避免过度杠杆,并预先设置止损止盈订单。止损单有助于限制潜在亏损,而止盈单则可以在达到预期利润目标时自动平仓。
- 深入理解API文档: 欧易(OKX)交易所的API文档是您进行API交易的重要指南。仔细阅读并理解文档,包括API的各种用法、参数、返回值以及任何速率限制或其他限制。忽略这些细节可能导致交易失败或账户异常。
- API Key安全审计: 定期审查您的API Key权限至关重要,这是保障账户安全的关键步骤。检查您的API Key是否只授予了必要的权限(例如,仅限于交易,而非提现),并确保API Key存储在安全的地方,例如使用加密的环境变量或密钥管理系统。如果怀疑API Key泄露,请立即撤销并生成新的API Key。
-
ccxt
库:ccxt
是一个功能强大的Python加密货币交易库,它简化了与多个加密货币交易所API的交互。它支持包括欧易在内的众多交易所,并提供统一的接口,使得您可以轻松地在不同交易所之间切换。您可以使用pip install ccxt
命令来安装ccxt
库。 使用ccxt
时,请注意及时更新到最新版本,以获取最新的交易所支持和bug修复。
6. API安全注意事项
API密钥(API Key)的安全性至关重要。一旦泄露,攻击者可能利用其访问您的账户,执行未经授权的操作,从而导致资金损失。因此,采取必要的安全措施至关重要。以下是一些关于API安全的重要注意事项,旨在帮助您保护您的API密钥和账户安全:
- 妥善保管Secret Key: Secret Key是与API Key关联的私钥,通常只在生成时显示一次。务必将其妥善保存,如同保管银行密码一样。切勿将其泄露给任何第三方,包括熟人、客服人员等。建议将其存储在安全的地方,例如加密的密码管理器或硬件安全模块(HSM)。
- 设置IP地址限制: 如果您的应用程序运行在具有固定公网IP地址的环境中(例如,服务器),强烈建议设置IP地址访问限制。这样,即使API Key泄露,攻击者也无法从其他IP地址访问您的账户。您可以在交易所的API管理界面配置允许访问的IP地址列表,限制API Key只能从这些IP地址发起请求。
- 使用最小权限原则: 在创建API Key时,仅授予其执行应用程序所需的最少权限。例如,如果您的应用程序只需要读取账户余额,则不要授予其交易权限。过度授予权限会增加API Key泄露后的潜在风险。仔细审查每个权限的含义,并仅选择必要的权限。
- 定期更换API Key: 定期更换API Key是一种良好的安全习惯。通过定期轮换密钥,可以降低长期使用同一个API Key可能造成的风险。您可以设置一个定期的更换计划(例如,每三个月或六个月),并确保更新应用程序中的API Key配置。
- 监控API Key的使用情况: 定期监控API Key的使用情况是发现异常行为的关键。密切关注API请求的频率、来源IP地址和请求内容。如果发现任何异常活动,例如来自未知IP地址的大量请求或未经授权的交易,立即撤销API Key并调查原因。交易所通常提供API使用日志,方便您进行监控和分析。
- 启用双重验证(2FA): 为您的欧意交易所账户启用双重验证可以显著提高账户安全性。即使攻击者获得了您的用户名和密码,也需要通过您的第二重验证方式(例如,短信验证码或Google Authenticator)才能登录您的账户。启用2FA可以有效防止未经授权的访问。
- 警惕钓鱼网站: 网络钓鱼是获取API Key的常见手段。攻击者会伪造与欧意交易所类似的网站或电子邮件,诱骗您输入API Key和其他敏感信息。请务必仔细检查网站的URL和电子邮件的发件人地址,确保其真实性。永远不要点击不明链接,并在输入敏感信息前验证网站的安全性。使用官方渠道访问欧意交易所。