| | |
| | | |
| | | def re_set_price_pres(codes, force=False): |
| | | # 通过历史数据缓存获取 |
| | | result = HistoryKDatasUtils.get_gp_latest_info(codes) |
| | | for item in result: |
| | | symbol = item['symbol'] |
| | | symbol = symbol.split(".")[1] |
| | | pre_close = tool.to_price(decimal.Decimal(str(item['pre_close']))) |
| | | gpcode_manager.CodePrePriceManager.set_price_pre(symbol, pre_close, force) |
| | | for code in codes: |
| | | result = HistoryKDatasUtils.get_history_tick_n(code, 1) |
| | | for item in result: |
| | | symbol = item['symbol'] |
| | | symbol = symbol.split(".")[1] |
| | | pre_close = tool.to_price(decimal.Decimal(str(item['close']))) |
| | | gpcode_manager.CodePrePriceManager.set_price_pre(symbol, pre_close, force) |
| | | |
| | | |
| | | # 获取近90天的最大量与最近的量 |
| | |
| | | "%Y-%m-%d"), refer_index |
| | | |
| | | |
| | | def parse_max_volume_new(code, datas): |
| | | """ |
| | | 计算远高量 |
| | | @param code: |
| | | @param datas: |
| | | @return: [高量,高量,高量日期,高量索引] |
| | | """ |
| | | |
| | | def __is_limited_up(item): |
| | | limit_up_price = float(gpcode_manager.get_limit_up_price_by_preprice(code, item["pre_close"])) |
| | | if abs(limit_up_price - item["high"]) < 0.001: |
| | | return True |
| | | return False |
| | | |
| | | # 取最近60个交易日 |
| | | datas = datas[:60] |
| | | |
| | | # 判断是否涨停过 |
| | | target_index = None |
| | | for i in range(len(datas)): |
| | | data = datas[i] |
| | | if __is_limited_up(data): |
| | | next_data = None |
| | | if i > 0: |
| | | next_data = datas[i - 1] |
| | | # max(涨停这一天, 后一天)的量 |
| | | if next_data and next_data['volume'] > data['volume']: |
| | | target_index = i - 1 |
| | | else: |
| | | target_index = i |
| | | break |
| | | if target_index is None: |
| | | # 60天未涨停,获取60天内的最高量 |
| | | for i in range(len(datas)): |
| | | data = datas[i] |
| | | if target_index is None: |
| | | target_index = i |
| | | if data['volume'] > datas[target_index]['volume']: |
| | | target_index = i |
| | | return datas[target_index]['volume'], datas[target_index]['volume'], datas[target_index]['bob'].strftime( |
| | | "%Y-%m-%d"), target_index |
| | | |
| | | |
| | | def parse_max_volume_in_days(datas, max_day): |
| | | """ |
| | | 解析最近几天最大的量 |