code_atrribute/gpcode_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
code_atrribute/history_k_data_util.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
huaxin_client/l1_client_for_trade.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
huaxin_client/l1_subscript_codes_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
huaxin_client/l2_client.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
huaxin_client/l2_market_client.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
huaxin_client/trade_client.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/trade_strategy.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
utils/tool.py | ●●●●● 补丁 | 查看 | 原始文档 | 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 @@ -119,7 +118,7 @@ printlog('OnRspUnSubMarketData: OK!') else: printlog('OnRspUnSubMarketData: Error! [%d] [%s]' % (pRspInfoField.ErrorID, pRspInfoField.ErrorMsg)) % (pRspInfoField.ErrorID, pRspInfoField.ErrorMsg)) def OnRtnMarketData(self, pMarketDataField): if pMarketDataField.SecurityName.find("S") == 0: 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