|
|
@@ -273,7 +273,7 @@ impl Predictor {
|
|
|
self.fair_price_vec[index] = if self.fair_price_vec[index].is_zero() {
|
|
|
fair_price
|
|
|
} else {
|
|
|
- self.fair_price_vec[index] * dec!(0.95) + fair_price * dec!(0.05)
|
|
|
+ self.fair_price_vec[index] * dec!(0.9) + fair_price * dec!(0.1)
|
|
|
};
|
|
|
self.fair_price_vec[index].rescale(self.mid_price.scale());
|
|
|
self.volume_vec[index] = a1.size + b1.size;
|
|
|
@@ -344,8 +344,8 @@ impl Predictor {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- let is_open_long = self.spread > self.params.open;
|
|
|
- let is_open_short = self.spread < self.params.open * Decimal::NEGATIVE_ONE;
|
|
|
+ let is_open_long = self.spread_sma_1000 - self.spread_sma > self.params.open;
|
|
|
+ let is_open_short = self.spread_sma_1000 - self.spread_sma < self.params.open * Decimal::NEGATIVE_ONE;
|
|
|
let is_close_long = self.inventory > Decimal::ZERO;
|
|
|
let is_close_short = self.inventory < Decimal::ZERO;
|
|
|
|
|
|
@@ -375,14 +375,14 @@ impl Predictor {
|
|
|
self.bid_delta = self.mid_price * self.params.close;
|
|
|
}
|
|
|
} else if is_open_long {
|
|
|
- let is_open_long_market = (self.fair_price - self.mid_price) / self.mid_price > self.params.open_market;
|
|
|
+ let is_open_long_market = self.spread_sma_1000 - self.spread_sma > self.params.open_market;
|
|
|
self.bid_delta = if is_open_long_market {
|
|
|
dec!(-1)
|
|
|
} else {
|
|
|
dec!(0)
|
|
|
};
|
|
|
} else if is_open_short {
|
|
|
- let is_open_short_market = (self.mid_price - self.fair_price) / self.mid_price > self.params.open_market;
|
|
|
+ let is_open_short_market = self.spread_sma_1000 - self.spread_sma < self.params.open_market * Decimal::NEGATIVE_ONE;
|
|
|
self.ask_delta = if is_open_short_market {
|
|
|
dec!(-1)
|
|
|
} else {
|