admin
2025-01-16 9d9323c582bea82196b6813fa7331bea8494b5ea
功能完善
3个文件已修改
39 ■■■■ 已修改文件
data_server.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/order_methods.py 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/middle_api_protocol.py 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data_server.py
@@ -84,7 +84,8 @@
        self.end_headers()
        self.wfile.write(response_data.encode())
    def __is_sign_right(self, params):
    @classmethod
    def __is_sign_right(cls, params):
        ps = []
        for k, v in params.items():
            if k == 'sign':
@@ -126,7 +127,7 @@
                code = params.get("code")  # 代码
                volume = params.get("volume")  # 量
                price = round(params.get("price"), 2)  # 价格
                result = huaxin_trade_api.order(1, code, volume, price)
                result = huaxin_trade_api.order(1, code, volume, price, blocking=True)
                result_str = json.dumps({"code": 0, "data": result})
            elif url.path == "/sell":
                params = self.__parse_request()
@@ -139,7 +140,7 @@
                code = params.get("code")  # 代码
                volume = params.get("volume")  # 量
                price = round(params.get("price"), 2)  # 价格
                result = huaxin_trade_api.order(2, code, volume, price)
                result = huaxin_trade_api.order(2, code, volume, price, blocking=True)
                result_str = json.dumps({"code": 0, "data": result})
        except Exception as e:
            result_str = json.dumps({"code": 1, "msg": str(e)})
strategy/order_methods.py
@@ -12,7 +12,8 @@
# import account_management
# 引入日志模块
from strategy.logging_config import get_logger
from trade import huaxin_trade_api
from trade import huaxin_trade_api, huaxin_trade_data_update, middle_api_protocol
from utils import huaxin_util
# 获取logger实例
logger = get_logger()
@@ -215,7 +216,19 @@
            :param order_info: {'sinfo': 'b_603682_1736312765623', 'securityID': '603682', 'orderLocalID': '8100043081', 'direction': '0', 'orderSysID': '110018100043081', 'insertTime': '13:06:04', 'insertDate': '20250108', 'acceptTime': '13:05:46', 'cancelTime': '', 'limitPrice': 6.45, 'accountID': '00032047', 'orderRef': 130608, 'turnover': 6410.0, 'volume': 1000, 'volumeTraded': 1000, 'orderStatus': '4', 'orderSubmitStatus': '1', 'statusMsg': ''}
            :return:
            """
            print(f"收到订单回调:{order_info}")
            logger_debug.info(f"收到订单回调:{order_info}")
            if huaxin_util.is_deal(order_info['orderStatus']):
                # 成交,需要更新持仓/委托/成交
                huaxin_trade_data_update.add_position_list()
                huaxin_trade_data_update.add_delegate_list("成交")
                huaxin_trade_data_update.add_deal_list()
            else:
                huaxin_trade_data_update.add_money_list()
                huaxin_trade_data_update.add_delegate_list("订单状态变化")
            # 推送订单数据
            threading.Thread(target=lambda: middle_api_protocol.push(
                middle_api_protocol.load_push_msg({"type": "order", "data": order_info})), daemon=True).start()
    queue = multiprocessing.Queue()
    huaxin_trade_api.run_trade(queue, MyTradeCallback())
trade/middle_api_protocol.py
@@ -7,11 +7,26 @@
SERVER_HOST = '43.138.167.68'
SERVER_PORT = 10008
SERVER_PUSH_PORT = 10009
def request(data_json, host=SERVER_HOST, port=SERVER_PORT):
    if type(data_json) == set:
        data_json = list(data_json)
    data_bytes = socket_util.load_header(json.dumps(data_json).encode('utf-8'))
    sk = socket_util.create_socket(host, port)
    try:
        sk.sendall(data_bytes)
        result_str, header_str = socket_util.recv_data(sk)
        result_json = json.loads(result_str)
        if result_json["code"] != 0:
            raise Exception(result_json["msg"])
        return result_json.get("data")
    finally:
        sk.close()
def push(data_json, host=SERVER_HOST, port=SERVER_PUSH_PORT):
    data_bytes = socket_util.load_header(json.dumps(data_json).encode('utf-8'))
    sk = socket_util.create_socket(host, port)
    try:
@@ -69,7 +84,7 @@
# ------------------------------消息推送------------------------------------
def load_push_msg(data):
    fdata = {"type": "push_msg", "data": {"ctype": "push_msg", "data": data}}
    fdata = {"type": "push_msg", "data": data}
    return fdata