|
|
@@ -1,11 +1,10 @@
|
|
|
use std::fs::File;
|
|
|
use std::io::Read;
|
|
|
use rust_decimal::Decimal;
|
|
|
+use rust_decimal_macros::dec;
|
|
|
use toml::from_str;
|
|
|
use serde_derive::Deserialize;
|
|
|
use serde_json::Value;
|
|
|
-use tracing::info;
|
|
|
-
|
|
|
|
|
|
#[derive(Debug, Deserialize, Clone)]
|
|
|
pub struct Params {
|
|
|
@@ -69,18 +68,12 @@ impl Params {
|
|
|
// 打开文件并读取内容
|
|
|
let json_contents = std::fs::read_to_string(file_path)?;
|
|
|
|
|
|
- let json_value: serde_json::Value = serde_json::from_str(&json_contents).unwrap();
|
|
|
+ let json_value: Value = serde_json::from_str(&json_contents).unwrap();
|
|
|
let acc = json_value["account"].clone();
|
|
|
- let mut ref_exchange: Vec<String> = vec![];
|
|
|
- for r in json_value["ref_exchange"].as_array().unwrap() {
|
|
|
- ref_exchange.push(r.as_str().unwrap().to_string())
|
|
|
- }
|
|
|
- let mut ref_pair: Vec<String> = vec![];
|
|
|
- ref_pair.push(json_value["ref_pair"].as_str().unwrap().to_string());
|
|
|
+
|
|
|
// 使用serde_json库来解析JSON文件内容,并将其转换为Ship结构体
|
|
|
// let params: Params = serde_json::from_str(&json_contents)?;
|
|
|
let params: Params = Params {
|
|
|
- broker_id: json_value["broker_id"].as_str().unwrap().to_string(),
|
|
|
account_name: acc["name"].as_str().unwrap().to_string(),
|
|
|
access_key: acc["accessKey"].as_str().unwrap().to_string(),
|
|
|
secret_key: acc["secretKey"].as_str().unwrap().to_string(),
|
|
|
@@ -90,19 +83,20 @@ impl Params {
|
|
|
open: Decimal::try_from(json_value["open"].as_f64().unwrap_or_default()).unwrap(),
|
|
|
close: Decimal::try_from(json_value["close"].as_f64().unwrap_or_default()).unwrap(),
|
|
|
lever_rate: Decimal::try_from(json_value["lever_rate"].as_f64().unwrap_or_default()).unwrap(),
|
|
|
- hold_coin: Decimal::try_from(json_value["lever_rate"].as_f64().unwrap_or_default()).unwrap(),
|
|
|
- interval: json_value["lever_rate"].as_u64().unwrap_or_default(),
|
|
|
- ref_exchange: ref_exchange,
|
|
|
- ref_pair: ref_pair,
|
|
|
- used_pct: Decimal::try_from(json_value["used_pct"].as_f64().unwrap_or_default()).unwrap(),
|
|
|
+ hold_coin: Decimal::try_from(json_value["hold_coin"].as_f64().unwrap_or_default()).unwrap(),
|
|
|
+ ref_exchange: vec![json_value["ref_exchange"].as_str().unwrap().to_string()], // 兼容新版本与老版本
|
|
|
+ ref_pair: vec![json_value["ref_pair"].as_str().unwrap().to_string()], // 兼容新版本与老版本
|
|
|
stop_loss: Decimal::try_from(json_value["stop_loss"].as_f64().unwrap_or_default()).unwrap(),
|
|
|
- gamma: Decimal::try_from(json_value["gamma"].as_f64().unwrap_or_default()).unwrap(),
|
|
|
- grid: json_value["gamma"].as_i64().unwrap_or_default() as i8,
|
|
|
+ grid: json_value["grid"].as_i64().unwrap_or_default() as i8,
|
|
|
colo: json_value["colo"].as_i64().unwrap_or_default() as i8,
|
|
|
- log_level: json_value["log_level"].as_str().unwrap().to_string(),
|
|
|
- port: json_value["colo"].as_u64().unwrap_or_default() as u32,
|
|
|
+ // 接下来是写死的参数
|
|
|
+ interval: 100,
|
|
|
+ broker_id: json_value["exchange"].as_str().unwrap().to_string().split("_").collect::<Vec<_>>()[0].to_string(),
|
|
|
+ used_pct: dec!(1),
|
|
|
+ gamma: dec!(0.999),
|
|
|
+ log_level: "info".to_string(),
|
|
|
+ port: 5555,
|
|
|
};
|
|
|
- // println!("?????????:{:?}。", params);
|
|
|
Ok(params)
|
|
|
}
|
|
|
}
|