|
|
@@ -316,7 +316,6 @@ impl Quant {
|
|
|
if data.status == "NEW" {
|
|
|
// 更新oid信息 更新订单 loceltime信息(尤其是查单返回new的情况 必须更新 否则会误触发风控)
|
|
|
if self.local_orders.contains_key(&data.client_id) {
|
|
|
- info!(?data);
|
|
|
let mut order_info = self.local_orders.get(&data.client_id).unwrap().clone();
|
|
|
order_info.order_id = data.order_id;
|
|
|
order_info.local_time = Utc::now().timestamp_millis();
|
|
|
@@ -329,7 +328,7 @@ impl Quant {
|
|
|
}
|
|
|
// TODO 本地收到移除动作之后,会去继续撤销指定订单,有逻辑问题.
|
|
|
if self.local_orders.contains_key(&data.client_id) {
|
|
|
- debug!("删除本地订单, client_id:{}", data.client_id);
|
|
|
+ info!("删除本地订单, client_id:{}", data.client_id);
|
|
|
self.local_orders.remove(&data.client_id);
|
|
|
} else {
|
|
|
debug!("该订单不在本地挂单表中, client_id:{}", data.client_id);
|
|
|
@@ -1185,7 +1184,6 @@ pub async fn run_transaction(quant_arc: Arc<Mutex<Quant>>, name: String, symbols
|
|
|
loop {
|
|
|
match rx.recv().await {
|
|
|
Some(data) => {
|
|
|
- debug!(?data);
|
|
|
if data.code != "200".to_string() {
|
|
|
continue;
|
|
|
}
|
|
|
@@ -1204,33 +1202,23 @@ pub async fn run_transaction(quant_arc: Arc<Mutex<Quant>>, name: String, symbols
|
|
|
quant.update_equity(account);
|
|
|
}
|
|
|
} else if data.channel == "futures.orders" {
|
|
|
- let orders = standard::gate_handle::handle_order(data, multiplier.clone());
|
|
|
+ let orders = standard::gate_handle::handle_order(data.clone(), multiplier.clone());
|
|
|
let mut order_infos:Vec<OrderInfo> = Vec::new();
|
|
|
for order in orders.order {
|
|
|
- if order.deal_amount != Decimal::ZERO {
|
|
|
- info!(?order);
|
|
|
- }
|
|
|
-
|
|
|
- let mut order_info = OrderInfo{
|
|
|
+ let mut order_info = OrderInfo {
|
|
|
symbol: "".to_string(),
|
|
|
- amount: Default::default(),
|
|
|
+ amount: order.amount.abs(),
|
|
|
side: "".to_string(),
|
|
|
- price: Default::default(),
|
|
|
+ price: order.price,
|
|
|
client_id: order.custom_id,
|
|
|
- filled_price: Default::default(),
|
|
|
- filled: Default::default(),
|
|
|
+ filled_price: order.avg_price,
|
|
|
+ filled: order.deal_amount.abs(),
|
|
|
order_id: order.id,
|
|
|
local_time: 0,
|
|
|
create_time: 0,
|
|
|
status: order.status,
|
|
|
fee: Default::default(),
|
|
|
};
|
|
|
- if "REMOVE" == order_info.status {
|
|
|
- order_info.amount = order.amount.abs();
|
|
|
- order_info.price = order.price;
|
|
|
- order_info.filled = order.deal_amount.abs();
|
|
|
- order_info.filled_price = order.avg_price;
|
|
|
- }
|
|
|
order_infos.push(order_info);
|
|
|
}
|
|
|
{
|