| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- use std::fs::File;
- use std::io::Read;
- use rust_decimal::Decimal;
- use toml::from_str;
- use serde_derive::Deserialize;
- #[derive(Debug, Deserialize, Clone)]
- pub struct Params {
- // 经纪商id
- pub broker_id: String,
- // 账号昵称
- pub account_name: String,
- // ak
- pub access_key: String,
- // sk
- pub secret_key: String,
- // pk
- pub pass_key: String,
- // 交易盘口
- pub exchange: String,
- // 交易币对
- pub pair: String,
- // 开仓
- pub open: Decimal,
- // 平仓
- pub close: Decimal,
- // 杠杆大小
- pub lever_rate: Decimal,
- // 现货底仓
- pub hold_coin: Decimal,
- // core的run_strategy函数,用于定期检查使用
- pub interval: u64,
- // 参考盘口
- pub ref_exchange: Vec<String>,
- // 参考币种
- pub ref_pair: Vec<String>,
- // 账户资金使用比例
- pub used_pct: Decimal,
- // 止损比例 默认0.02 0.02 = 2%
- pub stop_loss: Decimal,
- // 平滑系数 默认0.999
- pub gamma: Decimal,
- // 分批建仓功能 小资金建议1 大资金建议3 默认 1
- pub grid: i8,
- // 是否启用colocation技术, 1开启,0关闭 默认0
- pub colo: i8,
- // 日志级别,从低到高依次是:[trace, debug, info, warn, error]
- pub log_level: String,
- // 中控端口
- pub port: u32,
- // 止损比例
- pub max_spread: Decimal,
- }
- impl Params {
- pub fn new(file_path: &str) -> Result<Params, Box<dyn std::error::Error>> {
- // 打开文件并读取内容
- let mut file = File::open(file_path)?;
- let mut contents = String::new();
- file.read_to_string(&mut contents)?;
- // 解析 TOML 数据到 Params 结构体
- let params: Params = from_str(&contents)?;
- Ok(params)
- }
- }
|