| | |
| | | import json |
| | | import logging |
| | | import time as t |
| | | |
| | | import numpy |
| | | import schedule |
| | | |
| | | import gm.api as gmapi |
| | |
| | | |
| | | |
| | | # 获取到现价 |
| | | def accpt_prices(prices): |
| | | def accept_prices(prices): |
| | | print("价格代码数量:", len(prices)) |
| | | __actualPriceProcessor.save_current_price_codes_count(len(prices)) |
| | | # 采集的代码数量不对 |
| | |
| | | return data |
| | | |
| | | @staticmethod |
| | | def get_now_price(codes): |
| | | data = JueJinManager.get_gp_current_info(codes) |
| | | prices = [] |
| | | for item in data: |
| | | code = item["symbol"].split(".")[1] |
| | | price = item["price"] |
| | | prices.append((code, price)) |
| | | return prices |
| | | |
| | | # 获取代码的涨幅 |
| | | @staticmethod |
| | | def get_codes_limit_rate(codes): |
| | | datas = JueJinManager.get_gp_latest_info(codes) |
| | | pre_price_dict = {} |
| | | for data in datas: |
| | | code = data["sec_id"] |
| | | pre_close = tool.to_price(decimal.Decimal(str(data['pre_close']))) |
| | | pre_price_dict[code] = pre_close |
| | | |
| | | now_prices = JueJinManager.get_now_price(codes) |
| | | f_results = [] |
| | | for data in now_prices: |
| | | code = data[0] |
| | | price = data[1] |
| | | pre_price = float(pre_price_dict.get(code)) |
| | | rate = round((price - pre_price) * 100 / pre_price, 2) |
| | | f_results.append((code, rate)) |
| | | f_results.sort(key=lambda tup: tup[1]) |
| | | f_results.reverse() |
| | | return f_results |
| | | |
| | | @staticmethod |
| | | def get_gp_current_info(codes): |
| | | account_id, s_id, token = getAccountInfo() |
| | | symbols = gpcode_manager.get_gp_list_with_prefix(codes) |
| | |
| | | return _fresult |
| | | |
| | | |
| | | # 根据涨幅高低分配交易窗口 |
| | | def distribute_buy_win(): |
| | | if tool.trade_time_sub(tool.get_now_time_str(),"09:30:00") > 0: |
| | | raise Exception("只能9:30之前重新分配窗口") |
| | | |
| | | datas = JueJinManager.get_codes_limit_rate(gpcode_manager.get_gp_list()) |
| | | matrix = numpy.array(datas) |
| | | codes = matrix[:, 0].tolist() |
| | | trade_gui.THSBuyWinManagerNew.fill_codes(codes) |
| | | |
| | | |
| | | if __name__ == '__main__': |
| | | everyday_init() |
| | | distribute_buy_win() |