| | |
| | | import settings |
| | | from juejin import JueJinManager |
| | | from l2_code_operate import L2CodeOperate |
| | | from trade import l2_trade_util |
| | | from trade import l2_trade_util, trade_juejin |
| | | from trade.l2_trade_factor import L2TradeFactorUtil |
| | | from ocr import ocr_server |
| | | from third_data import data_server, kpl_data_manager, kpl_util |
| | |
| | | t1.setDaemon(True) |
| | | t1.start() |
| | | |
| | | |
| | | |
| | | laddr = "", 9001 |
| | | tcpserver = MyThreadingTCPServer(laddr, MyBaseRequestHandle, pipe_juejin=pipe_juejin) # 注意:参数是MyBaseRequestHandle |
| | | # tcpserver.handle_request() # 只接受一个客户端连接 |
| | |
| | | tcpserver = ocr_server.run("", 9002) |
| | | tcpserver.serve_forever() |
| | | |
| | | |
| | | def createDataServer(): |
| | | print("create OCRServer") |
| | | tcpserver = data_server.run("", 9004) |
| | | tcpserver.serve_forever() |
| | | |
| | | |
| | | def startJueJin(pipe): |
| | | juejin.JueJinManager(pipe).start() |
| | |
| | | |
| | | self.serverProcess = multiprocessing.Process(target=createServer, args=(p1, gs_server_pipe,)) |
| | | self.jueJinProcess = multiprocessing.Process(target=startJueJin, args=(p2,)) |
| | | self.jueJinTradeProcess = multiprocessing.Process(target=trade_juejin.run) |
| | | self.ocrServerProcess = multiprocessing.Process(target=createOCRServer) |
| | | |
| | | |
| | | self.p1 = p1 |
| | | self.p2 = p2 |
| | |
| | | self.jueJinProcess.start() |
| | | self.serverProcess.start() |
| | | self.ocrServerProcess.start() |
| | | self.jueJinTradeProcess.start() |
| | | |
| | | L2CodeOperate.get_instance() |
| | | # 客户端队列操作 |
| | |
| | | # table.model.setValueAt(data["apply_time"], index, 2) |
| | | index += 1 |
| | | table.redraw() |
| | | |
| | | # 刷新开盘啦数据 |
| | | def refresh_kpl_data(): |
| | | kpl_data_manager.KPLDataManager().get_data(kpl_util.KPLDataType.LIMIT_UP) |
| | |
| | | kpl_data_manager.KPLDataManager().get_data(kpl_util.KPLDataType.BEST_FENG_KOU) |
| | | kpl_data_manager.KPLDataManager().get_data(kpl_util.KPLDataType.FENG_KOU) |
| | | kpl_data_manager.KPLDataManager().get_data(kpl_util.KPLDataType.FENG_XIANG) |
| | | |
| | | |
| | | start_y = 225 |
| | | btn = FlatButton(frame, text="刷新收盘价", command=refresh_close_price_data) |
| | |
| | | |
| | | btn = FlatButton(frame, text="重新获取收盘价", command=re_get_close_price) |
| | | btn.place(x=80, y=start_y) |
| | | kpl_data = Label(text="涨停:\n炸板:\n最强:\n风向:\n风口:",bg="#DDDDDD",fg="#666666") |
| | | kpl_data = Label(text="涨停:\n炸板:\n最强:\n风向:\n风口:", bg="#DDDDDD", fg="#666666") |
| | | kpl_data.place(x=190, y=start_y) |
| | | |
| | | trade_win_datas = [] |
| | |
| | | width = 800 |
| | | height = 360 |
| | | frame = Frame(root, {"height": height, "width": width, "bg": "#DDDDDD"}) |
| | | trade_info= "" |
| | | trade_info = "" |
| | | for_color = "#008000" |
| | | if constant.TEST: |
| | | trade_info += "测试环境" |
| | |
| | | trade_info += "初始禁止交易" |
| | | for_color = "#FF7F27" |
| | | |
| | | cl = Label(frame, text=f"{trade_info}", bg="#DDDDDD",foreground=f"{for_color}") |
| | | cl = Label(frame, text=f"{trade_info}", bg="#DDDDDD", foreground=f"{for_color}") |
| | | cl.place(x=5, y=5) |
| | | |
| | | accept_l2 = IntVar() |
| | |
| | | menu.add_command(label="环境检测", command=check_env) |
| | | menu.add_command(label="同花顺测速", command=ths_test_speed) |
| | | |
| | | device_index =0 |
| | | device_index = 0 |
| | | for key in self.l2_codes: |
| | | device_index += 1 |
| | | client_lb = Label(frame, text="设备:{} ID:{}".format(device_index,key), background="#DDDDDD") |
| | | client_lb = Label(frame, text="设备:{} ID:{}".format(device_index, key), background="#DDDDDD") |
| | | client_lb.place(x=38, y=40 + l2_client_count * 30) |
| | | btn = FlatButton(frame, text="检测", command=key) |
| | | btn.bind('<Button-3>', lambda event: pop_menu(event)) |
| | |
| | | index = 0 |
| | | for data in datas: |
| | | table_trade.model.addRow() |
| | | table_trade.model.setValueAt(data["code"], index, 0) |
| | | table_trade.model.setValueAt(data["time"], index, 1) |
| | | table_trade.model.setValueAt(data["num"], index, 2) |
| | | table_trade.model.setValueAt(data["price"], index, 3) |
| | | table_trade.model.setValueAt(data["money"], index, 4) |
| | | table_trade.model.setValueAt(data["trade_num"], index, 5) |
| | | if int(data["type"]) > 0: |
| | | table_trade.model.setValueAt("卖出", index, 6) |
| | | table_trade.model.setValueAt("卖出", index, 0) |
| | | else: |
| | | table_trade.model.setValueAt("买入", index, 6) |
| | | table_trade.model.setValueAt("买入", index, 0) |
| | | table_trade.model.setValueAt(data["code"], index, 1) |
| | | table_trade.model.setValueAt(data["time"], index, 2) |
| | | table_trade.model.setValueAt(data["num"], index, 3) |
| | | table_trade.model.setValueAt(data["price"], index, 4) |
| | | table_trade.model.setValueAt(data["money"], index, 5) |
| | | table_trade.model.setValueAt(data["trade_num"], index, 6) |
| | | |
| | | index += 1 |
| | | table_trade.redraw() |
| | | |
| | |
| | | cl.place(x=width - 70, y=30) |
| | | |
| | | trade_datas = {} |
| | | trade_datas["row{}".format(0)] = {'证券代码': '', '成交时间': '', '成交数量': '', '成交均价': '', '成交金额': '', |
| | | '合同编号': '', '操作': ''} |
| | | trade_datas["row{}".format(0)] = {'方向': '', '证券代码': '', '成交时间': '', '成交数量': '', '成交均价': '', '成交金额': '', |
| | | '合同编号': ''} |
| | | |
| | | table_frame = Frame(frame, {"height": table_height, "width": table_width, "bg": "#DDDDDD"}) |
| | | table_frame.place(x=width / 2, y=52) |
| | | table_trade = create_table(table_frame, trade_datas, 90) |
| | | table_trade = create_table(table_frame, trade_datas, 70) |
| | | table_trade.show() |
| | | |
| | | frame.grid(row=2, column=1, padx=5, pady=5, rowspan=2) |