|
|
@@ -21,7 +21,10 @@ mod kucoin_swap;
|
|
|
pub mod kucoin_handle;
|
|
|
pub mod handle_info;
|
|
|
|
|
|
-///
|
|
|
+/// 持仓模式枚举
|
|
|
+/// - `Both`:单持仓方向
|
|
|
+/// - `LONG`:多仓
|
|
|
+/// - `SHORT`:空仓
|
|
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
|
pub enum PositionModeEnum {
|
|
|
Both,
|
|
|
@@ -29,15 +32,6 @@ pub enum PositionModeEnum {
|
|
|
Short,
|
|
|
}
|
|
|
|
|
|
-#[derive(Debug, Clone, PartialEq, Eq)]
|
|
|
-pub enum OrderCommandEnum {
|
|
|
- Cancel,
|
|
|
- Limits,
|
|
|
- Check,
|
|
|
- LimitsOpen,
|
|
|
- LimitsClose,
|
|
|
-}
|
|
|
-
|
|
|
/// OrderCommand结构体(下单指令)
|
|
|
/// - `cancel(HashMap<String, Vec<String>)`: 取消订单指令 `{"order_name": [c_id, o_id]}`;
|
|
|
/// - `check(HashMap<String, Vec<String>>)`: balance挂单的冻结数量 `{"order_name": [数量,方向,价格,c_id]}`;
|
|
|
@@ -111,6 +105,16 @@ pub struct Depth {
|
|
|
pub bids: Vec<MarketOrder>,
|
|
|
}
|
|
|
|
|
|
+impl Depth {
|
|
|
+ pub fn new() -> Depth {
|
|
|
+ Depth {
|
|
|
+ time: 0,
|
|
|
+ asks: vec![],
|
|
|
+ bids: vec![],
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/// 特殊Depth结构体(市场深度)
|
|
|
/// - `name<String>`: 平台信息;
|
|
|
/// - `depth(Vec<Decimal>)`: 深度信息;
|
|
|
@@ -122,6 +126,16 @@ pub struct SpecialDepth {
|
|
|
pub ticker: SpecialTicker,
|
|
|
}
|
|
|
|
|
|
+impl SpecialDepth {
|
|
|
+ pub fn new() -> SpecialDepth {
|
|
|
+ SpecialDepth {
|
|
|
+ name: "".to_string(),
|
|
|
+ depth: vec![],
|
|
|
+ ticker: SpecialTicker::new(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/// 特殊Ticker结构体(市场行情)
|
|
|
/// - `sell(Decimal)`: 卖一价
|
|
|
/// - `buy(Decimal)`: 买一价
|
|
|
@@ -133,6 +147,15 @@ pub struct SpecialTicker {
|
|
|
pub mid_price: Decimal,
|
|
|
}
|
|
|
|
|
|
+impl SpecialTicker {
|
|
|
+ pub fn new() -> SpecialTicker {
|
|
|
+ SpecialTicker {
|
|
|
+ sell: Default::default(),
|
|
|
+ buy: Default::default(),
|
|
|
+ mid_price: Default::default(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
/// MarketOrder结构体(市场深度单)
|
|
|
/// - `price(Decimal)`: 价格
|
|
|
@@ -143,6 +166,15 @@ pub struct MarketOrder {
|
|
|
pub amount: Decimal,
|
|
|
}
|
|
|
|
|
|
+impl MarketOrder {
|
|
|
+ pub fn new() -> MarketOrder {
|
|
|
+ MarketOrder {
|
|
|
+ price: Default::default(),
|
|
|
+ amount: Default::default(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/// Record结构体(标准的OHLC结构)
|
|
|
/// - `time(i64)`: 时间戳;
|
|
|
/// - `open(Decimal)`: 开盘价;
|
|
|
@@ -160,6 +192,19 @@ pub struct Record {
|
|
|
pub volume: Decimal,
|
|
|
}
|
|
|
|
|
|
+impl Record {
|
|
|
+ pub fn new() -> Record {
|
|
|
+ Record {
|
|
|
+ time: 0,
|
|
|
+ open: Default::default(),
|
|
|
+ high: Default::default(),
|
|
|
+ low: Default::default(),
|
|
|
+ close: Default::default(),
|
|
|
+ volume: Default::default(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/// 特殊Order结构体(订单)
|
|
|
/// - `name<String>`: 平台信息;
|
|
|
/// - `order<Vec<Order>>`: 订单信息数组;
|
|
|
@@ -169,6 +214,15 @@ pub struct SpecialOrder {
|
|
|
pub order: Vec<Order>,
|
|
|
}
|
|
|
|
|
|
+impl SpecialOrder {
|
|
|
+ pub fn new() -> SpecialOrder {
|
|
|
+ SpecialOrder {
|
|
|
+ name: "".to_string(),
|
|
|
+ order: vec![],
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/// Order结构体(订单)
|
|
|
/// - `id(String)`: 交易单唯一标识
|
|
|
/// - `custom_id(String)`: 自定义Id
|
|
|
@@ -190,6 +244,21 @@ pub struct Order {
|
|
|
pub order_type: String,
|
|
|
}
|
|
|
|
|
|
+impl Order {
|
|
|
+ pub fn new() -> Order {
|
|
|
+ Order {
|
|
|
+ id: "".to_string(),
|
|
|
+ custom_id: "".to_string(),
|
|
|
+ price: Default::default(),
|
|
|
+ amount: Default::default(),
|
|
|
+ deal_amount: Default::default(),
|
|
|
+ avg_price: Default::default(),
|
|
|
+ status: "".to_string(),
|
|
|
+ order_type: "".to_string(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/// Ticker结构体(市场行情)
|
|
|
/// - `time(i64)`: 毫秒级别时间戳
|
|
|
/// - `high(Decimal)`: 最高价
|
|
|
@@ -209,6 +278,20 @@ pub struct Ticker {
|
|
|
pub volume: Decimal,
|
|
|
}
|
|
|
|
|
|
+impl Ticker {
|
|
|
+ pub fn new() -> Ticker {
|
|
|
+ Ticker {
|
|
|
+ time: 0,
|
|
|
+ high: Default::default(),
|
|
|
+ low: Default::default(),
|
|
|
+ sell: Default::default(),
|
|
|
+ buy: Default::default(),
|
|
|
+ last: Default::default(),
|
|
|
+ volume: Default::default(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/// Market结构体(交易品种的市场信息)
|
|
|
/// - `symbol(String)`: 交易对
|
|
|
/// - `base_asset(String)`: 交易币
|
|
|
@@ -278,6 +361,21 @@ pub struct Position {
|
|
|
pub margin: Decimal,
|
|
|
}
|
|
|
|
|
|
+impl Position {
|
|
|
+ pub fn new() -> Position {
|
|
|
+ Position {
|
|
|
+ symbol: "".to_string(),
|
|
|
+ margin_level: Default::default(),
|
|
|
+ amount: Default::default(),
|
|
|
+ frozen_amount: Default::default(),
|
|
|
+ price: Default::default(),
|
|
|
+ profit: Default::default(),
|
|
|
+ position_mode: PositionModeEnum::Both,
|
|
|
+ margin: Default::default(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/// 交易所统一方法接口
|
|
|
///
|
|
|
/// 使用方法前需实例化
|