8个版本

0.2.4 2024年4月6日
0.2.3 2024年2月16日
0.1.0 2024年2月3日
0.0.2 2024年2月1日
0.0.1 2024年1月31日

#198 in 认证

Download history 165/week @ 2024-04-23 7/week @ 2024-04-30

543 每月下载量

MIT许可证

42KB
1K SLoC

xStation5 API Rust库

Version Build Docs Downloads license

xStation5 API Rust库提供了一个简单易用的API,用于与xStation5交易平台交互。使用此库,您可以连接到xStation5平台,检索市场数据,并执行交易。

此库可用于 BFB CapitalXTB xStation5账户。

API文档:http://developers.xstore.pro/documentation

免责声明

此xStation5 API Rust库与xStation5交易平台或其母公司无关联、无赞助或以任何方式官方联系。此库按原样提供,不保证适合任何特定目的。使用此库的风险自行承担,库的作者不对使用或误用此库造成的任何损害承担责任。请参阅许可证文件获取更多信息。

安装

您可以使用cargo安装xAPI。只需运行以下命令

cargo add xapi

使用方法

要使用xAPI,您需要拥有xStation5交易平台的有效账户。一旦拥有账户,您就可以使用xAPI库连接到平台并开始交易。

以下是使用xAPI库连接到xStation5平台的一个示例

use xapi;

use std::error::Error;
use std::fs;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let json = fs::read_to_string("credentials.json")?;
    let credentials = xapi::Credentials::from(&json)?;

    let x = xapi::connect(&credentials).await?;
    Ok(())
}

连接到平台后,您可以使用xAPI对象检索市场数据和执行交易。

以下是使用xAPI库订阅市场数据的一个示例

use xapi;

use tokio::time::{Duration, sleep};
use std::error::Error;
use std::fs;

async fn listen_tick_prices(credentials: &xapi::Credentials) -> Result<(), xapi::Error> {
    let x = xapi::connect(&credentials).await?;

    x.stream.get_tick_prices("BITCOIN", 0, 0).await?;
    x.stream.get_tick_prices("ETHEREUM", 0, 0).await?;

    loop {
        let record = x.stream.listen().await?;
        println!("{:?}", record);
    }
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let json = fs::read_to_string("credentials.json")?;
    let credentials = xapi::Credentials::from(&json)?;

    while let Err(err) = listen_tick_prices(&credentials).await {
        println!("{}, Reconnecting in 5 seconds ...", err);
        sleep(Duration::from_secs(5)).await;
    }
    Ok(())
}

以下是使用xAPI库执行交易的一个示例

use xapi;
use xapi::{Transaction, RequestStatus, TradeCmd, TradeType};

use std::error::Error;
use std::fs;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let json = fs::read_to_string("credentials.json")?;
    let credentials = xapi::Credentials::from(&json)?;

    let x = xapi::connect(&credentials).await?;

    let response = x.socket.trade_transaction(Transaction {
        symbol: String::from("BITCOIN"),
        cmd: TradeCmd::BuyLimit,
        type_: TradeType::Open,
        price: 10.00,
        volume: 1.0,
    ..Default::default() }).await?;

    if response.status == true {
        println!("Transaction sent to market")
    } else {
        println!("Failed to trade a transaction {:?}", response);
    }
    Ok(())
}

示例

要运行xAPI库的示例,您需要拥有xStation5交易平台账户。

在运行示例之前,您应该在项目目录中创建一个名为 credentials.json 的文件。此文件应包含您的账户凭据,如下所示

credentials.json

{
    "accountId": "<your_client_id>",
    "password": "<your_password>",
    "host": "ws.xtb.com",
    "type": "real",
    "safe": false
}

创建 credentials.json 文件后,您可以使用以下命令运行一个示例

cargo run --example listen-tick-prices

单元测试

这将运行所有单元测试

git clone https://github.com/pawelkn/xapi-rs.git
cd xapi-rs
cargo test

请给我买杯咖啡!☕

如果您觉得这个项目有益,并想支持我,请考虑在 Buy Me A Coffee 上给我买杯咖啡。

依赖项

~6–18MB
~271K SLoC