|
@@ -409,7 +409,7 @@ impl Predictor {
|
|
|
let close_activate = Decimal::ZERO;
|
|
let close_activate = Decimal::ZERO;
|
|
|
if self.fair_rate_focus_close.is_zero() && !self.inventory.is_zero() && close_rate.abs() > close_activate {
|
|
if self.fair_rate_focus_close.is_zero() && !self.inventory.is_zero() && close_rate.abs() > close_activate {
|
|
|
// 多单平仓逻辑
|
|
// 多单平仓逻辑
|
|
|
- if self.inventory > Decimal::ZERO && close_rate > Decimal::ZERO {
|
|
|
|
|
|
|
+ if self.inventory > Decimal::ZERO && close_rate < Decimal::ZERO {
|
|
|
// 是否强干扰平仓
|
|
// 是否强干扰平仓
|
|
|
let target_price = if self.params.is_strong_interfere {
|
|
let target_price = if self.params.is_strong_interfere {
|
|
|
self.pos_avg_price + self.params.open_activate * self.mid_price * self.t_diff * dec!(0.5)
|
|
self.pos_avg_price + self.params.open_activate * self.mid_price * self.t_diff * dec!(0.5)
|
|
@@ -427,7 +427,7 @@ impl Predictor {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 空单平仓逻辑
|
|
// 空单平仓逻辑
|
|
|
- if self.inventory < Decimal::ZERO && close_rate < Decimal::ZERO {
|
|
|
|
|
|
|
+ if self.inventory < Decimal::ZERO && close_rate > Decimal::ZERO {
|
|
|
// 是否强干扰平仓
|
|
// 是否强干扰平仓
|
|
|
let target_price = if self.params.is_strong_interfere {
|
|
let target_price = if self.params.is_strong_interfere {
|
|
|
self.pos_avg_price - self.params.open_activate * self.mid_price * self.t_diff * dec!(0.5)
|
|
self.pos_avg_price - self.params.open_activate * self.mid_price * self.t_diff * dec!(0.5)
|
|
@@ -491,8 +491,8 @@ impl Predictor {
|
|
|
// 可能是接针
|
|
// 可能是接针
|
|
|
let is_open_long = self.fair_rate_focus_open > Decimal::ZERO;
|
|
let is_open_long = self.fair_rate_focus_open > Decimal::ZERO;
|
|
|
let is_open_short = self.fair_rate_focus_open < Decimal::ZERO;
|
|
let is_open_short = self.fair_rate_focus_open < Decimal::ZERO;
|
|
|
- let is_close_long = self.inventory > Decimal::ZERO && self.fair_rate_focus_close > Decimal::ZERO;
|
|
|
|
|
- let is_close_short = self.inventory < Decimal::ZERO && self.fair_rate_focus_close < Decimal::ZERO;
|
|
|
|
|
|
|
+ let is_close_long = self.inventory > Decimal::ZERO && self.fair_rate_focus_close < Decimal::ZERO;
|
|
|
|
|
+ let is_close_short = self.inventory < Decimal::ZERO && self.fair_rate_focus_close > Decimal::ZERO;
|
|
|
|
|
|
|
|
self.bid_delta = dec!(-2);
|
|
self.bid_delta = dec!(-2);
|
|
|
self.ask_delta = dec!(-2);
|
|
self.ask_delta = dec!(-2);
|