| | |
| | | nameDict = HistoryKDatasUtils.get_gp_codes_names([d['securityID']]) |
| | | name = nameDict.get(d['securityID']) |
| | | mysqldb.execute( |
| | | "insert into hx_trade_delegate_record values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" % ( |
| | | "insert into hx_trade_delegate_record values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" % ( |
| | | d["orderLocalID"], d["securityID"], name, d["direction"], |
| | | d["orderSysID"], d["insertTime"], d["insertDate"], d["acceptTime"], d["cancelTime"], |
| | | d["limitPrice"], d["turnover"], d["volume"], d["volumeTraded"], d["orderStatus"], |
| | | d["orderSubmitStatus"], d["statusMsg"], tool.get_now_datetime_str(), |
| | | tool.get_now_datetime_str())) |
| | | tool.get_now_datetime_str(), d["accountID"])) |
| | | else: |
| | | # 修改数据 |
| | | updateDict = {} |
| | |
| | | # 转dict |
| | | key_list = ["orderLocalID", "securityID", "securityName", "direction", "orderSysID", "insertTime", |
| | | "insertDate", "acceptTime", "cancelTime", "limitPrice", "turnover", "volume", "volumeTraded", |
| | | "orderStatus", "orderSubmitStatus", "statusMsg", "createTime", "updateTime"] |
| | | "orderStatus", "orderSubmitStatus", "statusMsg", "createTime", "updateTime", "accountID"] |
| | | fresults = [] |
| | | max_update_time = None |
| | | if results: |
| | |
| | | # '10932:产品状态资源访问授权不足', 'orderSysID': '110010190000809', 'accountId': |
| | | # '38800001334901'}} |
| | | if resultJSON['code'] == 0: |
| | | resultJSON = resultJSON['data'] |
| | | statusCode = resultJSON['orderStatus'] |
| | | if statusCode == huaxin_util.TORA_TSTP_OST_Rejected: |
| | | # 交易所拒绝 |
| | | raise Exception(resultJSON['statusMsg']) |
| | | else: |
| | | trade_huaxin.order_success(resultJSON['securityId'], resultJSON['accountId'], |
| | | resultJSON['orderSysID']) |
| | | return_str = json.dumps({"code": 0}) |
| | | try: |
| | | resultJSON = resultJSON['data'] |
| | | statusCode = resultJSON['orderStatus'] |
| | | |
| | | if statusCode == huaxin_util.TORA_TSTP_OST_Rejected: |
| | | # 交易所拒绝 |
| | | raise Exception(resultJSON['statusMsg']) |
| | | else: |
| | | trade_huaxin.order_success(resultJSON['securityId'], |
| | | resultJSON['accountId'], |
| | | resultJSON['orderSysID']) |
| | | return_str = json.dumps({"code": 0}) |
| | | finally: |
| | | # 更新委托列表 |
| | | trade_data_request_queue.put_nowait({"type": "delegate_list"}) |
| | | # 更新资金 |
| | | trade_data_request_queue.put_nowait({"type": "money"}) |
| | | else: |
| | | raise Exception(resultJSON['msg']) |
| | | |
| | |
| | | raise Exception("签名错误") |
| | | codes_data = data_json["data"] |
| | | code = codes_data["code"] |
| | | orderSysID = codes_data["orderSysID"] |
| | | if code and orderSysID: |
| | | orderSysID = codes_data.get("orderSysID") |
| | | accountId = codes_data.get("accountId") |
| | | if code and orderSysID and accountId: |
| | | result = trade_api.cancel_order(trade_api.TRADE_DIRECTION_BUY, code, orderSysID, True) |
| | | print("---撤单结果----") |
| | | print(result) |
| | | if result["code"] == 0: |
| | | if result["data"]["cancel"] == 1: |
| | | # 撤单成功 |
| | | trade_huaxin.cancel_order_success(code, accountId, orderSysID) |
| | | return_str = json.dumps({"code": 0}) |
| | | else: |
| | | # 撤单失败 |
| | | raise Exception(result["data"]["errorMsg"]) |
| | | else: |
| | | raise Exception(result["msg"]) |
| | | |
| | | elif code: |
| | | state = trade_manager.get_trade_state(code) |
| | | if state == trade_manager.TRADE_STATE_BUY_PLACE_ORDER or state == trade_manager.TRADE_STATE_BUY_DELEGATED or state == trade_manager.TRADE_STATE_BUY_CANCEL_ING: |
| | |
| | | logger_juejin_trade.info(f"{code}:下单失败:{result['statusMsg']}") |
| | | raise Exception(result["statusMsg"]) |
| | | else: |
| | | TradeOrderIdManager.add_order_id(code, result["accountId"], result["orderSysID"]) |
| | | TradeOrderIdManager.add_order_id(code, result["accountID"], result["orderSysID"]) |
| | | logger_juejin_trade.info(f"{code}:下单成功 orderSysID:{result['orderSysID']}") |
| | | return result["securityId"], result["accountId"], result["orderSysID"] |
| | | return result["securityId"], result["accountID"], result["orderSysID"] |
| | | else: |
| | | raise Exception(result['msg']) |
| | | else: |
| | |
| | | TradeOrderIdManager.add_order_id(code, accountId, orderSysID) |
| | | |
| | | |
| | | def cancel_order_success(code, accountId, orderSysID): |
| | | TradeOrderIdManager.remove_order_id(code, accountId, orderSysID) |
| | | |
| | | |
| | | # 撤单 |
| | | def cancel_order(code): |
| | | orders_info = TradeOrderIdManager.list_order_ids(code) |