| | |
| | | """ |
| | | |
| | | # l2交易因子 |
| | | import functools |
| | | |
| | | import big_money_num_manager |
| | | import global_data_loader |
| | | import global_util |
| | | import limit_up_time_manager |
| | | import trade_data_manager |
| | | |
| | | |
| | | class L2TradeFactorUtil: |
| | |
| | | break |
| | | if rate > 0.9: |
| | | rate = 0.9 |
| | | return round(rate,4) |
| | | return round(rate, 4) |
| | | |
| | | # 获取量影响比例 |
| | | @classmethod |
| | |
| | | def get_safe_buy_count(cls, code): |
| | | gb = cls.get_zyltgb(code) |
| | | if not gb: |
| | | # 默认10笔 |
| | | # 默认8笔 |
| | | return 8 |
| | | count = gb // 100000000 - 2 |
| | | if count > 30: |
| | | count = 30 |
| | | elif count < 3: |
| | | count = 3 |
| | | count = gb // 100000000 |
| | | if count <= 6: |
| | | count = 8 |
| | | elif count < 32: |
| | | count = round(8 + 0.5 * (count - 6)) |
| | | else: |
| | | count = 21 |
| | | |
| | | volumn_day60_max, volumn_yest, volumn_today = cls.__get_volumns(code) |
| | | rate = cls.get_volumn_rate(volumn_day60_max, volumn_yest, volumn_today) |
| | | # 取大单影响值与行业影响值的较大值 |
| | | count = round(count * (1 - rate)) |
| | | if count < 3: |
| | | count = 3 |
| | | elif count > 30: |
| | | count = 30 |
| | | if count < 8: |
| | | count = 8 |
| | | elif count > 21: |
| | | count = 21 |
| | | return count |
| | | |
| | | |
| | |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | print(L2TradeFactorUtil.get_industry_rate(10)) |
| | | print(L2TradeFactorUtil.get_safe_buy_count("003005")) |
| | | # print(L2TradeFactorUtil.get_rate_factors("003004")) |
| | | # print(L2TradeFactorUtil.factors_to_string("003004")) |
| | | # print(L2TradeFactorUtil.get_safe_buy_count("002864")) |
| | | print(L2TradeFactorUtil.get_safe_buy_count("002864")) |
| | | # print(L2TradeFactorUtil.get_limit_up_time_rate("11:30:00")) |
| | | # print(L2TradeFactorUtil.get_limit_up_time_rate("13:00:00")) |
| | | # print(L2TradeFactorUtil.get_limit_up_time_rate("13:48:00")) |