Administrator
2023-07-11 2ae9622cf1b35169d43239fb80b3ffc52bc2c138
华鑫适配
3个文件已修改
56 ■■■■ 已修改文件
trade/huaxin/huaxin_trade_record_manager.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/trade_api_server.py 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_huaxin.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_record_manager.py
@@ -27,12 +27,12 @@
                        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 = {}
@@ -81,7 +81,7 @@
            # 转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:
trade/huaxin/trade_api_server.py
@@ -103,15 +103,23 @@
                                # '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'])
@@ -123,11 +131,23 @@
                            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:
trade/trade_huaxin.py
@@ -75,9 +75,9 @@
                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:
@@ -88,6 +88,10 @@
    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)