From 46b13281c1c57d5708aa3f2a54281f30258c5e04 Mon Sep 17 00:00:00 2001 From: lhr <lhr@example.com> Date: 星期二, 02 七月 2024 10:29:45 +0800 Subject: [PATCH] Merge branch 'master' of http://193.112.35.168:10101/r/gp_low_suction --- gui.py | 62 ++++++++++++++++++------------ 1 files changed, 37 insertions(+), 25 deletions(-) diff --git a/gui.py b/gui.py index 1bb6914..19c0dd2 100644 --- a/gui.py +++ b/gui.py @@ -1,3 +1,4 @@ +import copy import threading import time @@ -173,7 +174,7 @@ if index < 0: return self.label_sell_code.SetLabel(self.positions[index][0]) - self.label_sell_avaiable_volume.SetLabel(str(self.positions[index][3])) + self.label_sell_avaiable_volume.SetLabel(str(self.__compute_available_volume(self.positions[index]))) sell_percent = gui_util.GuiViewManager.get_sell_volume_percent() self.edit_sell_volume.SetValue(str(self.positions[index][3] // sell_percent // 100 * 100)) @@ -207,6 +208,39 @@ print("鎸佷粨锛�", local_api.trade_api.position_by_symbol(symbol)) else: wx.MessageBox("娌℃湁鑾峰彇鍒皌ick鏁版嵁") + + def __compute_available_volume(self, data): + """ + 璁$畻鍙敤閲忥細鎬婚噺-濮旀墭閲� + :param data: + :return: + """ + available_volume = self.__compute_total_volume(data) + # 濮旀墭閲� + 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]) + available_volume -= dvolume + return available_volume + + def __compute_total_volume(self, data): + """ + 璁$畻鎬婚噺 + :param data: + :return: + """ + total_volume = copy.deepcopy(data[2]) + 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 + return total_volume def __start_task(self): def __show_blocks(): @@ -242,19 +276,8 @@ 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 - + total_volume = self.__compute_total_volume(data) + available_volume = self.__compute_available_volume(data) index = self.list_ctrl_position.InsertItem(self.list_ctrl_position.GetItemCount(), data[0]) # 濮旀墭閲� dvolume = 0 @@ -263,7 +286,6 @@ 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))) @@ -275,16 +297,6 @@ self.list_ctrl_position.SetItem(index, 6, str(tick[2])) else: self.list_ctrl_position.SetItem(index, 6, str(data[5])) - - 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}') -- Gitblit v1.8.0