|
@@ -332,15 +332,16 @@ impl AvellanedaStoikov {
|
|
|
// let v0_rate = self.volume_vec[0] / (self.volume_vec[0] + self.volume_vec[1]);
|
|
// let v0_rate = self.volume_vec[0] / (self.volume_vec[0] + self.volume_vec[1]);
|
|
|
// let v1_rate = self.volume_vec[1] / (self.volume_vec[0] + self.volume_vec[1]);
|
|
// let v1_rate = self.volume_vec[1] / (self.volume_vec[0] + self.volume_vec[1]);
|
|
|
|
|
|
|
|
- let sma = self.depth_vec[1].asks[0].price;
|
|
|
|
|
- let smb = self.depth_vec[1].bids[0].price;
|
|
|
|
|
|
|
+ // let sma = self.depth_vec[1].asks[0].price;
|
|
|
|
|
+ // let smb = self.depth_vec[1].bids[0].price;
|
|
|
|
|
|
|
|
- let mp0 = self.mid_price;
|
|
|
|
|
- let mp1 = (sma + smb) / Decimal::TWO;
|
|
|
|
|
|
|
+ // let mp0 = self.mid_price;
|
|
|
|
|
+ // let mp1 = (sma + smb) / Decimal::TWO;
|
|
|
|
|
|
|
|
- let price_diff = mp0 - mp1;
|
|
|
|
|
|
|
+ // let price_diff = mp0 - mp1;
|
|
|
|
|
|
|
|
- self.ref_price = (self.fair_price_vec[0] + self.fair_price_vec[1] + price_diff) / Decimal::TWO;
|
|
|
|
|
|
|
+ // self.ref_price = (self.fair_price_vec[0] + self.fair_price_vec[1] + price_diff) / Decimal::TWO;
|
|
|
|
|
+ self.ref_price = (self.fair_price_vec[0] + self.fair_price_vec[1]) / Decimal::TWO;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -350,14 +351,14 @@ impl AvellanedaStoikov {
|
|
|
|
|
|
|
|
self.base_delta = self.sigma_square;
|
|
self.base_delta = self.sigma_square;
|
|
|
|
|
|
|
|
- self.bid_delta = self.base_delta;
|
|
|
|
|
|
|
+ self.bid_delta = self.base_delta * Decimal::TWO;
|
|
|
self.ask_delta = self.base_delta;
|
|
self.ask_delta = self.base_delta;
|
|
|
|
|
|
|
|
- // if self.inventory > Decimal::ZERO && self.flow_ratio > Decimal::ZERO {
|
|
|
|
|
- // self.ask_delta = self.base_delta * dec!(0.8);
|
|
|
|
|
- // // self.ask_delta = Decimal::NEGATIVE_ONE;
|
|
|
|
|
- // }
|
|
|
|
|
- // else if self.money_flow_index == Decimal::ZERO {
|
|
|
|
|
|
|
+ if self.money_flow_index < dec!(50) {
|
|
|
|
|
+ self.bid_delta = self.base_delta;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // else if self.flow_ratio.is_zero() {
|
|
|
// self.bid_delta = self.base_delta * dec!(0.8);
|
|
// self.bid_delta = self.base_delta * dec!(0.8);
|
|
|
// // self.bid_delta = Decimal::NEGATIVE_ONE;
|
|
// // self.bid_delta = Decimal::NEGATIVE_ONE;
|
|
|
// }
|
|
// }
|
|
@@ -499,7 +500,7 @@ impl AvellanedaStoikov {
|
|
|
kappa: self.flow_ratio,
|
|
kappa: self.flow_ratio,
|
|
|
|
|
|
|
|
flow_ratio: Decimal::ZERO,
|
|
flow_ratio: Decimal::ZERO,
|
|
|
- ref_price: self.fair_price_vec[0],
|
|
|
|
|
|
|
+ ref_price: self.ref_price,
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|