| | |
| | | score_index = i |
| | | break |
| | | self.score_index = score_index |
| | | # 只要加入想买单的,全部执行主动买入一星方案 |
| | | if gpcode_manager.WantBuyCodesManager.is_in(code) and self.score_index >= 3: |
| | | self.score_index = 2 |
| | | # 只要加入想买单的,全部执行主动买入二星方案 |
| | | if gpcode_manager.WantBuyCodesManager.is_in(code): |
| | | self.score_index = 1 |
| | | self.is_want_buy = True |
| | | else: |
| | | self.is_want_buy = False |
| | | # 没有加入想买单的,2星/3星将为1星 |
| | | if self.score_index == 0 or self.score_index == 1: |
| | | self.score_index = 2 |
| | | |
| | | self.volume_rate = volume_rate |
| | | self.volume_rate_index = volume_rate_index |
| | |
| | | |
| | | # 获取时间计算范围,返回s |
| | | def get_time_range(self): |
| | | ts = [pow(3, 1), pow(3, 1), pow(3, 1), pow(3, 2), pow(3, 2), pow(3, 3), pow(3, 3), pow(3, 3)] |
| | | # ts = [pow(3, 1), pow(3, 1), pow(3, 1), pow(3, 2), pow(3, 2), pow(3, 3), pow(3, 3), pow(3, 3)] |
| | | ts = [pow(2, 1), pow(2, 1), pow(2, 1), pow(2, 1), pow(2, 1), pow(2, 1), pow(2, 1), pow(2, 1)] |
| | | if -1 < self.score_index < 3: |
| | | return ts[0] |
| | | volume_rate_index = self.volume_rate_index |
| | |
| | | |
| | | # 获取m值 |
| | | def get_m_val(self): |
| | | if self.is_first_code: |
| | | if self.buy_rank == 0: |
| | | return 0, "" |
| | | elif self.buy_rank < 4: |
| | | return 1000 * 10000, "" |
| | | # 获取固定m值 |
| | | zyltgb = global_util.zyltgb_map.get(self.code) |
| | | if zyltgb is None: |
| | | global_data_loader.load_zyltgb() |
| | | zyltgb = global_util.zyltgb_map.get(self.code) |
| | | |
| | | if self.is_first_code: |
| | | if self.buy_rank == 0: |
| | | return 0, "" |
| | | elif self.is_want_buy and zyltgb and zyltgb < 20 * 10000 * 10000: |
| | | # 小于20亿的想买单 |
| | | return 500 * 10000, "" |
| | | elif self.buy_rank < 4: |
| | | return 1000 * 10000, "" |
| | | |
| | | base_m = L2TradeFactorUtil.get_base_safe_val(zyltgb) |
| | | rate = self.get_m_val_rate(self.volume_rate_index) |
| | |
| | | # 获取撤销比例 |
| | | @staticmethod |
| | | def get_cancel_rate(volume_rate_index): |
| | | rates = [0.39, 0.49, 0.59, 0.69, 0.69, 0.79, 0.79, 0.79] |
| | | rates = [0.34, 0.44, 0.54, 0.64, 0.74, 0.84, 0.94, 1.04] |
| | | if volume_rate_index >= len(rates): |
| | | volume_rate_index = -1 |
| | | return rates[volume_rate_index] |