在金融市场中,贵金属一直被视为重要的避险资产和投资工具,其价格波动不仅反映全球经济动态,更影响着投资者的资产组合。对于量化交易团队、交易平台和投资者来说,准确且及时的贵金属行情数据是制定交易策略的关键。

AllTick作为专业的行情数据服务商,自2017年期就一直为海外交易所、CFD平台等提供包括黄金、白银等贵金属在内的实时市场数据。接下来,我们将介绍AllTick的贵金属行情接口的一些基本情况,感兴趣的同学可以注册个账号,我们提供免费试用。

什么是API接口

API,全称为应用程序接口(Application Programming Interface),是指一组定义好的协议和工具,允许不同的软件系统进行通信和交互。API充当应用程序和外部服务、应用或操作系统之间的桥梁,让开发者能够访问特定功能或数据,而无需了解其内部细节。

以金融数据API为例,AllTick的贵金属实时行情API可以帮助用户直接从AllTick的数据源获取黄金、白银等贵金属的实时价格数据。通过调用API,开发者可以将这些数据集成到他们的交易平台或分析系统中,无需手动获取数据或自行维护数据源。API简化了开发过程,为应用赋能,使得软件之间的协作更为高效。

AllTick的贵金属行情接口能查哪些品种?

Category(分类)CodeName(产品名称)
贵金属
(Metals)
GOLD现货黄金/伦敦金(XAUUSD)
贵金属
(Metals)
Silver现货白银/伦敦银(XAGUSD)
贵金属
(Metals)
Aluminum铝(XALUSD)
贵金属
(Metals)
COPPER铜(XCUUSD)
贵金属
(Metals)
Palladium钯(XPDUSD)
贵金属
(Metals)
Platinum铂金(XPTUSD)
贵金属
(Metals)
Nickel镍(XNIUSD)
贵金属
(Metals)
Lead铅(XPBUSD)
贵金属
(Metals)
Zinc锌(XZNUSD)

更多可查询品种可看这份文件

什么是实时行情?

简单来说,普通的行情存在15分钟的延时,你看到的行情报价是15分钟以前的。而AllTick的实时行情只有170毫秒的延时,等同于实时报价。

实时行情指的是金融市场中交易资产(如股票、贵金属、外汇等)的即时价格和交易数据。与延时数据不同,实时行情数据会在交易发生的瞬间被传输给用户,确保他们能够获得最新的市场动态。这些数据通常包括资产的买卖报价、成交价格、成交量、最高价、最低价等指标。

在交易和投资中,实时行情数据非常关键。对于量化交易员、投资者和金融机构而言,实时行情能让他们在价格波动发生的第一时间采取行动,从而抓住投资机会或规避风险。比如,贵金属的实时行情可以帮助投资者即时了解黄金和白银的价格变化,从而制定更精确的交易策略。

AllTick的接口支持哪些语言?

我们支持:Go、Java、Java Script、PHP、Python

如何接入AllTick贵金属行情接口?

我们提供了详细的对接文档,你可以先根据文档的教程来接入,如果过程中存在问题,可以随时联系我们客服,我们可以协助你完成对接。

代码示例

下面我们使用接口查询现货白银(XAGUSD)的实时行情价格:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
 
public class HttpJavaExample {
 
    public static void main(String[] args) {
 
        try {
            // 查询现货白银(XAGUSD)实时数据
            String url = "http://quote.aatest.online/quote-metal-api/price?token=e945d7d9-9e6e-4721-922a-7251a9d311d0-1678159756806&query=%7B%22trace%22%20%3A%20%22java_http_test1%22%2C%22data%22%20%3A%20%7B%22symbol%22%20%3A%20%22XAGUSD%22%7D%7D";
 
            // 创建URL对象
            URL obj = new URL(url);
 
            // 打开连接
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
 
            // 设置请求方法
            con.setRequestMethod("GET");
 
            // 获取响应码
            int responseCode = con.getResponseCode();
            System.out.println("Response Code: " + responseCode);
 
            // 读取响应内容
            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
 
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
 
            // 输出返回的数据
            System.out.println(response.toString());
 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我们也可以使用WebSockets订阅贵金属的实时价格信息:

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.net.URI;
import java.net.URISyntaxException;
 
import javax.websocket.*;


@ClientEndpoint
public class WebSocketJavaExample {
 
    private Session session;
 
    @OnOpen
    public void onOpen(Session session) {
        System.out.println("Connected to server");
        this.session = session;
    }
 
    @OnMessage
    public void onMessage(String message) {
        System.out.println("Received message: " + message);
    }
 
    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        System.out.println("Disconnected from server");
    }
 
    @OnError
    public void onError(Throwable throwable) {
        System.err.println("Error: " + throwable.getMessage());
    }
 
    public void sendMessage(String message) throws Exception {
        this.session.getBasicRemote().sendText(message);
    }
 
    public static void main(String[] args) throws Exception, URISyntaxException, DeploymentException, IOException, IllegalArgumentException, SecurityException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
 
        // WebSocket服务器的URI,替换为您实际使用的WebSocket端点URL
        WebSocketContainer container = ContainerProvider.getWebSocketContainer();
        URI uri = new URI("wss://quote.aatest.online/quote-metal-ws-api?token=e945d7d9-9e6e-4721-922a-7251a9d311d0-1678159756806"); 
 
        WebSocketJavaExample client = new WebSocketJavaExample();
        container.connectToServer(client, uri);
 
        // 发送查询现货白银XAGUSD的消息
        String requestMessage = "{"
            + "\"cmd_id\": 22002, "
            + "\"seq_id\": 123, "
            + "\"trace\": \"3baaa938-f92c-4a74-a228-fd49d5e2f8bc-1678419657806\", "
            + "\"data\": {"
            + "\"symbol_list\": ["
            + "{"
            + "\"code\": \"XAGUSD\", "
            + "\"depth_level\": 5"
            + "}"
            + "]"
            + "}"
            + "}";
 
        client.sendMessage(requestMessage);
 
        // 等待直到用户输入以关闭程序
        System.in.read();
    }
}