|
|
@@ -366,18 +366,33 @@ impl Predictor {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- // 可能是趋势
|
|
|
- // let is_open_long = self.spread_sma_1000 - self.spread_sma > self.params.open && self.fair_price > self.mid_price;
|
|
|
- // let is_open_short = self.spread_sma_1000 - self.spread_sma < self.params.open * Decimal::NEGATIVE_ONE && self.fair_price < self.mid_price;
|
|
|
// 可能是接针
|
|
|
let is_open_long = self.force_order_value < -self.params.open && self.inventory.is_zero();
|
|
|
let is_open_short = self.force_order_value > self.params.open && self.inventory.is_zero();
|
|
|
- // 对称平仓,方差会非常大
|
|
|
- let is_close_long = self.inventory > Decimal::ZERO && self.force_order_value > self.params.open * dec!(0.8);
|
|
|
- let is_close_short = self.inventory < Decimal::ZERO && self.force_order_value < -self.params.open * dec!(0.8);
|
|
|
- // // 穿越平仓
|
|
|
- // let is_close_long = self.inventory > Decimal::ZERO && self.mid_price_trend_rate > Decimal::ZERO;
|
|
|
- // let is_close_short = self.inventory < Decimal::ZERO && self.mid_price_trend_rate < Decimal::ZERO;
|
|
|
+
|
|
|
+ let (is_close_long, is_close_short) = match self.params.close_difficulty.as_str() {
|
|
|
+ "easy" => {
|
|
|
+ let is_close_long = self.inventory > Decimal::ZERO && self.force_order_value > Decimal::ZERO;
|
|
|
+ let is_close_short = self.inventory < Decimal::ZERO && self.force_order_value < Decimal::ZERO;
|
|
|
+
|
|
|
+ (is_close_long, is_close_short)
|
|
|
+ },
|
|
|
+ "normal" => {
|
|
|
+ let is_close_long = self.inventory > Decimal::ZERO && self.force_order_value > self.params.open * dec!(0.8);
|
|
|
+ let is_close_short = self.inventory < Decimal::ZERO && self.force_order_value < -self.params.open * dec!(0.8);
|
|
|
+
|
|
|
+ (is_close_long, is_close_short)
|
|
|
+ },
|
|
|
+ "hard" => {
|
|
|
+ let is_close_long = self.inventory > Decimal::ZERO && self.force_order_value > self.params.open;
|
|
|
+ let is_close_short = self.inventory < Decimal::ZERO && self.force_order_value < -self.params.open;
|
|
|
+
|
|
|
+ (is_close_long, is_close_short)
|
|
|
+ }
|
|
|
+ _ => {
|
|
|
+ panic!("错误的平仓条件:{}", self.params.close_difficulty)
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
self.bid_delta = dec!(-2);
|
|
|
self.ask_delta = dec!(-2);
|