|
|
@@ -178,9 +178,9 @@ impl AvellanedaStoikov {
|
|
|
// let s_upper = (a1.price - b1.price) / mid;
|
|
|
// let f_t = Decimal::ZERO;
|
|
|
// let s = (s_upper + f_t) / Decimal::TWO;
|
|
|
-
|
|
|
+ //
|
|
|
// let a_upper_t = dec!(0.6);
|
|
|
- // let c_t = dec!(0.4);
|
|
|
+ // let c_t = dec!(0);
|
|
|
// let theta = a_upper_t * s + c_t;
|
|
|
// let fair_price = mid + theta * (i_upper * (i_upper.powd(Decimal::TWO) + Decimal::ONE)) / Decimal::TWO;
|
|
|
|
|
|
@@ -227,7 +227,7 @@ impl AvellanedaStoikov {
|
|
|
}
|
|
|
|
|
|
pub fn update_sigma_square(&mut self) {
|
|
|
- self.sigma_square = self.spread_max * dec!(0.5);
|
|
|
+ self.sigma_square = self.spread_max * dec!(0.3);
|
|
|
self.sigma_square.rescale(10);
|
|
|
}
|
|
|
|
|
|
@@ -270,12 +270,12 @@ impl AvellanedaStoikov {
|
|
|
|
|
|
pub fn update_optimal_ask_and_bid(&mut self) {
|
|
|
self.optimal_ask_price = if self.ask_delta == Decimal::NEGATIVE_ONE {
|
|
|
- self.ref_price
|
|
|
+ self.fair_price_vec[0]
|
|
|
} else {
|
|
|
max(self.ref_price + self.ask_delta, self.ask_price)
|
|
|
};
|
|
|
self.optimal_bid_price = if self.bid_delta == Decimal::NEGATIVE_ONE {
|
|
|
- self.ref_price
|
|
|
+ self.fair_price_vec[0]
|
|
|
} else {
|
|
|
min(self.ref_price - self.bid_delta, self.bid_price)
|
|
|
};
|