1 个不稳定版本

0.0.1 2021年7月19日

#82 in #broker

MIT/Apache

57KB
1.5K SLoC

ig-brokers

非官方的 IG REST API Rust 库

免责声明

这是一个非官方的实现,处于早期开发阶段。尚未进行全面测试,因此请自行承担风险。鉴于以下警告,使用此库产生的任何财务损失将由您自行承担。

使用方法

Cargo.toml

[dependencies]
ig-brokers = { git = "https://github.com/satnav/ig-brokers.git" }

.env

IG_ACCOUNT_ID=<Your IG Account Id>
IG_API_KEY=<Your IG API KEY>
IG_USERNAME=<Your IG Username>
IG_PASSWORD=<Your IG Password>

示例

use dotenv::dotenv;
use ig_brokers::api::IG;
use ig_brokers::models::*;
use std::env;

fn main() {
	// Load .env file
	dotenv().unwrap();

	// Extract environment variables
	let account_id = env::var("IG_ACCOUNT_ID").unwrap();
	let api_key = env::var("IG_API_KEY").unwrap();
	let username = env::var("IG_USERNAME").unwrap();
	let password = env::var("IG_PASSWORD").unwrap();

	// Switch to IG::live for live account
	let api = IG::demo(account_id, api_key, username, password);

	// Call endpoint, for reference use the IG REST API documentation
	// https://labs.ig.com/rest-trading-api-reference
	match api.get_accounts() {
		Ok(res) => println!("{:?}", res),
		Err(e) => println!("{:?}", e)
	};
}

测试

并非所有测试都已实现,已有的测试也相当基础。由于 IG Web API 有速率限制,如果一次性尝试运行所有测试,大多数都会失败。不幸的是,您需要逐个测试它们,如果出错,还需要等待一分钟。此外,您需要在活跃的交易期间(例如工作日)执行测试,否则有些测试也可能失败。

依赖关系

~5–19MB
~264K SLoC