| | |
| | | |
| | | __symbol_name_dict = {} |
| | | |
| | | # 系统启动时间 |
| | | system_start_time = tool.get_now_time_str() |
| | | |
| | | |
| | | def get_symbols_names(symbols): |
| | | request_symbols = [] |
| | |
| | | price = tool.get_buy_min_price(price) |
| | | result = local_api.trade_api.sell(code, int(volume), price) |
| | | print("卖出结果:", result) |
| | | print("持仓:", local_api.trade_api.position_by_symbol(symbol)) |
| | | else: |
| | | wx.MessageBox("没有获取到tick数据") |
| | | |
| | |
| | | symbols_names_dict = get_symbols_names([x[0] for x in datas]) |
| | | for data in datas: |
| | | code = data[0].split(".")[1] |
| | | total_volume = data[2] |
| | | available_volume = data[3] |
| | | |
| | | if data[0] in self.deal_dict: |
| | | deal_list = self.deal_dict[data[0]] |
| | | deal_volume = 0 |
| | | if deal_list: |
| | | for d in deal_list: |
| | | if d[1] == 2 and tool.trade_time_sub(d[5], system_start_time) > 0: |
| | | deal_volume += d[3] |
| | | total_volume -= deal_volume |
| | | available_volume -= deal_volume |
| | | |
| | | index = self.list_ctrl_position.InsertItem(self.list_ctrl_position.GetItemCount(), data[0]) |
| | | # 委托量 |
| | | dvolume = 0 |
| | | if data[0] in self.delegates_dict: |
| | | delegates_list = self.delegates_dict[data[0]] |
| | | if delegates_list: |
| | | dvolume = sum([x[3] for x in delegates_list]) |
| | | self.list_ctrl_position.SetItem(index, 8, f'{delegates_list[-1][4]}') |
| | | available_volume -= dvolume |
| | | |
| | | self.list_ctrl_position.SetItem(index, 1, symbols_names_dict.get(data[0])) |
| | | self.list_ctrl_position.SetItem(index, 2, str(round(data[1], 2))) |
| | | self.list_ctrl_position.SetItem(index, 3, str(data[2])) |
| | | self.list_ctrl_position.SetItem(index, 4, str(data[3])) |
| | | self.list_ctrl_position.SetItem(index, 3, str(total_volume)) |
| | | self.list_ctrl_position.SetItem(index, 4, str(available_volume)) |
| | | self.list_ctrl_position.SetItem(index, 5, str(round(data[4], 2))) |
| | | tick = local_api.latest_tick_dict.get(code) |
| | | if tick: |
| | | self.list_ctrl_position.SetItem(index, 6, str(tick[2])) |
| | | else: |
| | | self.list_ctrl_position.SetItem(index, 6, str(data[5])) |
| | | dvolume = 0 |
| | | if data[0] in self.delegates_dict: |
| | | delegates_list = self.delegates_dict[data[0]] |
| | | if delegates_list: |
| | | dvolume = sum([x[3] for x in delegates_list]) |
| | | |
| | | if data[0] in self.deal_dict: |
| | | deal_list = self.deal_dict[data[0]] |
| | | deal_volume = 0 |
| | | if deal_list: |
| | | for d in deal_list: |
| | | if d[1] == 2 and tool.trade_time_sub(d[5], system_start_time) > 0: |
| | | deal_volume += d[3] |
| | | |
| | | self.list_ctrl_position.SetItem(index, 8, f'{delegates_list[-1][4]}') |
| | | |
| | | self.list_ctrl_position.SetItem(index, 7, f'{dvolume}') |
| | |
| | | finally: |
| | | time.sleep(2) |
| | | |
| | | def __get_deal_list(): |
| | | # 获取委托 |
| | | while True: |
| | | try: |
| | | deals = local_api.trade_api.get_execution_reports(blocking=True) |
| | | deals = [(x["symbol"], x["side"], x["price"], x["volume"], x["amount"], |
| | | x["created_at"].strftime('%H:%M:%S')) for x in |
| | | deals] |
| | | deal_dict = {} |
| | | for x in deals: |
| | | if x[0] not in deal_dict: |
| | | deal_dict[x[0]] = [] |
| | | deal_dict[x[0]].append(x) |
| | | self.deal_dict = deal_dict |
| | | # wx.CallAfter(lambda: self.label_limit_up_info.SetLabelText(st)) |
| | | except: |
| | | pass |
| | | finally: |
| | | time.sleep(2) |
| | | |
| | | """ |
| | | 开始任务 |
| | | :return: |
| | |
| | | threading.Thread(target=__show_limit_up_list_info, daemon=True).start() |
| | | threading.Thread(target=__get_positions, daemon=True).start() |
| | | threading.Thread(target=__get_delegates, daemon=True).start() |
| | | threading.Thread(target=__get_deal_list, daemon=True).start() |
| | | |
| | | def __init_data(self): |
| | | |
| | | self.delegates_dict = {} |
| | | self.deal_dict = {} |
| | | logs = log_export.load_system_logs() |
| | | self.system_log_ctrl.Clear() |
| | | for l in logs: |