Python中的Deriv API

2025年3月4日 | 阅读 7 分钟

Deriv API 简介

Deriv API 使开发人员能够通过代码使用 Deriv 的交易功能和数据。借助它,用户可以设置自动交易计划,实时获取市场信息,并在不进行繁琐的鼠标点击操作的情况下进行交易。

为什么使用 Deriv API?

  • 自动化:设置可独立运行的交易计划,减少手动工作。
  • 自定义策略:创建您在 Deriv 主平台找不到的独特交易方法。
  • 实时数据:获取最新的市场信息,帮助您做出决策。
  • 可扩展性:创建可以同时处理大量交易的交易机器人或应用程序。

Deriv API 帮助想要利用算法和自动化来提升交易结果的交易者。无论您是编程新手还是经验丰富的开发人员,该 API 都易于使用且提供清晰的说明。这使其成为将交易功能添加到您应用程序的首选。

设置您的 Python 环境

在使用 Deriv API With Python 之前,您需要准备好您的编码工作空间。 Python 是一种灵活的语言,拥有大量用于 Web 请求、数据处理和实时服务器通信的工具。这使其非常适合与 API 配合使用。

安装必需的库

您需要获取一些工具来处理 Deriv API

  • requests:用于向 API 发送 HTTP 请求。
  • websocket-client:用于管理 WebSocket 连接,这对于获取实时数据至关重要。

您可以使用 pip 设置这些库

这些库将为您提供连接到 Deriv API、发送请求并妥善处理响应所需的工具。

编写我们的 Python 脚本

在设置好库之后,创建一个新的 Python 脚本。您将在这里放置您的代码。您将使用此脚本来处理 API。

在脚本开头添加必要的库,可以确保您在代码的各个部分都能使用所需的所有函数。

理解 API 令牌和身份验证

您需要证明您的身份才能使用 Deriv API。您可以使用 API 令牌来做到这一点。此令牌就像是访问 Deriv 账户的密钥。它允许您执行诸如获取数据或进行交易等操作。

如何获取 API 令牌?

  1. 登录您的 Deriv 账户。
  2. 转到 API 部分:在您的账户设置中查找创建 API 令牌的页面。
  3. 创建新令牌:选择您想要授予的权限(例如读取或交易),然后创建一个令牌。

请将此令牌保存在安全的地方。您在与 Deriv API 进行身份验证时需要用到它。

如何在请求中使用 API 令牌

您将在 HTTP 请求或 WebSocket 连接的头部中包含 API 令牌。此令牌可确保您的请求有权执行特定操作。

将“your_api_token_here”替换为您创建的真实令牌。您将在将来的请求中使用此令牌来证明是您在执行操作。

如何使用 WebSocket 连接到 Deriv API?

Deriv API 依赖 WebSocket 来实时交换数据。WebSocket 是一种创建客户端和服务器之间持久连接的协议,允许数据双向流动,而无需 HTTP 请求 的额外开销。

准备就绪的 WebSocket 连接设置

要建立 WebSocket 连接,您需要 websocket-client 库。您的连接 URL 将包含您的应用 ID,这是您应用的唯一标识符。

输出

 
Connection opened   

订阅市场数据

连接后,您可以订阅特定符号的嘀价等市场数据。您的 WebSocket 连接将实时接收这些数据。

在这种情况下,我们订阅 R_100 符号的嘀数据。API 将持续将嘀数据发送到您的 WebSocket,您可以在 on_message 函数中处理它。

处理实时数据

当 WebSocket 连接收到消息时,它会触发 on_message 函数。此函数可以根据需要处理数据,例如将其记录下来或用于进行交易决策。

输出

 
Tick data: {
  "echo_req": {
    "subscribe": 1,
    "ticks": "R_100"
  },
  "msg_type": "tick",
  "subscription": {
    "id": "f3c4e2f4-2d9d-4e91-bcf2-c8a9f6e70a91"
  },
  "tick": {
    "ask": 202.56,
    "bid": 202.54,
    "epoch": 1692629425,
    "id": "f3c4e2f4-2d9d-4e91-bcf2-c8a9f6e70a91",
    "pip_size": 2,
    "quote": 202.55,
    "symbol": "R_100"
  }
}   

发出请求:订阅和数据检索

除了通过 WebSocket 获取实时数据外,HTTP 请求还可以帮助您获取数据或执行操作。这对于不需要持续更新的任务非常有用,例如获取历史数据或账户详情。

检索历史数据

Deriv API 允许您请求历史数据,这在测试交易计划或研究过去的市场行为时起着至关重要的作用。

输出

 
{
  "echo_req": {
    "ticks_history": "R_100",
    "count": 10,
    "end": "latest",
    "style": "ticks"
  },
  "history": {
    "prices": [202.55, 202.56, 202.54, 202.55, 202.53, 202.55, 202.57, 202.58, 202.55, 202.54],
    "times": [1692629420, 1692629421, 1692629422, 1692629423, 1692629424, 1692629425, 1692629426, 1692629427, 1692629428, 1692629429]
  },
  "msg_type": "history"
}   

此函数获取 R_100 符号的最后 10 个嘀。如果需要,您可以更改 count 参数来获取更多数据。

获取账户信息

您还可以获取您的 Deriv 账户的详细信息,例如余额、货币等。

输出

 
{
  "balance": {
    "balance": 1000.00,
    "currency": "USD",
    "id": "CR123456"
  },
  "echo_req": {
    "balance": 1
  },
  "msg_type": "balance"
}   

此请求获取您的账户余额和其他相关详细信息。这有助于您通过代码管理您的交易操作。

使用 Deriv API 进行交易

Deriv API 允许您进行交易,这是其关键功能之一。为此,您需要指定交易详情,例如金额、合约类型、持续时间和符号。

创建交易请求

当您下达交易指令时,需要指定所有重要详情。以下是如何使用 API 下达交易的示例

输出

 
{
  "buy": {
    "balance_after": 995.00,
    "contract_id": 78123456789,
    "payout": 100.0,
    "purchase_time": 1692629503,
    "start_time": 1692629504
  },
  "msg_type": "buy"
}   

理解交易参数

  • amount:交易的价值。
  • contract_type:交易的类别,例如 CALL 或 PUT。
  • currency:交易使用的货币。
  • duration:交易的持续时间。
  • duration_unit:我们衡量持续时间的方式(例如 t 代表 ticks)。
  • symbol:交易的市场简写。
  • basis:交易的基础,例如收益或本金。
  • payout:如果交易成功,您将获得的金额。
  • price:进入交易的成本。

开始交易

当您下达交易指令时,API 会返回一个包含合同 ID 和买入价等交易详情的响应。

输出

 
Trade placed successfully: {'balance_after': 995.00, 'contract_id': 78123456789, 'payout': 100.0, 'purchase_time': 1692629503, 'start_time': 1692629504}   

此代码处理 API 的响应。它会检查错误并确认交易已成功。

管理 API 响应和错误

为了确保您的应用程序按预期运行,您需要处理来自 API 的响应和错误。

解析 API 响应

API 响应采用 JSON 格式。您可以使用 Python 的 json 库来解析这些响应

如何处理错误

网络问题、错误的参数或 API 速率限制是常见错误的根源。您的代码应能处理这些情况。

输出

 
HTTP error happened: {Timeout}   

重试请求

有时,您可能希望为短暂的错误(如网络超时)添加重试逻辑。

输出

 
Try 1 didn't work: [ConnectionError]
Try 2 didn't work: [ConnectionError]
Try 3 didn't work: [ConnectionError]   

此循环尝试进行请求最多三次,并在尝试之间暂停。