Administrator
2024-01-26 7936ffdd92d5b9508ab689b05fba53c8f4e3b24c
卖出规则添加修改接口
2个文件已修改
33 ■■■■■ 已修改文件
trade/huaxin/huaxin_trade_server.py 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/sell/sell_rule_manager.py 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_server.py
@@ -655,6 +655,19 @@
                                end_time=data["end_time"])
                SellRuleManager().add_rule(rule)
                self.send_response({"code": 0, "data": {}}, client_id, request_id)
            elif operate == outside_api_command_manager.OPERRATE_SET:
                data = data["data"]
                code = data["code"]
                buy1_price = data.get("buy1_price")
                if not buy1_price:
                    buy1_price = gpcode_manager.get_limit_up_price(code)
                    if not buy1_price:
                        raise Exception("尚未获取到涨停价")
                rule = SellRule(id_= data["id"], code=data["code"], buy1_volume=data["buy1_volume"], buy1_price=buy1_price,
                                sell_volume=data["sell_volume"], sell_price_type=data["sell_price_type"],
                                end_time=data["end_time"])
                SellRuleManager().update_rule(rule)
                self.send_response({"code": 0, "data": {}}, client_id, request_id)
            elif operate == outside_api_command_manager.OPERRATE_DELETE:
                data = data["data"]
                SellRuleManager().del_rule(data["id"])
trade/sell/sell_rule_manager.py
@@ -47,8 +47,6 @@
    __sell_lock_dict = {}
    __mysql_excute_thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=10)
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = super(SellRuleManager, cls).__new__(cls, *args, **kwargs)
@@ -93,6 +91,21 @@
                rule.day, rule.excuted, rule.end_time))
        self.__sell_rules_dict_cache[_id] = rule
    def update_rule(self, rule: SellRule):
        if not rule.id_:
            raise Exception("缺失id")
        # 获取原来的数据
        old_rule: SellRule = self.get_by_id(rule.id_)
        rule.day = old_rule.day
        mysql_data.Mysqldb().execute(
            "update sell_rules set code = '%s',buy1_volume = '%s', buy1_price='%s',sell_volume = '%s',sell_price_type='%s',end_time = '%s' where _id='%s'" % (
                rule.code, rule.buy1_volume, rule.buy1_price, rule.sell_volume, rule.sell_price_type, rule.end_time,
                rule.id_))
        rule.excuted = old_rule.excuted
        rule.create_time = old_rule.create_time
        self.__sell_rules_dict_cache[rule.id_] = rule
    # 删除规则
    def del_rule(self, _id):
        mysql_data.Mysqldb().execute(f"delete from sell_rules where _id='{_id}'")
@@ -118,7 +131,8 @@
    def excute_sell(self, _id):
        if _id in self.__sell_rules_dict_cache:
            self.__sell_rules_dict_cache[_id].excuted = 1
        self.__mysql_excute_thread_pool.submit(mysql_data.Mysqldb().execute, f"update sell_rules r set r.excuted=1 where r._id='{_id}'")
        self.__mysql_excute_thread_pool.submit(mysql_data.Mysqldb().execute,
                                               f"update sell_rules r set r.excuted=1 where r._id='{_id}'")
    # 请求卖出锁
    def require_sell_lock(self, _id):