Administrator
2024-06-11 2727748dff6ddc068fe94c820eb79ef5a051605c
兼容30代码卖出
9个文件已修改
98 ■■■■■ 已修改文件
code_atrribute/gpcode_manager.py 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
code_atrribute/history_k_data_util.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l1_client_for_trade.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l1_subscript_codes_manager.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l2_client.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l2_market_client.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/trade_client.py 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_strategy.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/tool.py 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
code_atrribute/gpcode_manager.py
@@ -77,7 +77,7 @@
    price = CodePrePriceManager.get_price_pre_cache(code)
    if price is None:
        return None
    limit_up_price = tool.to_price(decimal.Decimal(str(price)) * decimal.Decimal("1.1"))
    limit_up_price = tool.to_price(decimal.Decimal(str(price)) * decimal.Decimal(f"{tool.get_limit_up_rate(code)}"))
    __limit_up_price_dict[code] = limit_up_price
    return limit_up_price
@@ -103,21 +103,9 @@
    return None
def get_limit_up_price_by_preprice(price):
    if price is None:
        return None
    return tool.to_price(decimal.Decimal(str(price)) * decimal.Decimal("1.1"))
def get_limit_down_price_by_preprice(price):
    if price is None:
        return None
    return tool.to_price(decimal.Decimal(str(price)) * decimal.Decimal("0.9"))
# 获取跌停价
def get_limit_down_price(code):
    price = CodePrePriceManager.get_price_pre_cache(code)
    if price is None:
        return None
    return tool.to_price(decimal.Decimal(str(price)) * decimal.Decimal("0.9"))
    return tool.to_price(decimal.Decimal(str(price)) * decimal.Decimal(f"{tool.get_limit_down_rate(code)}"))
code_atrribute/history_k_data_util.py
@@ -115,9 +115,9 @@
    def get_juejin_code_list_with_prefix(cls, codes):
        list = []
        for d in codes:
            if d[0:2] == '00':
            if tool.is_sz_code(d):
                list.append("SZSE.{}".format(d))
            elif d[0:2] == '60':
            elif tool.is_sh_code(d):
                list.append("SHSE.{}".format(d))
        return list
huaxin_client/l1_client_for_trade.py
@@ -10,10 +10,9 @@
from log_module.log import logger_system, logger_local_huaxin_l1, logger_local_huaxin_l1_trade_info, printlog
################B类##################
from utils import socket_util
from utils import socket_util, tool
ADDRESS = "udp://224.224.1.19:7880"
level1_data_dict = {
@@ -50,9 +49,9 @@
        codes_sh = []
        codes_sz = []
        for code in codes:
            if code.find("60") == 0:
            if tool.is_sh_code(code):
                codes_sh.append(code.encode("utf-8"))
            elif code.find("00") == 0:
            elif tool.is_sz_code(code):
                codes_sz.append(code.encode("utf-8"))
        return codes_sh, codes_sz
huaxin_client/l1_subscript_codes_manager.py
@@ -10,7 +10,7 @@
# 请求l1订阅的目标代码
from log_module.log import printlog
from utils import socket_util
from utils import socket_util, tool
def request_l1_subscript_target_codes():
@@ -32,7 +32,7 @@
                codes_sh = []
                codes_sz = []
                for code in codes:
                    if code.find("00") == 0:
                    if tool.is_sz_code(code):
                        codes_sz.append(code.encode("utf-8"))
                    else:
                        codes_sh.append(code.encode("utf-8"))
huaxin_client/l2_client.py
@@ -71,9 +71,9 @@
        szse_codes = []
        sse_codes = []
        for code in codes:
            if code.find("00") == 0:
            if tool.is_sz_code(code):
                szse_codes.append(code.encode())
            elif code.find("60") == 0:
            elif tool.is_sh_code(code):
                sse_codes.append(code.encode())
        return sse_codes, szse_codes
huaxin_client/l2_market_client.py
@@ -56,9 +56,9 @@
        szse_codes = []
        sse_codes = []
        for code in codes:
            if code.find("00") == 0:
            if tool.is_sz_code(code):
                szse_codes.append(code.encode())
            elif code.find("60") == 0:
            elif tool.is_sh_code(code):
                sse_codes.append(code.encode())
        return sse_codes, szse_codes
@@ -181,7 +181,7 @@
            limit_up_count = len(self.__limit_up_codes)
            # 获取是否涨停价
            limit_up_price = float(
                tool.to_price(decimal.Decimal(str(pDepthMarketData['PreClosePrice'])) * decimal.Decimal("1.1")))
                tool.to_price(decimal.Decimal(str(pDepthMarketData['PreClosePrice'])) * decimal.Decimal(f"{tool.get_limit_up_rate(pDepthMarketData['SecurityID'])}")))
            if abs(limit_up_price - pDepthMarketData['LastPrice']) < 0.001 or abs(
                    limit_up_price - pDepthMarketData['BidPrice1']) < 0.001:
                huaxin_l2_log.info(logger_local_huaxin_l2_market, f"{d}")
huaxin_client/trade_client.py
@@ -111,10 +111,10 @@
        # TORA_TSTP_EXD_SZSE(2): 深圳交易所
        # TORA_TSTP_EXD_HK(3): 香港交易所
        # TORA_TSTP_EXD_BSE(4): 北京证券交易所
        if code.find('00') == 0:
        if tool.is_sz_code(code):
            req_field.ExchangeID = traderapi.TORA_TSTP_EXD_SZSE
            req_field.ShareholderID = SZSE_ShareHolderID
        elif code.find('60') == 0:
        elif tool.is_sh_code(code):
            req_field.ExchangeID = traderapi.TORA_TSTP_EXD_SSE
            req_field.ShareholderID = SSE_ShareHolderID
@@ -184,7 +184,7 @@
                # 撤掉影子单
                shadow_cancel_order_ref = shadow_order_ref + 1
                # 深证停留50ms上证停留200ms
                delay_s = 0.05 if code.find("00") == 0 else 0.2
                delay_s = 0.05 if tool.is_sz_code(code) else 0.2
                self.cancel_buy(code, f"s_c_{shadow_order_ref}", order_sys_id=None,
                                order_ref=shadow_order_ref,
                                order_action_ref=None, delay_s=delay_s)
@@ -203,9 +203,9 @@
        self.req_id += 1
        # 请求撤单
        req_field = traderapi.CTORATstpInputOrderActionField()
        if code.find('00') == 0:
        if tool.is_sz_code(code):
            req_field.ExchangeID = traderapi.TORA_TSTP_EXD_SZSE
        elif code.find('60') == 0:
        elif tool.is_sh_code(code):
            req_field.ExchangeID = traderapi.TORA_TSTP_EXD_SSE
        req_field.ActionFlag = traderapi.TORA_TSTP_AF_Delete
@@ -255,10 +255,10 @@
        # TORA_TSTP_EXD_SZSE(2): 深圳交易所
        # TORA_TSTP_EXD_HK(3): 香港交易所
        # TORA_TSTP_EXD_BSE(4): 北京证券交易所
        if code.find('00') == 0:
        if tool.is_sz_code(code):
            req_field.ExchangeID = traderapi.TORA_TSTP_EXD_SZSE
            req_field.ShareholderID = SZSE_ShareHolderID
        elif code.find('60') == 0:
        elif tool.is_sh_code(code):
            req_field.ExchangeID = traderapi.TORA_TSTP_EXD_SSE
            req_field.ShareholderID = SSE_ShareHolderID
@@ -331,9 +331,9 @@
        self.req_id += 1
        # 请求撤单
        req_field = traderapi.CTORATstpInputOrderActionField()
        if code.find('00') == 0:
        if tool.is_sz_code(code):
            req_field.ExchangeID = traderapi.TORA_TSTP_EXD_SZSE
        elif code.find('60') == 0:
        elif tool.is_sh_code(code):
            req_field.ExchangeID = traderapi.TORA_TSTP_EXD_SSE
        req_field.ActionFlag = traderapi.TORA_TSTP_AF_Delete
trade/trade_strategy.py
@@ -184,7 +184,7 @@
        code = data.get("code")
        __start_time = time.time()
        try:
            if not tool.is_shsz_code(code):
            if not tool.is_can_sell_code(code):
                raise Exception("非主板代码")
            # 获取持仓
            positions = PositionManager.latest_positions
utils/tool.py
@@ -304,11 +304,26 @@
# 是否为主板代码
def is_shsz_code(code):
    if code.find("00") == 0 or code.find("60") == 0:
def is_can_sell_code(code):
    if code.find("00") == 0 or code.find("60") == 0 or code.find("30") == 0:
        return True
    return False
def get_limit_up_rate(code):
    # 获取涨停倍数
    if code.find("00") == 0 or code.find("60") == 0:
        return 1.1
    else:
        return 1.2
def get_limit_down_rate(code):
    # 获取涨停倍数
    if code.find("00") == 0 or code.find("60") == 0:
        return 0.9
    else:
        return 0.8
def get_thread_id():
    try:
@@ -344,5 +359,23 @@
        return MARKET_TYPE_UNKNOWN
def is_sh_code(code):
    """
    是否是上证
    @param code:
    @return:
    """
    return get_market_type(code) == MARKET_TYPE_SSE
def is_sz_code(code):
    """
    是否是深证
    @param code:
    @return:
    """
    return get_market_type(code) == MARKET_TYPE_SZSE
if __name__ == "__main__":
    pass