Administrator
2023-11-23 2df06f818c76bde7d741a72edd45edd7aaf0ce45
卖出规则制定
3个文件已修改
43 ■■■■ 已修改文件
outside_api_command_manager.py 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_server.py 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/sell_rule_manager.py 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
outside_api_command_manager.py
@@ -33,6 +33,7 @@
OPERRATE_SET = 1  # 设置
OPERRATE_DELETE = 2  # 删除
OPERRATE_GET = 3  # 获取
OPERRATE_ADD = 4  # 新增
# 代码名单类型
CODE_LIST_WHITE = "white"
@@ -44,6 +45,7 @@
API_TYPE_TRADE = "trade"  # 交易
API_TYPE_TRADE_STATE = "trade_state"  # 交易状态
API_TYPE_TRADE_MODE = "trade_mode"  # 交易模式
API_TYPE_SELL_RULE = "sell_rule"  # 卖出规则
API_TYPE_CODE_LIST = "code_list"  # 代码名单
API_TYPE_EXPORT_L2 = "export_l2"  # 导出L2数据
API_TYPE_INIT = "init"  # 初始化
@@ -70,6 +72,10 @@
    # 交易模式
    def OnTradeMode(self, client_id, request_id, data):
        pass
    # 卖出规则
    def OnSellRule(self, client_id, request_id, data):
        pass
    # 代码名单
@@ -189,6 +195,8 @@
                            cls.action_callback.OnTradeState(client_id, request_id, data)
                        elif content_type == API_TYPE_TRADE_MODE:
                            cls.action_callback.OnTradeMode(client_id, request_id, data)
                        elif content_type == API_TYPE_SELL_RULE:
                            cls.action_callback.OnSellRule(client_id, request_id, data)
                        elif content_type == API_TYPE_CODE_LIST:
                            cls.action_callback.OnCodeList(client_id, request_id, data)
                        elif content_type == API_TYPE_EXPORT_L2:
trade/huaxin/huaxin_trade_server.py
@@ -58,7 +58,7 @@
from trade.huaxin import huaxin_trade_api as trade_api, huaxin_trade_api, huaxin_trade_data_update, \
    huaxin_trade_record_manager
from trade.l2_trade_factor import L2PlaceOrderParamsManager
from trade.sell_rule_manager import SellRuleManager
from trade.sell_rule_manager import SellRuleManager, SellRule
from trade.trade_manager import TradeTargetCodeModeManager
from utils import socket_util, data_export_util, middle_api_protocol, tool, huaxin_util, output_util
@@ -538,6 +538,26 @@
        except Exception as e:
            self.send_response({"code": 1, "msg": str(e)}, client_id, request_id)
    def OnSellRule(self, client_id, request_id, data):
        try:
            operate = data["operate"]
            if operate == outside_api_command_manager.OPERRATE_ADD:
                data = data["data"]
                rule = SellRule(code=data["code"], buy1_volume=data["buy1_volume"], sell_volume=data["sell_volume"],
                                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_GET:
                rules = SellRuleManager().list_rules()
                fresults = []
                for rule in rules:
                    fresults.append(rule.to_dict())
                self.send_response({"code": 0, "data": fresults}, client_id, request_id)
        except Exception as e:
            self.send_response({"code": 1, "msg": str(e)}, client_id, request_id)
        pass
    # 代码名单
    def OnCodeList(self, client_id, request_id, data):
        try:
trade/sell_rule_manager.py
@@ -7,7 +7,8 @@
class SellRule:
    def __init__(self, id_=None, code=None, buy1_volume=None, sell_volume=None, day=None, create_time=None, excuted=0):
    def __init__(self, id_=None, code=None, buy1_volume=None, sell_volume=None, day=None, create_time=None, excuted=0,
                 end_time=None):
        self.day = day
        self.create_time = create_time
        self.sell_volume = sell_volume
@@ -15,6 +16,7 @@
        self.code = code
        self.id_ = id_
        self.excuted = 0
        self.end_time = end_time
    def to_json_str(self):
        return json.dumps(vars(self))
@@ -48,8 +50,8 @@
        for rule in rules:
            self.__sell_rules_dict_cache[rule.id_] = rule
    def __list_rules(self):
        results = mysql_data.Mysqldb().select_all(f"select * from sell_rules r where r.day='{tool.get_now_date_str()}'")
    def list_rules(self, day=tool.get_now_date_str()):
        results = mysql_data.Mysqldb().select_all(f"select * from sell_rules r where r.day='{day}'")
        fresults = []
        if results:
            for r in results:
@@ -61,6 +63,7 @@
                rule.day = r[4]
                rule.create_time = r[5]
                rule.excuted = r[6]
                rule.end_time = r[7]
                fresults.append(rule)
        return fresults
@@ -72,8 +75,8 @@
        if not rule.day:
            rule.day = tool.get_now_date_str()
        mysql_data.Mysqldb().execute(
            "insert into sell_rules(_id,code,buy1_volume,sell_volume,day,create_time,excuted) values ('%s','%s','%s','%s','%s',now() ,'%s') " % (
                rule.id_, rule.code, rule.buy1_volume, rule.sell_volume, rule.day, rule.excuted))
            "insert into sell_rules(_id,code,buy1_volume,sell_volume,day,create_time,excuted,end_time) values ('%s','%s','%s','%s','%s',now() ,'%s','%s') " % (
                rule.id_, rule.code, rule.buy1_volume, rule.sell_volume, rule.day, rule.excuted, rule.end_time))
        self.__sell_rules_dict_cache[_id] = rule
    # 删除规则