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 认证
543 每月下载量
42KB
1K SLoC
xStation5 API Rust库
xStation5 API Rust库提供了一个简单易用的API,用于与xStation5交易平台交互。使用此库,您可以连接到xStation5平台,检索市场数据,并执行交易。
此库可用于 BFB Capital 和 XTB 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